Back to portfolioCase study · 06
HealthcareCare clinics · Netherlands

Running a clinic, on web and mobile.

One system for how a care clinic is run.

A multi-tenant management system for a group of Dutch care clinics. I rebuilt the whole web app from a clean slate, wrote a third of the API, and contributed to the mobile app staff use on the ward.

ROLE
Lead engineer, web app and API
WHEN
Dec 2025 – Nov 2026
WHERE
Netherlands (remote)
CLIENT
Shared on request

THE HEADLINE

16 modules

Files, rosters, tasks, incidents, handbooks, norms, DPIA and patients in one system

100%
of the web app commits were mine
69
web screens, matched to the designs
1 DB
per clinic, encrypted credentials

01 · The problem

A clinic runs on rules, rosters and records.

Care clinics in the Netherlands have to show that every handbook, norm, incident and data-protection assessment is in order, while staff still need their shifts, tasks and files on hand. All of that lived in separate tools, and none of it sat outside the medical record in one place.

02 · What I built

The clinic’s back office, in one place.

01

Rosters and leave

Shifts, assignments, leave, holidays, period locks, overtime and preferred days, per unit.

Scheduling
02

Dossiers and drive

Documents with classes and kinds, unit dossiers, shared folders with permissions, and an editor for Word files.

DocumentsDOCX
03

Tasks with approval

Tasks with workers, reviewers, comments, approvals and document versions.

Workflow
04

Incident reports

Report an incident, assign co-handlers and follow it through to the end.

Quality
05

Handbooks, norms and DPIA

Versioned handbooks and norms, plus data protection impact assessments, ready for an audit.

ComplianceGDPR
06

Companion app

Shifts, tasks and alerts on the ward, with push notifications raised from events in the system.

MobilePush

03 · Key decisions

Rebuild clean, keep it safe.

01

A clean-room rebuild

Instead of patching the old frontend, I rebuilt it from a clean slate against the designs and the real API, and moved the clinics over in one cutover.

02

A database per clinic

Every clinic gets its own PostgreSQL database, found per request by subdomain or token, with its connection details encrypted with AES-256-GCM.

03

Locked-down API

Optional two-factor sign-in, a global JWT guard, role checks, and limits on GraphQL query depth and aliases.

04

Real-time by default

Alerts are raised from domain events and delivered over authenticated GraphQL subscriptions, and as push on mobile.

04 · Stack

Under the hood.

Web app

  • Next.js 16
  • React 19
  • Chakra UI v3
  • Apollo Client
  • TipTap
  • Playwright

API

  • NestJS 11
  • GraphQL
  • TypeORM
  • PostgreSQL
  • graphql-ws
  • Pino

Services

  • AWS S3
  • ConvertAPI
  • Resend
  • Expo push
  • Docker

05 · Results

What it added up to.

329
Commits on the rebuilt web app, all mine
1,000+
Commits on the API, a third of them mine
Web + mobile
One system for the office and the ward

Next case study · 07

Learn to invest, like a game

Need a system your clinic can run on?

I build healthcare software hands-on, from the data model to the ward.