DEV Community

Cover image for WordPress Theme from Lovable HTML in One Day
Vojta Biberle
Vojta Biberle

Posted on Edited on Originally published at vojta.biberle.cz

WordPress Theme from Lovable HTML in One Day

I took an HTML export from Lovable, opened Claude Code, and in one day had a complete WordPress theme -- 11 custom blocks, 4 custom post types, deployment pipeline. 83 files, over 7,300 lines of code. Without an AI agent? That would've taken a week at least.

The Brief

I needed a new website for the Czech ecological organization Stromy v krajine (Trees in the Landscape). Their old site was outdated and the client wanted to manage content themselves -- projects, events, team members, partners, and news. WordPress was the obvious choice.

I had Lovable generate the design -- an AI tool that creates a complete React SPA from a text description. The result looked great: responsive design, beautiful color palette (forest green + gold), Tailwind CSS, interactive components. But the client needed WordPress, not a React app.

Step 1: Analyzing the Lovable Export

Lovable generated a React/Vite SPA with dozens of components: HeroSection.tsx, AboutSection.tsx, AchievementsSection.tsx, pages for news, contact, photo gallery. The entire design system in Tailwind with HSL variables -- primary: 142 70% 25% (forest green), accent: 47 96% 53% (gold).

First step was having Claude Code explore the entire React codebase -- every component, every design token, every breakpoint. It built a complete map of what needed to be converted.

Step 2: WordPress Theme in an Hour

From the React code analysis, Claude Code generated the entire theme structure:

  • 11 custom blocks -- Hero, Quote + About, Achievements, Contact Info, Contact Form, Photo Gallery, listings for Projects, Events, Team, and Partners
  • 4 custom post types with Czech labels -- Projects (status, location, tree count), Events (date and time), Team (social media), Partners (logo)
  • Tailwind pipeline via Vite -- identical design tokens as in Lovable
  • Custom Nav Walker for desktop and mobile navigation
  • Vanilla JS lightbox with arrow navigation

55 files, over 5,000 lines -- in a single commit.

Step 3: The Pivot -- ACF to Carbon Fields

The original plan was ACF (Advanced Custom Fields) for blocks and metadata. But ACF Free lacks:

  • Repeater fields (item lists)
  • Gallery fields (photo gallery)
  • Options pages (footer settings)

ACF Pro costs $199+/year. Instead I switched to Carbon Fields -- an open-source alternative with full functionality via Composer.

The migration happened the same day. Claude Code rewrote all 11 blocks from ACF API to Carbon Fields API, swapped get_field() for carbon_get_the_post_meta(), and added Docker Compose for local development. Zero licensing costs, 100% open-source.

Step 4: Polish

What remained was fine-tuning details to match the Lovable design:

  • Styling the Aktuality (blog) page to match the Lovable template
  • Contact form with validation replacing the placeholder
  • Editable footer via WordPress widget areas
  • CTA button moved from hardcoded header to WordPress menu system
  • Gallery with lightbox and arrow navigation
  • Editor styling -- blocks in Gutenberg get labels and borders

Step 5: Deployment

Finally, a Deployer pipeline:

  • Local build via Vite (Tailwind + JS)
  • rsync to production server with release management
  • Zero-downtime deploy via symlinks
  • Content sync scripts (WP-CLI export/import + search-replace)
  • Media sync via rsync to a shared uploads directory

Timeline

Time What happened
0h Lovable HTML export imported
1h Complete WordPress theme + ACF blocks
2h Pivot to Carbon Fields + Docker setup
3-6h Styling, admin flexibility, interactions
7-8h Deployment pipeline, documentation

24 commits over 2 days. 83 files. 7,300+ lines of code.

Why This Wouldn't Work Without Claude Code

This was a project where an AI agent really shined:

  • Codebase analysis -- explored the entire React export and understood the design system
  • Structure generation -- 55 theme files in a single step
  • Rapid pivot -- ACF to Carbon Fields migration in an hour instead of a day
  • Repetitive patterns -- controllers, template parts, CPT registration, block definitions
  • Tailwind conversion -- 1:1 transfer of design tokens from React to WordPress

Key decisions -- architecture, Carbon Fields vs ACF, deployment strategy -- required human judgment. But the actual execution? The AI agent sped that up maybe 5-10x.

One person + Claude Code = a complete WordPress theme in a day. The future of development is here.

Top comments (0)