EdTechAIContent platform

CareLingua // Bilingual FSP exam-prep platform for nurses

A CMS-backed exam-prep platform for internationally-trained nurses

Next.js 16Sanity CMS + GROQZod validation gateStreamed neural TTSi18next bilingualSupabase
12
Thematic practice modules, each independently activatable without a code change
4
Exercise types per module — flashcards, collocation matching, register-switch, and guided chat
2
Fully parity-checked languages — German canonical, English a second language
01 — The brief

The Fachsprachprüfung Pflege is the oral and written language exam required for internationally-trained nurses to get licensed in Germany. CareLingua turns preparation for it into a structured, bilingual (German/English) training platform with two main tracks: Üben (self-paced practice across thematic modules) and Prüfung (exam-format simulation of the real oral exam).

Our engineering focus was building a content platform that cannot silently break. Every piece of exam content flows through a shared canonical schema and a Zod validation gate that enforces exam-scoring rules — like “exactly one correct answer per question” — at build time and at every CMS publish. That’s what lets a non-technical product owner safely edit exam-relevant content live, without a developer.

02 — What we built

The product surface

The entire editorial surface — module catalogue, all four exercise types, exam scenarios and dialogue turns, portraits, and every UI string — was migrated from static developer-owned files into Sanity, with an embedded Studio the product owner uses directly.

01

Üben — Practice

12 thematic modules → module detail → exercise chooser → 4 exercise players. Self-paced training with flashcards, collocation matching, register-switch, and a branching AI-voiced guided chat.

02

Prüfung — Exam simulation

Exam-part selector → difficulty → guided-chat exam run → scored result card, mirroring the real exam’s format rather than teaching in the abstract.

03

Embedded Sanity Studio

Content management for the product owner: modules, exam sims, UI copy, and a JSON bulk-import tab for LLM-assisted authoring — no engineering time required.

04

Text-to-speech (/api/tts)

Server-streamed German neural text-to-speech for any exam-relevant term or dialogue line, cached with a long immutable header since (text, voice) pairs are deterministic.

05

Live-publish webhook (/api/revalidate)

Signature-verified webhook that pushes a CMS publish live in seconds, no rebuild — selectively invalidating only the affected cache tags.

06

Landing page

Public marketing page, bilingual, with waitlist capture feeding a Postgres-backed signup list.

03 — Architecture and stack

Decisions, not just dependencies.

The content pipeline runs Sanity (GROQ projection) → Zod validation gate → canonical TypeScript types → exercise players. Every fetch is validated against correctness invariants: exactly one correct answer per question, collocation sets with at least one correct verb and one distractor, complete required fields. A CMS edit that violates one of these throws a labeled error at build time — and is caught live in Studio’s own validation before the product owner can even publish.

Deployment is Vercel-style Next.js hosting with Sanity Studio embedded in the same app. GitHub Actions auto-deploys Supabase migrations on every push to main. Strict TypeScript, ESLint/Prettier, and a standalone content:check script validate the live CMS dataset through the same Zod gate used at request time, plus DE/EN key-parity checks.

04 — Delivery highlights

What was hard, and how we shipped it.

  1. 01

    A CMS-first content platform a non-technical product owner fully operates

    Every module, exercise, and UI string is edited and published without a developer, while a shared validation gate makes it structurally impossible to publish exam content that would silently mis-score a learner.

  2. 02

    Live content updates without redeploys

    A signature-verified webhook and tag-scoped cache invalidation take a CMS publish live in seconds.

  3. 03

    A reusable exercise engine, not four one-off screens

    The same engine powers both practice and exam simulations, and will power Phase 2’s voice roleplay without a rebuild.

  4. 04

    A validated, staged AI roadmap

    Deterministic mechanics shipped first, with every future capability already architected against the shipped content pipeline.

  5. 05

    Bilingual from day one, multilingual by design

    International expansion is a content operation, not a re-engineering effort.

Looking at a project that sits at this kind of seam?

Bring us the architecture, the constraints, and the ship date. We will bring the rest.