Somerset West, Western Cape, South Africa

Case Study · Custom Web App

Newberry House

One platform runs the whole school. From a family’s first visit to the website, through tours, applications and e-signatures, to an enrolled family booking parent-teacher conferences from their phone.

ClientNewberry House Montessori
Status● Live since May 2026
TimelineSigned to live in 4 weeks
Scale342 children · 474 parents · 82 staff

A school run on spreadsheets became one system with one login.

Newberry House grew from 45 children to 200+ across two campuses, still running on Google Sheets, WhatsApp groups, paper forms and a tour spreadsheet that double-booked. Term reports were Word documents emailed between guides and the Head.

We replaced the patchwork with a Next.js platform on Supabase: 124 Postgres tables, row-level security on every one, Google sign-in for staff, and a family code + PIN for parents. Live and in daily use since May 2026. Every demo below is a working slice; all names in them are fictional.

The design language

Rooted in nature, set in green.

The school’s identity brief was explicit: clean greens, warm whites, generous photography, editorial clarity. No serifs, no italics, anywhere. These are the actual tokens the platform ships with.

#3A913FNewberry Green · headings, icons, buttons, links
#2D5016Dark Green · display type, footer surfaces
#1B5E20Forest · hover states, deep accents
#D4A843Gold · sparse highlights only
#FAFAF7Off-white · page background, warm tint
#F5F5F0Light grey · alternating sections
70% whitespace + photography20% green5%5%

The colour budget, straight from the brand spec: whitespace does the talking, green does the pointing, gold appears only when something is precious. Display headings split their colour mid-sentence, dark green setting up the bright green payoff, exactly like the headings on this page.

01 · Admissions

From first click to enrolled, without retyping a form

The public website is the top of the admissions funnel. Every enquiry, tour and application flows into the dashboard, and the office is emailed at each step. Two-parent applications pause for the second signature automatically; proof of payment is verified on the same screen. 141 real admissions have run through this pipeline.

Click the steps to walk the journey.

Books a tour on the website

The slot comes off the live calendar, so double bookings are impossible.

✉ To the office: New tour booking, Marais family, Saturday 09h00.

02 · The Family Portal

Parents sign in with a code, not a password

A family code and 6-digit PIN sign the whole household in, scoped to their own children. Report cards, planned absences, messages to the guide and conference bookings all live behind it. Staff can preview any family’s exact view with View As, without touching the account.

The tabs work. Click around.

family.newberry · Thea Marais · code LOW999
A
Anna MaraisWillow · Lower Elementary · Guide: Elsa Kruger
Present today
B
Ben MaraisYellowwood · Pre-Primary · Guide: Peter Fourie
Present today

Everything is scoped to your family. Nothing else is visible.

03 · Communications

Newsletters that know exactly who they are talking to

Campus Age
474 recipients: active, subscribed, with email

{{first_name}} {{child_names}} {{family_code}}

From: Newberry House · Term 3 begins on Tuesday 21 July

Dear Thea,

We cannot wait to welcome Anna and Ben back. Aftercare for family LOW999 stays unchanged this term.

Unsubscribe with one click. POPIA honoured automatically.

Per-recipient sends on a verified domain. A name-by-name preview and live counts before anything goes out, because the office asked to see exactly who receives what.

04 · The Campus Map

41 hand-drawn hotspots on a real aerial photo

Every building, garden and field is a clickable SVG polygon at its true position, colour-coded and editable from the dashboard, with drag-and-zoom photo framing per zone. The hard part was keeping 41 polygons smooth on mobile while the aerial photo stays crisp.

Tap the zones.

Jasmine · Learning Space

Why it is built this way

1

Family code + PIN instead of email logins

Parents share children and forget which email they used. One code groups the household; a 6-digit PIN opens it. No verification loops, no reset emails.

2

Google sign-in for staff, domain-locked

Staff already live in the school’s Google Workspace. One click in, restricted to school addresses, and password support drops to zero.

3

Row-level security on all 124 tables

19 role types and 437 permission entries enforced by the database itself, with a View As mode so admins can verify any colleague’s exact view. Data lives in the EU for POPIA.

4

Nightly syncs instead of manual capture

248 children from Transparent Classroom and 38 Google Classroom courses with 466 enrolments arrive automatically, one rate-limited call per child.

Built with: Next.js 16 · TypeScript · Supabase (124 tables, RLS, Storage, Edge Functions) · Tailwind v4 · Resend · Vercel

The screens

Live captures, more on the way

Homepage hero with video background
Homepage hero with video background
SCREENSHOT: Interactive campus map with hotspot and detail panel
Interactive campus map with hotspot and detail panel
SCREENSHOT: Dashboard with live KPI cards and campus filter
Dashboard with live KPI cards and campus filter
SCREENSHOT: Admissions pipeline Kanban board
Admissions pipeline Kanban board
SCREENSHOT: Newsletter editor with audience picker open
Newsletter editor with audience picker open
SCREENSHOT: Recipient preview with source labels
Recipient preview with source labels
SCREENSHOT: Family portal dashboard as a parent sees it
Family portal dashboard as a parent sees it
SCREENSHOT: Conference round with live slot capacity
Conference round with live slot capacity
SCREENSHOT: Capture Moments three-column grid
Capture Moments three-column grid
SCREENSHOT: Staff list with roles and campus badges
Staff list with roles and campus badges
Homepage on mobile
Homepage on mobile
About Us, Spier tab with interest form
About Us, Spier tab with interest form

Four weeks from signature to a school running on it.

342children managed daily
474parents subscribed
141admissions tracked end to end
124database tables, 63% beyond scope

Running your school or business on spreadsheets? We should talk.