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.).
Author) allows integration with existing user models without tight coupling.auth + can:manage-blog).Str::markdown() (no external dependencies like Parsedown). Host app must support Markdown parsing (default in Laravel).| Risk Area | Assessment | Mitigation Strategy |
|---|---|---|
| Auth Integration | Zero opinions on auth; relies on host app’s middleware/Gates. Risk if team lacks experience with Laravel’s auth system or custom middleware. | Document auth setup as a pre-requisite in the integration guide. Provide a starter AuthServiceProvider snippet. |
| Styling Customization | Tailwind classes are hardcoded in Blade views. Publishing views for customization is manual and version-fragile. | Recommend using CSS variables or Tailwind config overrides where possible. Warn about the tradeoff between customization and future updates. |
| Performance | No built-in caching (e.g., post listings, category queries). Could become a bottleneck at scale. | Advocate for Laravel’s cache tags or Eloquent caching in the host app. Suggest adding a Post model observer for cache invalidation. |
| SEO | Basic SEO (title, meta tags via @stack('head')). No sitemap, OpenGraph, or structured data generation. |
Plan to extend the package with a sitemap service provider or use Laravel’s spatie/laravel-sitemap alongside it. |
| Dark Mode | Dark mode support is opt-in via Tailwind’s dark: classes. Host app must configure Tailwind’s dark mode strategy (media or class). |
Test dark mode integration early. Provide a starter tailwind.config.js snippet in docs. |
| Localization | Built-in en, pt_BR, es locales. Custom translations require publishing the lang files. |
Treat localization as a phase 2 feature. Document the publish step clearly. |
| Upgrade Path | Published views (e.g., Blade templates) are frozen at the version they were published. Future package updates won’t auto-migrate customizations. | Recommend feature flags for custom views (e.g., only publish layouts, not inner content). Use Git for tracking changes. |
Auth Strategy:
can:manage-blog Gate, admin guard, or role-based middleware?)Styling Approach:
Performance:
Content Workflow:
Maintenance:
Analytics/Tracking:
Hosting Constraints:
Str::markdown(). No external dependencies.@yield or slot-based components.| Step | Action | Effort | Dependencies | Output |
|---|---|---|---|---|
| 1. Setup | Install package, publish migrations/config/views. | Low | Composer, Laravel CLI | vendor/ojessecruz/simple-blog |
| 2. Auth Setup | Configure middleware in config/blog.php and implement Author contract on the User model. |
Medium | Laravel Auth, AuthServiceProvider |
Custom auth integration |
| 3. Layouts | Create public/admin layouts (Blade) and update config/blog.php. |
Medium | Tailwind CSS, Blade templates | Visual integration with host app |
| 4. Styling | Publish views and customize Tailwind classes or publish only layouts for minimal changes. | High | Tailwind, Git (for tracking changes) | Branded blog appearance |
| 5. Routes | Register middleware for /blog and /admin/blog routes (e.g., web, auth, custom Gates). |
Low | Laravel routes | Secure, accessible endpoints |
| 6. Testing | Write feature tests for public/admin flows (e.g., post CRUD, category filtering). | High | Pest/PHPUnit | Regression safety |
| 7. Deployment | Run migrations, clear config cache (php artisan config:clear), and deploy. |
Low | Laravel migrations | Live blog |
posts, post_categories).Recommended phased rollout:
Phase 1 (MVP):
**
How can I help you explore Laravel packages today?