Tenant isolation
Each school is a first-class tenant with its own scoped data and its own administrators, under a group that can be granted a view across them.
Cohort
Cohort runs the connected spine of a school: tenant setup, staff authentication with MFA, scoped custom roles, the admissions pipeline from application through offer and acceptance, conversion of an applicant into a pupil, guardian linking, and the parent portal where a family sees their own child’s record — and nobody else’s.
Built, pre-launch First release complete. Launching in Kenya, built for international expansion.
Multitenant
school groups with per-school data isolation
MFAenforced
on every staff account, with custom scoped roles
PG 16+
PostgreSQL with database-level role separation
Specfirst
architecture, data model and security posture documented up front
01 / The problem
Schools do not lack systems. They lack systems that agree with each other. Admissions lives in one place, the register in another, fees in a third, and the parent gets a login to none of them.
The moment a school becomes a group, it gets worse: head office wants a view across every campus, each campus needs its own data kept separate, and most products answer that with a shared database and a hopeful filter.
Cohort starts from the boundary. Tenancy, role scoping and access control are the first thing modelled, not the thing retrofitted after the first data-protection incident.
02 / In operation
The shape below is true to the real product. The numbers are not — these are illustrative values, never customer data.
Illustrative interface with sample data — no pupil information is shown.
03 / Capabilities
8 capability areas, each built because the operation breaks without it.
Each school is a first-class tenant with its own scoped data and its own administrators, under a group that can be granted a view across them.
Multi-factor authentication on staff accounts as standard, with session control and login-attempt monitoring.
Roles are defined per tenant rather than chosen from a fixed list, so a school’s actual job titles map to actual permissions.
Staff-created applications move through review, offer and acceptance with every decision recorded and attributed.
Accepted applicants convert into pupil records without re-keying, carrying their documents and history with them.
Guardians are linked to pupils with explicit relationships and permissions — which is what makes safe parent access possible at all.
A parent signs in and sees their own child’s record. The access model makes seeing anything else structurally impossible, not merely unlikely.
A written security posture states exactly what is implemented and what is not — the discipline that makes an audit survivable.
04 / Surface area
Breadth is only an asset when the parts share a data model. Every module here reads and writes the same records — there is no export step between them.
05 / Architecture
A Laravel API on PHP 8.3 organised as a modular monolith with background workers, a React and TypeScript portal, and PostgreSQL 16 with database-level role and privilege separation — so an application bug cannot become a whole-database compromise.
06 / Integrations
Third parties are first-class parts of the architecture, isolated behind stable internal contracts so any one of them can be replaced without touching the core.
Multi-factor authenticator apps and recovery flows for staff accounts.
Email and SMS to guardians on admissions and account events.
Secure storage for application evidence, certificates and pupil records.
Education
We can walk you through the live platform, talk about how it maps onto how you work today, and be honest about where it does not fit.