Building Aviwebsquad: a Laravel + Inertia CMS I actually use

Building Aviwebsquad: a Laravel + Inertia CMS I actually use

Most admin tutorials stop at CRUD demos. Aviwebsquad is the opposite: a production blog and CMS I run on a real domain, monetize carefully, and extend in public. This article documents the architecture choices—not as a sales page, but as a build log another Laravel developer can critique.

What shipped first

The MVP needed:

I chose Laravel 13 + Filament 5 + Inertia 3 + Svelte 5. PHP handles auth, policies, caching, and content storage; Svelte handles reading experience and interactions (likes, comments, newsletter).

Admin vs public split

Filament owns /admin: posts, pages, banners, menus, media library, contact submissions, newsletter lists. Inertia owns everything readers see.

That split saved weeks. Filament gives me tables, filters, relation managers, and Spatie Media Library integration. Rebuilding that in Svelte would have delayed publishing—bad for a blog whose value is publishing.

Content model decisions

Markdown in, HTML out

Posts store body_markdown and render HTML server-side. I regenerate HTML on save so public responses do not parse markdown per request.

SEO as first-class fields

Each post and page carries meta title/description, canonical URL, robots, Open Graph, and Twitter fields. Defaults come from Spatie settings; per-post overrides win.

Crawlable HTML for SPAs

Inertia pages inject a static HTML fallback in Blade (inertia-static-fallback) so crawlers and answer engines see article text without executing JavaScript. This mattered for Google AdSense review and for AI search snippets.

Features I added after launch

Feature Why
Full-text search Readers expect findability beyond tags
Post likes (anonymous + auth) Lightweight engagement signal
Moderated comments Community without spam floods
Newsletter capture Own the audience channel
MCP content API Agent-assisted publishing with audit logs
Graphify knowledge graph Safer refactors when the codebase grows

MCP publishing (why not only Filament?)

I added a Sanctum-protected MCP API so agents can content_upsert drafts, upload media, and run read-only SQL. Every call requires X-Mcp-Tool for auditing.

Human review still happens in Filament before anything sensitive ships. MCP is acceleration, not autopilot.

Performance habits

Mistakes I would fix earlier

  1. Duplicate category slugs (cyber-security vs cybersecurity)—hurts SEO and looks sloppy to reviewers
  2. Too many similar "What is X?" posts in one week—reads like SEO filler even when long
  3. Thin contact page—trust reviewers want substance around forms

What is next

If you are building a similar solo CMS, steal the split: Filament for ops, Inertia for readers, markdown for longevity, MCP for automation—but keep editorial judgment human.