Zaehid Hakim
Register Case 03 + 08

Case 03 + 08 Next.js 16 · Supabase RLS · Expo Site and portal live 2025 to now

Learn Academy

Directed oversight for families who educate their children, aged 6 to 16, at home.

Presenting problem
The parent teaches; an Education Director baselines each child, writes an individual learning plan in weekly instalments, and reviews the evidence the parent logs. All of that needed one shared place.
Assessment
The business repositioned in September 2026, so the site, the data model and the wording all had to change together. Children's data shaped the product. Accounts are for parents only, and the record belongs to the parent, who can export or delete it.
Plan
Next.js 16 with Supabase row-level security. A public site; a parent portal for this week's work, the evidence log, messages and a downloadable record; a Director console for enquiries, families, baselines, a weekly plan composer and a worksheet library. An Expo app for parents on the same backend.
Outcome
Site and portal live at learn-academy.co.uk, redesigned 9 Sep 2026. Retired URLs redirect straight to their new pages. The parent app is built and not yet released.
Learn Academy homepage: 'You're home educating. We make sure it's working.' beside a drawn weekly plan page with a note from the Director.
Desktop
Learn Academy homepage on a phone.
390px

Case detail

Who sees what

Row-level security in Postgres decides access, not the page code. A parent sees only their own family’s children, plans, evidence and messages. The Director sees everything through the console. Library worksheets are served through short-lived signed URLs after the same access check.

The parent portal

  • This week. The current instalment of the child’s plan, attached worksheets included.
  • Evidence log. The parent records what was done, with photos.
  • Messages with the Director between reviews.
  • The record. It prints, or downloads as a zip (HTML, JSON and photos), because the record belongs to the family.

The Director console

Enquiries are converted into families. Each child gets a baseline, a programme, weekly plans built in a composer, evidence review and periodic reviews. A worksheet library holds the sheets that plans attach.

The app

Expo (React Native) for iOS and Android from one TypeScript codebase, on the same Supabase project. Accounts are parent-only. The child’s “Today” view is a hand-over screen inside the parent’s session. Nothing is sold in the app, and in-app account deletion is built in. Release 1 builds and passes its checks on the simulator; it is not yet published.

When the service moved away from its earlier format, the old routes were given direct 301 redirects to their new pages, with no chains. The vocabulary was rewritten across every page to match what the service actually is.

Back to the register