PLATFORM · CRM · CLIENT UNDER NDA
Replacing a WordPress monolith with Strapi and Astro
A slow, hard-to-edit WordPress site for a real estate developer, rebuilt in six months on Strapi and Astro with the sales CRM feeding the listings.
- +33%
- organic CTR
- −40h
- manual work / month
- +50%
- Lighthouse performance score

- Role
- Tech Project Lead
- Duration
- 6 MONTHS
- Year
- 2025
- Client
- Under NDA
The problem
The site was slow, it converted poorly, and it was hard to use. The deadline was fixed: the new year's marketing budget was planned around a new site, so the release had to land by the end of 2025. Three things sat behind it:
- 01
Building a page in the WordPress block editor took too long, and the people who had to do it found it hard to use.
- 02
The site carried many plugins it did not need, and some were large ones installed for a single small feature. Each one added code to maintain and another place for a vulnerability, in a monolith where the public site and the admin shared one application.
- 03
An audit of the old site showed outdated WordPress and plugins that could be exploited. A vulnerability could sit in the core, the database, or any third-party plugin or theme.
Choosing the stack
Working with the business, we chose the stack by what the site had to do. For the public site we chose Astro. It generates static pages, which is why it is fast, and it lets us add client-side islands where a page needs live data. We also looked at Next.js and at other frameworks. Next.js was heavier than mostly static pages needed, and Astro's islands gave us static pages with live data only where it matters. Strapi fit the editors better than the alternatives we looked at, and the team already knew Astro and Strapi. Then we researched what the business needed, drafted the UX and UI, and built Strapi with the CRM integration and the frontend. Everyone on the team had clear tasks.
We wanted an easy-to-use website that integrates with the CRM and automates multi-team processes.
What we built
Five pieces make up the new site, from the public pages down to search.
- 01
Splitting the public site from the admin
Visitors get a statically generated Astro site with no direct database queries and no way into the admin panel. The Strapi panel and its API sit behind network firewalls, with authorization at the infrastructure level and VPN and IP allowlisting, so brute-force login attempts and SQL injection have nothing public to hit. Several people can work in Strapi at once, each with the permissions their role needs.
- 02
Sales works from the CRM
The sales team manages listings in the CRM, and nobody in sales logs into Strapi. Each site build extracts the data: technical parameters, availability statuses and reservations. If the CRM is down, the last build stays the source of truth. Releases use blue-green deployment, and a failed build does not release, so the last good version of the site stays online. On the page, Astro islands run the dynamic parts (search, sliders, the interactive map), and a lazily loaded check asks for the current availability of an apartment and saves the result, so the next view starts with the latest status.
- 03
Marketing builds pages without developers
Marketing assembles campaigns and landing pages in Strapi from 20 reusable Flexible Blocks, each with slight layout variations chosen from a variant field, usually two or three. A new page does not need a developer. Compared with the WordPress block editor, the blocks are bigger and more self-explanatory instead of fully atomic, which is easier to use once the design is settled.
- 04
Tracking the user flow
A custom events system in the Astro component layer follows floor plan and filter interactions, enquiries about specific units, and reservations, all in one standardized stream. Marketing and analytics can attach a new pixel or tool, find where visitors drop off, and keep optimizing conversion. Before, every new event needed a developer. Now new tracking does not.
- 05
Search and accessibility
The pages use semantic HTML5 and are built to be compatible with WCAG. We added Schema.org structured data (JSON-LD) for real estate and structured the pages for geolocation and for AI and LLM crawlers, so generative search engines can read apartment parameters. In informal checks, asking AI tools about the developments now returns more information than before the change.
What comes next
New ideas kept coming up during the project. To hit the deadline, we kept the first release focused and moved them to after launch. Two of them are deeper CRM integration and AI-powered search, which also needs a protective layer so an AI agent cannot break the site or abuse the API.
My role
I was the tech project lead. I worked with the business side to pick solutions that matched what they needed, then ran the project with a team of 5 and set up the structural skeleton of the codebase. Six months, in the second half of 2025.
Outcome
As of January 2026, the site runs on Strapi and Astro. Time to first byte fell from 2.1 s on WordPress to 0.7 s, and the Lighthouse performance score improved by 50%. Organic CTR rose 33% compared with the WordPress site. Manual work dropped by 40 hours a month: copying listing data into the site, developers building landing pages, setting up tracking and reports, and fixing plugin and update problems. The admin panel and database cannot be reached from public traffic, which removes the plugin and theme exposure the old site had.
TECH STACK
Built with
LANGUAGE
- TypeScript
STACK
- Astro
- Strapi
- React
INFRASTRUCTURE
- Netlify
- Strapi Cloud
05 / CONTACT
ACCEPTING NEW STRATEGIC ROLES FOR 2027
I thrive where complex engineering meets commercial reality. Open to Head of Web & Product roles.
KRAKÓW, PL
BUILT WITH BEARMINION
