← Back to the sketchboard
case study

06 · Media · WordPress → Laravel TALL stack

Digital Dopamine

An English-language entertainment and pop-culture media brand — "Story Telling. Media. Print. Creatives." — moved from WordPress to Laravel on the TALL stack. 807 posts migrated with their search rankings protected, and a custom Filament CMS built around how the editorial team actually works.

digitaldopamine.in
Digital Dopamine — media site migrated from WordPress to Laravel TALL stack

How it came together

  1. 01 · BriefThe goal

    Move a busy content site off WordPress without breaking a single ranking URL, and give editors a CMS with proper roles and workflow.

  2. 02 · BuildWhat I built

    A Laravel front end with Alpine.js and Tailwind CSS v4, a Filament admin panel for editors, and a migration that carried 807 WordPress posts across with their URLs, sitemaps and structured data.

  3. 03 · ShipThe result

    An SEO-safe re-platform: the same permalinks Google already knows, plus an editorial CMS the team controls end to end.

An SEO-safe migration

The riskiest part of leaving WordPress is losing search traffic. Everything Google already knew about the site was kept:

Legacy permalinksDate-based URLs like /2026/01/26/slug/ still resolve exactly as before.
Yoast-style sitemapsThe sitemap structure matches what WordPress + Yoast used to publish.
JSON-LD schema graphStructured data generated with spatie/schema-org for every post.
Automatic 301sRename a post and a permanent redirect from the old slug is created for you.

A CMS built on Livewire

The admin is a Filament panel — Livewire under the hood — so forms, tables, actions and notifications are all live without a separate front-end app.

Roles & permissionsAdmin, Editor and Author roles with spatie/laravel-permission, and per-author post visibility.
Generate with AIA one-click action that drafts a blog post for the editor to review and finish.
Media libraryUploads handled by spatie/laravel-medialibrary.
Live notificationsEditors see updates as they happen.

Fast by design

Alpine.js front endHeader navigation, the share rail, comments, the Instagram reels rail and video pages — interactive without a heavy JS bundle.
Cached homepageThe homepage is cached for 30 minutes, so busy traffic hits memory, not the database.
On-the-fly imagesImages are resized and re-encoded to WebP on request, then cached.
Tailwind CSS v4 + ViteSmall, purged CSS and a modern build pipeline.
Visit digitaldopamine.in ↗Plan a WordPress → Laravel move