bristol-digital/qwikblog
File-based, headless-friendly blog for Laravel with no database required. Write posts as Markdown with YAML front matter in resources/posts. Includes lightweight admin with Livewire image gallery and WYSIWYG editor, plus public index and post views.
Misalignment Risks:
@toast-ui/editor, Alpine.js). Compatible with Laravel Mix if Vite is unavailable.@stack('head') for SEO meta injection.Blockers:
| Risk Area | Severity | Mitigation |
|---|---|---|
| File System Scaling | High | Monitor post count; switch to DB if >5K posts. |
| Livewire Conflicts | Medium | Test with existing Livewire apps. |
| SEO Meta Injection | Medium | Verify @stack('head') exists in host layout. |
| Auth Integration | Low | Default file-based auth is simple. |
| Editor Bloat | Low | Can disable WYSIWYG (fallback to textarea). |
| Taxonomy Collisions | Low | Configure QWIKBLOG_TAXONOMY_URL_STYLE to avoid slug conflicts. |
Critical Questions for TPM:
public/ directory.)public/ directory writable (for posts/images).app.blade.php or equivalent).composer require bristol-digital/qwikblog
php artisan vendor:publish --tag=qwikblog-config
php artisan vendor:publish --tag=qwikblog-admin-js
npm install @toast-ui/editor
QWIKBLOG_LAYOUT to host’s Blade layout (or publish package’s starter layout).admin, auth, or custom).vite.config.js to include qwikblog-admin.js.@stack('head') to host layout for SEO meta.php artisan blog:examples flamenco.| Component | Compatibility Notes |
|---|---|
| Laravel | 9+ (tested). No breaking changes expected. |
| Vite | Required for admin JS. Laravel Mix may need polyfills. |
| Tailwind | Assumes host uses Tailwind. Custom CSS may need adjustments. |
| Alpine.js | Required for public views. Must be imported in app.js. |
| Auth Systems | Works with default file-based auth, Laravel auth, or custom middleware. |
| Markdown | Uses CommonMark (GitHub-flavored). No custom syntax supported. |
Rollback Plan:
vendor/bristol-digital/qwikblog and resources/posts/ if uninstalling.@toast-ui/editor and Alpine.js).resources/posts/ and public/images/blog/ if posts are deleted.Maintenance Tasks:
storage/logs/laravel.log for file I/O errors.resources/posts/.@toast-ui/editor via npm update if security patches are released.Support Plan:
php artisan blog:stats).str_contains() is O(n) per query. Replace with Algolia/Meilisearch if >5K posts.public/images/blog/ to S3/CDN.blog:posts Artisan command output (e.g., Cache::remember()).Red Flags:
| Failure Scenario | Impact | Mitigation |
|---|
How can I help you explore Laravel packages today?