Introduction
Content does not need a heavyweight CMS. It needs typed queries, fast reads, and a clean migration path. Convex gave us all three.
Typed functions, no glue
Queries are TypeScript functions. The storefront calls them over HTTP and gets exactly the shape it asked for — no ORM, no schema drift between layers.
Migration without downtime
We mapped each Strapi collection to a Convex table and a query that returns the legacy shape, so the UI never changed while the backend did.
Watch it in action
Prefer video? ▶ Watch the walkthrough
Built on Bun + ElysiaJS, served through Convex. Questions welcome in the comments.