Skip to main content
// Portfolio / Ioana Mihalca 08 / 10
// Case study

Ioana Mihalca

Full-stack migration of a Romanian journalist's WordPress blog to Laravel 13, featuring a custom editorial design system with an earthy rural-magazine aesthetic, Livewire-powered reactive pages, a Filament 5 admin panel, automated Gutenberg content import with image rewriting, and comprehensive SEO with 301 redirect preservation.

Visit Project
// Ioana Mihalca ioanamihalca.ro
Ioana Mihalca

Content Migration — A custom Artisan command handles the full WordPress-to-Laravel migration: it parses Gutenberg block format (paragraphs, images, galleries, headings, quotes, embeds, lists), downloads and rewrites all media from the live site, deduplicates taxonomy terms, and preserves all 21 original articles with their categories and tags. YouTube embeds are converted to responsive iframes automatically.

Admin Panel — Built on Filament 5, the admin panel provides complete management for articles (rich editor, auto-generated slugs, SEO fields, category and tag assignment, bulk publish/unpublish), categories, tags, static pages, portfolio items (drag-and-drop reordering), and contact messages (with read/unread status). Dashboard widgets show article statistics and recent contact messages.

Reactive Frontend — Pages are built as Livewire 4 Single-File Components with no traditional controllers: homepage with featured hero and latest articles, paginated blog listing, article detail with related posts, category and tag filtering, portfolio grid, and a contact form with real-time validation, honeypot anti-spam, and rate limiting.

SEO & Performance — All 21 original WordPress slugs are preserved with a 301 redirect catch-all for legacy URLs. A dynamically generated sitemap.xml (cached 1 hour, auto-invalidated on content changes) covers articles, categories, and tags. Every page includes full meta tags, Open Graph, Twitter Card, and JSON-LD Article structured data. All non-hero images use lazy loading; N+1 queries are prevented via eager loading throughout.

Design System — An editorial/rural-magazine aesthetic using Playfair Display, Lora, and Inter with an earthy palette (forest, terracotta, cream, charcoal), CSS animations (fade-in, slide-up, stagger), grain texture overlay, asymmetric grids, drop-cap prose styling, breadcrumbs, and share buttons.

Testing — 76 PHPUnit tests across 10 feature and 2 unit test files covering all pages, edge cases, the Gutenberg parser (14 tests), image downloader logic (9 tests), sitemap validity, contact form honeypot and rate limiting, and legacy URL redirects.

Tech stack: Laravel 13, PHP 8.3, Livewire 4, Alpine.js, Tailwind CSS 4, Filament 5, MySQL, PHPUnit 12.

// Contact
Have a similar project in mind?
Tell us what you want to build and we will get back to you.
Start a conversation