Problem
An education provider's information is spread across a brochure PDF, a social account and a booking message thread. Programs are described in one place, the timetable in another, and event signups happen in whatever channel the parent happens to use. Staff who want to change a program description ask someone to edit the site, because there is no administrative side to edit it themselves.
Our role
Design, build, and the content model that lets staff maintain the pages.
Approach
React and TypeScript on Vite, styled with Tailwind CSS. Programs are records with detail pages rather than hand-built pages, so a new program is an entry and not a release. Events and membership content follow the same pattern.
Rich text is handled with TipTap, which gives staff a predictable editor instead of raw HTML, and motion is limited to Framer Motion transitions that do not obstruct reading. Supabase provides data and authentication for the administrative pages; shop, cart, and product pages are part of the same application, with payment initialisation wired in.
Outcome
The public pages, the administrative side, and the commerce surface are built. Which payment workflows are complete has not been verified against a live account, so this page does not claim a working checkout.
Notes
No family details, enrolment records, or payment data are published. Dates and prices are omitted deliberately.