A custom multilingual business website, moved from Webflow to its own code
ResultX is a Belgian company that helps businesses make money from sustainability. Their site ran on Webflow. I rebuilt it from scratch in English, Dutch and French, with its own blog admin where Claude helps write and translate posts. The existing URLs stayed in place, so the search visibility the site had built up moves with it.

The challenge.
ResultX wanted to leave Webflow, but visitors should see the same site: the same house style and the same message. Three requirements came on top. The site had to work fully in English, Dutch and French. The team wanted to write, schedule and publish blog posts themselves. And AI had to help with that writing through a Claude integration.
The biggest risk in a move like this is Google. A site that has been online for a while has pages people find through search. Change the URL structure without a plan and you start from zero in the results. The new site had to catch every existing URL, in three languages.
The approach.
I built the site in SvelteKit on Cloudflare Workers, inside ResultX's own Cloudflare account next to the domain they already kept there. The fixed pages (home, services, about, sectors, contact and the legal pages) live in the code. Blog posts live in a database from day one, so a new post goes online without rebuilding the site.
Behind a login sits a blog admin: write and edit posts in an editor with tables and images, upload images, manage users and pick a publication date. On request, Claude writes a first draft and translates posts into the other two languages. That runs on ResultX's own Anthropic account, so the AI costs and the data stay with them.
Architecture and choices.
- ·
SvelteKit on Cloudflare Workers, in the client's account. The site runs fast at the edge with no server to manage. Because everything is in ResultX's name, the code, hosting and domain remain theirs.
- ·
Pages in code, blog posts in D1. Fixed pages rarely change and belong in version control. Posts are added regularly and belong in a database. Images go to R2, Cloudflare's object storage, in Europe.
- ·
Claude as a writing aid, with a schema as gatekeeper. Every model answer must pass a Zod schema first. If it does not match, it is refused and nothing reaches the database.
- ·
HubSpot forms and consent-based tracking. Contact forms run through HubSpot in the EU region. Tracking only loads after a visitor gives consent in the cookie banner.
- ·
Better Auth for the admin. Email and password sign-in, password reset and a user management screen, without an external paid platform.
The hardest problems, solved.
- 1
Carrying search rankings over to the new site. The old URL structure stayed in place, including the legal pages. An old URL that Google still listed now redirects permanently (308) to its successor. Every page points to its other language versions with hreflang, and the sitemap and structured data (JSON-LD) are built per language.
- 2
Never storing AI output blindly. A language model sometimes returns an answer in the wrong shape. So the site validates every answer against a schema before a row reaches the database. A failed attempt produces an error message, never half a post on the site.
- 3
One pipeline for every kind of post. A post the team writes, a post delivered from outside and an AI draft all follow the same path: draft, review, then publish on a chosen date. That lets ResultX plan posts ahead.
- 4
Tests that are tested themselves. Next to 910 unit tests and Playwright browser tests, the project runs mutation testing with Stryker. It deliberately changes the code and checks that the tests notice. That shows the tests actually guard something.
Result.
The new site is ready: twelve page types in three languages, a blog ResultX manages themselves and an AI writing aid on their own account. I built the core alone in about two weeks. ResultX is now making a few changes of their own, after which the site moves to resultx.ai.
For a business owner on Webflow, Wix or WordPress, the lesson is this: moving to a custom site does not have to cost you your rankings, as long as the existing URLs get a plan. And a blog with AI help can live inside your own site, on your own account, with no extra platform in between.
Under the hood.
Frequently asked questions.
Is your question not listed? Email me directly.
Can you move my Webflow or WordPress site without losing my Google rankings? +
I start with a list of every existing URL and the pages visitors reach from Google. Useful addresses stay, moved pages get a permanent redirect, and hreflang and the sitemap are checked. No one can guarantee every position, but with a plan like this you take the visibility you have built with you.
Can my team write and publish blog posts themselves? +
Yes. In the admin you write and edit posts, add images and tables and choose a publication date. An AI writing aid is optional and runs on your own account with the AI provider, so you control the costs and the data.
How long did this take to build? +
I built the core alone in about two weeks: the pages in three languages, the blog admin, the AI writing aid, the HubSpot forms and the SEO handover, with an automated test suite. A few smaller changes followed.
What does a multilingual website like this cost? +
A multilingual business site with its own blog admin costs more than a simple single-language site, because every language needs its own URLs, translations and checks. For a fixed price, we look at your pages and languages together.
Why custom code instead of Webflow? +
Webflow works well for many sites. ResultX wanted something Webflow does not offer out of the box: a blog admin with AI writing help and scheduling, connected to their own accounts. Custom code makes that possible, and the site stays fully theirs.