Schoolstack
Records, classes and attendance for a single school.

Student and staff records, classes, subjects and daily attendance, with a separate static marketing site.
Scope
Schoolstack does one school well instead of trying to be multi-tenant SaaS on day one. Students, staff, classes, subjects and daily attendance: the things a school office opens every morning.
Build notes
It’s Next.js 16 on the App Router with Prisma 7 and MySQL. Auth is Auth.js v5 with credentials sign-in and JWT sessions, which suits a school where an admin creates every account.
The marketing site is its own project in website/. No database, no auth, every page static, and it deploys on its own schedule. A copy change on the homepage can never break attendance.
One unglamorous bit I’m proud of: a script that checks and fixes Prisma’s migration engines on Windows, because WAMP’s MySQL and Prisma didn’t agree out of the box and I got tired of fixing it by hand.
