Why they moved off Webflow
Webflow got CREATIO a good-looking site. What it did not give them was the engine underneath: the markup and the hosting belong to the builder, and so does the performance ceiling that comes with them. On a mid-range Android phone over a slow connection, the old site scored around 35 out of 100 in PageSpeed Insights.
For a developer whose pipeline depends on inbound enquiries — someone typing an address into a valuation form at 22:00, on a phone — that is the whole problem. A slow page on mobile is a lost lead, and a site the team cannot publish to on its own is a development that goes live a week late.

What was built
The design survived intact. We ported the Webflow layout pixel-for-pixel, animations included, and replaced the engine underneath. Nothing was redesigned for the sake of the rebuild — with one exception: the property-valuation section on the homepage, which was rebuilt from scratch because it carries the commercial load.

Content moved into a Git-based CMS. Developments, rentals, blog posts and the real-estate glossary live in Keystatic. Each entry is a file in the repository, so the content has the same history, review and rollback as the code. Meta title and description are editable fields on every entry, not a developer task — and an editor-controlled noindex flag removes a page from the sitemap without a deploy request.

The editor is a separate deployment. Keystatic runs on its own Cloudflare Worker behind Cloudflare Access, so the public site ships as pure static files with no admin surface attached to it. An editor saves, that becomes a commit, the commit triggers a build. The team can also drive the same files through Claude or ChatGPT and get a pull request instead of a ticket.
Leads go where the sales work happens. Every form on the site — valuation, contact, careers — posts into HubSpot, which is where CREATIO's deal flow already lived. Analytics came across from the Webflow build too: GTM, GA4, HubSpot and the Tree-Nation tree counter.
Two languages, one source. German for the Swiss market, English alongside it, with the hreflang pairing handled at build time rather than by hand.

A glossary that keeps producing pages. The real-estate wiki turns every term CREATIO's buyers actually search — Baumassenziffer, Grundstückgewinnsteuer, Attikawohnung — into its own indexable page, generated from the same content collection.

Results
| PageSpeed Insights | On Webflow | On Astro |
|---|---|---|
| Performance, mobile | around 35 | 90 |
| Performance, desktop | around 65 | 100 |
| Accessibility | — | 99 |
| Best Practices | — | 100 |
| SEO | — | 100 |
On mobile: Largest Contentful Paint 3.5 s, Total Blocking Time 0 ms, Cumulative Layout Shift 0. On desktop: First Contentful Paint 0.5 s, Largest Contentful Paint 0.6 s, and again no blocking time and no layout shift.


The Astro column is a PageSpeed Insights run on 27 September 2026 — Lighthouse 13.5.0, emulated Moto G Power, Slow 4G throttling — which is what the two screenshots show. The Webflow figures are from the team's own checks during the project; that build no longer exists, so they cannot be re-run. Both are lab measurements: creatio.ch does not yet carry enough traffic for Chrome's field data to report.
Where the weight went
Commercial builders leave a lot of it behind. Stripping it out was most of the performance work, and each line below is measured rather than estimated:
| What changed | Before | After |
|---|---|---|
| Hero image, WebP fallback | 2 714 KB | 507 KB |
| Hero image, AVIF fallback | 1 315 KB | 242 KB |
| Render-blocking CSS on first load | 480 ms | 0 — every stylesheet inlines into the HTML |
| Third-party analytics on the critical path | ~300 KB of GTM / GA4 / HubSpot | loaded only on real user interaction |
| Below-the-fold slider photos | ~800 KB fetched eagerly | lazy-loaded |
| Live tree-counter API call | ~680 ms on the critical path | deferred until the counter scrolls into view |
| Layout thrash from the header script | 35 ms forced reflow | removed |
| Legacy JavaScript transpilation | ~13 KB | removed (ES2022 target) |
The image numbers come from one 4880×3252 hero source and hold for every other 4K asset on the site: a custom image service caps every build-time transform at 1920 px on the long edge, then encodes at WebP 72 / AVIF 45 / JPEG 78 — calibrated against Lighthouse's own image-delivery audit rather than guessed.

Tech stack
- Astro — static site generator. Every page ships as HTML; there is no runtime framework on the critical path.
- Keystatic — Git-based CMS. Content entries are files in the repository.
- Cloudflare Pages — global edge hosting, automated deploys from GitHub Actions through a three-branch flow (main → staging → production) with an edge-cache purge on every release.
- Cloudflare Access — gates the CMS editor, which is deployed as its own Worker.
- HubSpot — every site form routes into CREATIO's existing CRM pipelines.
Questions we get about this project
Does a Webflow site have to be redesigned to move to Astro?
No. We ported CREATIO's existing design pixel-for-pixel, animations included. The redesign work was one section — the property valuation form — and that was a commercial decision, not a technical constraint.
How much faster is a static Astro build than Webflow?
On this project, PageSpeed Insights went from around 35 to 90 on mobile and from around 65 to 100 on desktop. Most of that came from cutting weight the builder left behind rather than from any single trick: images capped and re-encoded, stylesheets inlined, third-party analytics kept off the critical path.
Who edits the site afterwards?
CREATIO's own team. Content lives in Keystatic as files in the repository; an editor saves and that becomes a commit, which triggers a deploy. The same files can be edited through Claude or ChatGPT, which produces a pull request rather than a support ticket.
What happens to SEO during a Webflow migration?
URLs, meta titles and descriptions are inventoried before the cutover and carried across, then verified in Search Console afterwards. On this project the sitemap is regenerated on every build, so new developments, rentals, wiki terms and blog posts are submitted without anyone maintaining a URL list.
Where does the site run, and what does it cost to keep running?
Cloudflare Pages, deployed from GitHub Actions. There is no builder subscription and no server to patch — the output is static files on a CDN.
Can the same approach work for other Swiss real estate developers?
Yes, and the constraints are the same ones we solved here: bilingual DE/EN, image-heavy development pages, a valuation form that has to reach the CRM, and mobile performance on Swiss networks.
Recently touched
- 2026-09-26 Post-launch verification checklist (SEO, analytics, infra, content) Done
- 2026-09-11 M6: Post-launch content additions (legacy landing pages + legal) Done
- 2026-09-08 Add legal pages (Impressum, Datenschutzerklärung, AGB) + wire into footer Done
- 2026-09-08 M5: QA, Launch & Handover Done
- 2026-09-08 GSC: fix "New reasons preventing pages in a sitemap from being indexed" on creatio.ch (404 + blocked by robots.txt) Done
Other projects in this case study
Brain MCP
A property lead arrives, and the deal, the folder and the reply exist before anyone opens a tab. CREATIO AG is a Swiss real estate developer running deals through Missive, HubSpot, Google Drive,…
Read case study