← Work03 ·Client project
Dimori Park Group
Off the CMS server: one app for every location
A real-estate developer's site, a page per cottage town. I moved it from Strapi and GraphQL on EC2 to Keystatic, a Git-based CMS: no CMS server and no database to run. Two towns are live and a third is ready to publish.
- Role
- Full-stack engineer: architecture, CMS, frontend, deployment
- Year
- 2025
- Built by
- Alone
- Live
- Open site ↗
§ 01Before and after
Before
Next.js
GraphQL
Strapi + SQLiteon EC2
After
Next.jsKeystatic
Git
Amplifystatic
§ 02One app, a route per town
Every cottage town is a route with its own content in the same application. Two are live; a third is ready to publish.
§ 03From an edit to production
Edit in Keystatic
Git commit
Amplify build
Static site
§ 04The details
- 01Server wrappers feed client components
Content is read on the server and passed down, so client components stay small.
- 02Image fields per town
Each town carries its own images in its content.
- 03Cache headers per asset class
Pages, images and scripts get their own cache rules.
- 04The Amplify build script
One script builds the static site from the repository.


“Ivan delivered our multi-site platform on time and it just works.”
Stack
Next.js · Keystatic · Tailwind CSS · AWS Amplify
Before the migration: Strapi, GraphQL, SQLite, Amazon EC2
Related notes