Website for a Helsinki bakery
Storefront, menu and orders in three languages — with an admin panel the owner uses themselves without breaking anything.
- The owner edits menu and copy, with no developer and no risk to the layout
- Three languages for a Helsinki audience: English, Finnish, Russian
- Fast page delivery and a predictable one-step deploy
The problem
A small food business needs a living site: the menu changes and seasonal items come and go. A site that costs a developer fee per edit goes stale within a month and stops earning its keep.
How it works
Current-generation Next.js paired with an editorial system inside the same application: content lives in the database, pages are served as static output. The three locales are part of the content model rather than three copies of the site. Nine build stages from skeleton to content, each with its own acceptance.
The hard part
Deploying this pairing proved fussier than building it. The standard migration command silently does nothing in this environment — it has to be run through the TypeScript executor directly. The build hangs indefinitely unless migrations are gated by an explicit flag. And the deploy order is strict: database before build, or the build can't find the schema. All of it is written up as a reusable note so the next site of this kind doesn't cost the same days.
Evidence
- All nine stages closed
- The traps found were extracted into a reusable playbook for later projects
- The content model validated against a real menu rather than placeholders