MyORL — ENT Clinic Platform
Active buildBilingual healthcare website for a private ENT surgical clinic in Athens — Next.js 16, Strapi 5 CMS, Meilisearch, fully deployed and serving patients.
- Next.js 16
- React 19
- TypeScript
- Tailwind CSS v4
- Strapi 5
- PostgreSQL 18
- Meilisearch
- Docker
- Caddy
- Vitest
- Playwright
- Railway
Outcome
Live bilingual healthcare platform for an Athens ENT clinic — Next.js 16 frontend, Strapi 5 CMS with full content handover, Meilisearch patient-facing search, and Playwright-tested booking flow. Deployed on Railway and serving real patients.
Context
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 — maintained by non-technical staff after handover. Client details are anonymized; the site is live and publicly reachable.
Engineering Decisions
- Frontend: Next.js 16 App Router + React 19 + Tailwind CSS v4, bilingual routing (Greek/Russian), server components for fast first paint on clinic Wi-Fi and mobile data.
- CMS: Strapi 5 + PostgreSQL 18 so clinic staff edit encyclopedia entries, prices, and videos without touching code.
- Search: Meilisearch for instant, typo-tolerant search across conditions and treatments — patients rarely know exact medical spelling.
- Migration: Custom extraction tooling (
myorl-migrate) to pull content out of the legacy MODX site into structured Strapi content types. - Infrastructure: Docker Compose + Caddy locally; production deployed on Railway (frontend, Strapi, Postgres, and Meilisearch as separate services).
- Testing: Vitest + React Testing Library for components, Playwright for end-to-end flows including booking.
Outcomes
- Live in production, serving real patients — bilingual content, search, and booking all operational.
- 314 commits across frontend, CMS, and migration tooling.
- Full handover: the clinic edits its own content; no developer needed for routine updates.