HomeLogo
English

WordPress to Astro rebuild

Jan 2026 - Mar 2026 · Delivered

Developer, full rebuild, component system and i18n

An Elementor-based WordPress site rebuilt in plain Astro with Tailwind and TypeScript, matched closely at every breakpoint so visitors would not notice.

  • Astro
  • TypeScript
  • Tailwind CSS
  • JavaScript
  • WordPress

Overview

A company wanted off Elementor-based WordPress: faster, cheaper to host, and free of the plugin and page-builder dependencies that had accumulated. The constraint was that visitors should not notice the change.

What I built

A complete rebuild in plain Astro with Tailwind and TypeScript, no external dependencies, and a multi-locale content system. The site serves Swedish, English and German from one codebase through Astro’s i18n routing, with content held as structured collections rather than embedded in templates.

Complexities tackled

Page-builder markup cannot be translated. Elementor generates deeply nested containers with inline styles and its own responsive breakpoints. Converting that markup directly gives you the same tangle in a new framework and none of the speed benefit. Every section was rebuilt as clean components instead, which is slower up front and the only way the result is actually maintainable.

Pixel accuracy is a verification problem, not a coding one. The work was less about writing components than about systematically comparing each one against the original at every breakpoint. That is unglamorous, and it is where the requirement was actually met or missed.

Content and language modelled properly. Content across all three locales sits in structured collections rather than in templates, so adding a language or a case study is a content change rather than a development task. Getting that structure right early is what stops a translation layer becoming a duplicate site.

No external dependencies, as specified. Everything a plugin had been doing was either rebuilt or deliberately dropped, rather than swapped for an npm package that reintroduces the same problem.

Outcome

Four weeks of build, working alongside the client’s own technical team, with the whole rebuild in their GitHub repository throughout.

Stack

Astro, TypeScript, Tailwind CSS, Astro i18n, content collections, static output.

Working on something similar?

Tell me what you are building and what is in the way. I will tell you honestly whether I am the right person for it.

Start a conversation

Last updated: