Academic years, classes, students, guardians, attendance, and timetables - in one self-hosted system. No more spreadsheets. No more paper registers.

Clone the repo, start Postgres, and run the backend and frontend locally in a few commands. The setup guide walks through the rest - first-run admin registration, the school setup wizard, and every module hands-on.
Read the Setup Guidegit clone https://github.com/openschool-org/openschool.git
cd openschool
# Postgres
cd backend && docker compose up -d
# Backend - migrations run automatically
go run ./cmd/api/main.go
# Frontend
cd ../frontend && pnpm install && pnpm dev
From opening an academic year to marking today's attendance, OpenSchool replaces disconnected tools with one consistent, API-driven system that scales with your school.
The school profile and the first-run Setup wizard that gets a fresh instance from empty to operational.
A searchable guardian directory with notification history and portal-login status.
Daily sessions for students and staff, with locking and guardian notifications.
Guided workflows that move the school from one academic year to the next, with preview, apply, and undo.
A config → build → validate → review → publish pipeline, built by hand or auto-generated.
In-app notifications with role-scoped recipient targeting and a per-user Notification Center.


Most schools still track students, grades, and attendance across paper registers and disconnected spreadsheets. OpenSchool gives every school a structured, secure, self-hosted system of record - modeled around the full Grade 1-13 flow, from Scholarship years through O/Level and A/Level streams, and the people who keep a school running.
Learn more about our missionIt's a volunteer-run, open-source project - no sales team, no support inbox. Everything happens on GitHub.
Help shape OpenSchool by submitting features, fixes, or improvements.
Local Development SetupFound a bug or have an idea? Open an issue and help make the platform better.
Open an issueAsk questions, share ideas, and talk with other people running OpenSchool.
GitHub Discussions