Back to projects
SaaS · School OS // 2026

Nexs — School Operating System

Designing a modern school operating system.

Next.js 16PostgreSQLRBACClaude Code
ClientNexs / SMKIT Ushuluddin
RoleFullstack Product Engineer
Timeline2026 — Present
Live LinkVisit Site

Context & Concrete Constraints

SMKIT Ushuluddin ran attendance, discipline records, payroll, and scheduling as separate manual processes before Nexs, mostly paper and spreadsheets, with no single system tying them together. Every semester, student and teacher data also arrived as a raw Excel export from Dapodik, the national education database, and someone had to check it against the class schedule by hand. I built this alone, design and development both, on a budget that couldn't support a dedicated server team. The hosting spec reflects that. The whole system was designed to run on a single VPS with 1 GB of RAM.

Key Engineering & Design Decisions

02.1

Attendance had to survive someone gaming their GPS

Staff and students check in through geofencing tied to the school gate radius. Mock location apps are one tap away on any Android phone, so the check-in flow also screens for spoofed coordinates instead of trusting whatever the device reports.

02.2

Every action checks permission before it runs, not after

Admins, teachers, and students share the same platform, which means one unguarded server action is a data leak waiting to happen. Every server action and API route runs through a permission check first, and the login layer sits behind a rate limiter to block brute force attempts.

02.3

The yearly data import stopped being a manual re-typing job

Dapodik exports arrive as raw Excel files with formatting that varies by year and by whoever prepared it. The import pipeline validates the schema before anything touches the database, and batches the writes so a few thousand student records don't turn into a few thousand individual queries.

02.4

Deployment stayed boring, on purpose

This runs behind a Cloudflare tunnel instead of a manually configured reverse proxy. No certbot renewals, no SSL configuration to babysit. For a system one person maintains alongside actually running the school, boring infrastructure isn't a compromise. It's what makes the maintenance possible at all.

Architecture & Portal Highlights

The dashboard splits into a staff side (academic records, finance, discipline review) and a separate portal for parents and students, so a parent checking attendance never sees an interface built for administrators. The system also runs a Gemini-based assistant that helps staff pull answers directly out of the data, instead of a new report screen getting built every time someone has a new question.

Operational Impact

Six weeks after starting, Nexs was live for its first pilot: 62 students, 62 parents, and 15 teachers running attendance, discipline tracking, payroll, and scheduling through one system instead of several separate processes. Sixty-two families is a small number next to a SaaS metrics slide, and that's fine. It's every student in the pilot cohort, and every one of them switched over in six weeks.

Honest Retrospective & Next Bottleneck

The hosting spec is deliberately tight, one vCPU and 1 GB of RAM at minimum, because this was built for one school, not as multi-tenant software. That was the right call for this project. It also means if a second school wants this system, it needs its own deployment rather than a shared account, and that's a real limitation I'd need to solve before this becomes something other schools use directly.

MUHAMMADKUKUH
Muhammad Kukuh Avatar

Got a product that needs to ship, not just look good?

Let's talk
Reach out
© 2026 - madebykukuh, All rights reserved.Privacy Policy