Back to work

Case Study · 2026

DojanHub

A multi-role PWA that runs the operations behind a martial arts academy — built and live.

AntigravitySupabasePWARole-based access

Solo product & build

01Problem

Academies like a dojang run on a patchwork of registers, spreadsheets, and memory: who paid their fee, who's due for their next belt test, who showed up this month.

02Context

Three very different users touch the same academy — the admin managing the business, the coach managing the mat, and the student or parent managing progress and payments — and most tools serve only one of them well.

03Discovery

Close familiarity with the training environment surfaced the two things a generic gym-management tool undersells: belt-progression tracking as its own first-class object, and attendance as something coaches need in real time, not in a monthly report.

04Hypothesis

One PWA with real role-based views for Admin, Coach, and Student/Parent would replace the spreadsheet patchwork without asking any one role to learn software built for someone else's job.

05Solution

A Progressive Web App on Antigravity and Supabase with three distinct role experiences, belt-progression tracking, attendance logging, and fee management, wrapped in a dark navy, red, and gold system that reads as martial arts rather than generic SaaS.

06Product Thinking

The design system itself is a product decision: navy and gold read as rank and discipline, which matters when the buyer (a parent) is judging whether this academy feels serious.

07Execution

Built role-by-role rather than screen-by-screen, starting with a detailed Student Profile screen to prove the belt-progression and attendance data model before extending it to Coach and Admin views.

08Outcome

Live and in use — the core data model, Student Profile, Coach, and Admin surfaces are all shipping. The patchwork of registers and spreadsheets has been replaced.

09Learnings

Designing the highest-stakes screen first (the one a parent actually opens) forced the data model to be right early, instead of discovering gaps after three roles were half-built.