Case study

SchoolBridge

A school-communication platform, from blank repository to a live district in Canada.

Sector
EdTech
Platforms
Web · iOS · Android
Market
Canada
Role
Design, build, operate

The problem

Schools run on scattered channels: email, paper notes, Facebook groups, an old portal nobody logs into. Parents miss announcements, teachers repeat themselves, and administrators have no record of what was communicated. The brief was to replace all of it with one platform that a non-technical school could actually adopt.

What we built

A single product with three faces: a web admin dashboard for the school, and parent and student apps on iOS and Android. Real-time chat between parents, teachers and administrators, with group conversations per class or grade. Digital report cards published the moment grades are ready. School calendar, class schedules and exam schedules. Push notifications so an announcement reaches every device instantly.

Architecture

Multi-tenant with an isolated database per school, so one school's data never shares a table with another's. JWT authentication, rate limiting and Cloudflare in front. Firebase for real-time delivery and push. Servers hosted in Canada to keep data residency simple, with DPAs available and an approach aligned to PIPEDA.

Built AI-first

Three client surfaces on top of a multi-tenant backend is a large scope for a small team. Our AI-first workflow made it feasible: AI drafted the repetitive layers (models, API clients, forms, tests) and senior engineers designed the tenancy model, the security and the real-time layer, and reviewed everything before it merged.

Getting it live

Onboarding a new school (tenant setup, data import, configuration, staff training) runs in days, not months. App Store and Play Store submissions are part of the release process, not an afterthought. We run regular security audits on web and mobile.

Where it is now

SchoolBridge is in production with a school district in Canada and is sold as a product with published pricing. Safe Profile Group continues to develop and operate it.

Want the long version?

We can walk you through architecture, trade-offs and what we would do differently.

Build something like this