Strapi as the CMS, behind one gateway
Staff edit content in Strapi. The frontend reads it through one gateway, so CMS changes don't break pages.
Bilingual website for a private ENT clinic in Athens, live and serving patients. Next.js 16, a Strapi 5 CMS the staff run themselves, and Meilisearch.
Live in production. Clinic staff edit the Greek and Russian content themselves.
A private ENT (ear, nose, throat) surgical clinic in Athens needed a modern web presence: a bilingual (Greek/Russian) site with a condition encyclopedia, service and price pages, video content, and appointment booking. Non-technical staff maintain it after handover.
myorl-migrate) to pull content out of the legacy MODX site into structured Strapi content types.Audited the old MODX site and wrote tools to move its content into Strapi.
Completed Apr 2026
Strapi 5 + PostgreSQL content types for pages, encyclopedia entries, services, prices, and media.
Completed Apr 2026
Greek/Russian Next.js frontend on Tailwind v4 tokens; full-site typo-tolerant search with bulk corpus seed, Strapi webhook reindexing, and bilingual synonym dictionaries.
Completed May 2026
Docker builds, ISR with per-locale sitemaps, security headers (CSP/HSTS), and production routing fixes; site live and serving patients.
Completed May 2026
Worked through the clinic's requirements list, published 23 Greek pages, and handed content editing to clinic staff.
Completed Jun 2026
Relaunched at myorl.up.railway.app after the original hosting lapsed.
Completed Oct 2026
Staff edit content in Strapi. The frontend reads it through one gateway, so CMS changes don't break pages.
Meilisearch indexes the bilingual encyclopedia and service pages; Strapi webhooks keep the index in sync on every content change.
Legacy MODX URLs resolve through a dedicated Strapi content type instead of hard-coded redirect tables.
Site restored on a new Railway project after the original deployment lapsed.
CSP and HSTS security headers, per-locale sitemap and static params, ISR on the home route, production routing fixes for slug pages, and mobile search and tab repairs ahead of go-live.
Loaded all content into Meilisearch. Strapi now reindexes a page whenever staff edit, unpublish or delete it, and Greek and Russian synonym lists improve matches.