Weave Code
Code Weaver
Helps Laravel developers discover, compare, and choose open-source packages. See popularity, security, maintainers, and scores at a glance to make better decisions.
Feedback
Share your thoughts, report bugs, or suggest improvements.
Subject
Message

Simple Blog Laravel Package

ojessecruz/simple-blog

Ready-to-use Laravel blog package: clean public listing, Livewire admin CRUD, Markdown with HTML escaping, and draft preview in a new tab. Authentication/authorization is up to you via configurable middleware (Gate, guard, etc.).

View on GitHub
Deep Wiki
Context7
0.7.5

Added

  • public_back_url config key — where the "Back to site" link on the public blog index points. Defaults to '/' (previous hardcoded behavior); set to null to hide the link, mirroring admin_back_url.

Fixed

  • author_model => null (the default) no longer fatals on the public pages. Post::author() used to fall back to the abstract Illuminate\Database\Eloquent\Model, which crashed as soon as a view touched the relation; it now binds to a concrete model with an always-false constraint, so the relation stays callable and simply resolves to no author (name falls back to "Team", avatar to null).
  • Eager-load the author relation on the public index and category listings, removing an N+1 introduced when the templates started rendering author name/avatar per post.

Changed

  • orchestra/testbench dev constraint now allows ^11.0, matching the Laravel 13 entry already exercised in CI.
0.7.0

Added

  • <x-blog::squiggle /> component — a hand-drawn SVG underline accent. It inherits its color from text-* classes (currentColor), so host apps can retheme it with a single utility class.
  • Breaking: the Author contract gained getBlogAuthorAvatarUrl(): ?string, surfaced in the templates through Post::authorAvatarUrl(). Host models implementing the contract must add the method (returning null is fine — the templates fall back to an initials badge).

Changed

  • Redesigned the default public templates (index, show) with a more editorial layout while keeping the neutral zinc/emerald palette and dark mode support: serif-italic display title with a squiggle accent on the index, category navigation as bordered chips, mono uppercase category eyebrows, mono meta lines with ✦ separators, thick accent underline on hovered titles, serif-italic excerpt lede on the post page, and accent-underlined links, accent blockquotes and list markers in the post body typography. Apps that published the views (vendor:publish --tag="simple-blog-views-public") are unaffected; republish to adopt the new defaults.

Documentation

  • Republished release carrying the 0.6.0 changelog entry. The 0.6.0 feature code (the simple-blog:install command) is unchanged; this patch only adds its changelog entry, which landed after 0.6.0 was already tagged. No functional changes.
0.6.0

Added

  • simple-blog:install command. One idempotent command publishes the config and migrations, registers the Tailwind v4 source by injecting [@import](https://github.com/import) '../../vendor/ojessecruz/simple-blog/resources/css/simple-blog.css'; into resources/css/app.css (right after the [@import](https://github.com/import) "tailwindcss"; line, or prepended when absent), and offers to run the migrations. A clean install is now composer requirephp artisan simple-blog:installnpm run build instead of hand-editing CSS. Re-running is safe — it never duplicates the import — and when resources/css/app.css is missing it prints the line to add manually.
0.5.1

Added

  • Tailwind v4 CSS source entrypoint at resources/css/simple-blog.css. It registers the package views via [@source](https://github.com/source), so a consuming app enables the package's styling with a single [@import](https://github.com/import) '../../vendor/ojessecruz/simple-blog/resources/css/simple-blog.css'; from its main stylesheet instead of hardcoding the vendor path. Without it, Tailwind v4 never scans the package and the blog renders unstyled. The [@source](https://github.com/source) path is resolved relative to the package file, so it survives host-app restructuring.

Documentation

  • The Tailwind setup step moved into the Installation section (was buried under "Customizing the layout"), since it affects every install — the default styling renders broken without it. The README now documents both the Tailwind v4 ([@import](https://github.com/import)) and v3 (tailwind.config.js content) wiring.
0.5.0

Added

  • Livewire 4 support. The livewire/livewire constraint widens to ^3.5||^4.0, so the package installs cleanly alongside either major version. The full test suite passes against the Livewire 3.5 floor (with Laravel 11) and against Livewire 4.3 (with Laravel 12).

Fixed

  • Admin Livewire components are now registered under dotted names (blog.admin.post-index, blog.admin.post-form, blog.admin.category-index) instead of blog::admin.*. Livewire 4 reserves :: for namespace resolution and would fail to resolve the ::-style names, throwing ComponentNotFoundException. The new names resolve identically on Livewire 3 and 4. Routing is unaffected (admin routes reference the component classes directly).
  • Post::published() scope now uses the scopePublished() naming convention instead of the #[Scope] attribute. The attribute (Illuminate\Database\Eloquent\Attributes\Scope) only exists in Laravel 12+, so on Laravel 11 the scope threw ArgumentCountError. This is the version range declared in composer.json (illuminate/contracts: ^11.0) but was never exercised in CI, which only ran Laravel 12/13. The conventional scopePublished() works across Laravel 11/12/13.
0.4.3

Fixed

  • "Mark as draft" checkbox and label now follow dark mode: explicit text-zinc-900 dark:text-zinc-100 on the label and bg-white dark:bg-zinc-900 on the checkbox so it stops rendering as a bright white square against the dark card.
0.4.2

Changed

  • Post form now uses max-w-7xl to match the post index, giving the split-view editor and preview panes enough horizontal room on wide screens.
0.4.1

Fixed

  • Dark mode text color on form controls and ghost-style buttons across the admin views (status filter, search, post form fields, "Categorias" / "Ver" / "Cancel" buttons). User-agent stylesheets and inconsistent preflight loading were leaving these elements with black text on the dark background.
0.4.0

Added

  • Dark mode support across all public and admin views via Tailwind dark: variants. The host app's Tailwind config controls the strategy (media or class).
  • Translation support with built-in en, pt_BR, and es locales. New locale config key in config/blog.phpnull follows app()->getLocale(), a string pins the blog to that locale. Custom translations can be added via vendor:publish --tag="simple-blog-lang".
  • Split-view toggle in the post form: two icon buttons switch between Markdown-only editing and a side-by-side editor + live preview. The preview renders through the same Str::markdown() pipeline as the published post and uses inline styles, so it does not depend on the [@tailwindcss](https://github.com/tailwindcss)/typography plugin in the host app.

Changed

  • Medium-style cover image on the post page: edge-to-edge on mobile, breakout past the prose column on desktop, and a fixed 16:9 aspect ratio so covers render consistently regardless of source dimensions.
Weaver

How can I help you explore Laravel packages today?

Conversation history is not saved when not logged in.
Prompt
Add packages to context
No packages found.
terminal42/code-quality-tools
codifyo/ts-generator-bundle
andydefer/laravel-cluster
testo/fiber
mintobit/jobqueue
a4sex/maintenance-bundle
a4sex/entity-date-update
a4sex/client-identifier
a4sex/base-utilites
a4sex/key-value-storage
a4sex/micro-status
chilldev/dependency-injection-extra
datinglibre/datinglibre-app-api
biberltd/corebundle
bricre/symfony-bundle-test
biberltd/logbundle
dominium/http-adapter-bundle
dominium/google-analytics
a4sex/auto-clean-entity
christhompsontldr/laravel-inky