← All work

Shikshara

A school runs on one system instead of eleven spreadsheets — built for how Nepali schools actually work.

LaravelMulti-tenancyMySQLSaaS
Shikshara
One codebase Every school on its own subdomain
B.S. dates Bikram Sambat throughout, not bolted on
CDC 2083 Continuous assessment to the national curriculum
Sole author Schema to deployment

Nepali schools are running on paper registers and a hundred separate Excel files. The international products cost more than a school's monthly fee income and assume a Gregorian calendar, an English-medium office and a curriculum nobody here teaches. Shikshara is the answer to that specific problem.

One codebase, every school

Shikshara is multi-tenant on a single database. Every school gets its own subdomain and sees only its own data, but they all run the same deployment — which is the only way the price can come down far enough for a school in Gorkha to say yes.

That decision drives everything else. Every tenant-scoped model carries a global scope so a query can't accidentally cross schools, and there's a dedicated isolation test suite whose only job is to try to break that boundary. It has caught real leaks — an API token that resolved across tenants, models that were missing their scope entirely.

What a school actually does with it

Admissions and student records; daily attendance; fee structures, invoicing and receipts; exams, marks entry and result publication; timetables for both a fixed class schedule and a smart generated one; a library module; hostel; payroll. Parents and students get their own logins to see attendance, results and what is owed.

The part I'm most invested in is continuous assessment. Nepal's CDC 2083 curriculum asks teachers to record ongoing indicators rather than only terminal exams, and no local software does it. Shikshara ships the CDC indicator pack and generates the Annex 3 and Annex 4 reports schools are required to file.

Built for here, not translated for here

Bikram Sambat dates run through the whole system rather than being converted at the edges. Fees settle through Khalti for domestic payment alongside Stripe. Report cards follow the formats schools already recognise. A school can be onboarded with a CSV import rather than three weeks of typing.

What it taught me

Most of what I know about production Laravel came out of this: queue workers and failed-job handling, webhook signature verification, feature-gating by subscription plan, permission systems that check capability rather than role, and the discipline of keeping one codebase safe when many organisations share it.

It is not launched. It is being built toward its first school.

Shikshara
Shikshara