ToolFor Martial arts / dance school

Obi

Know who's ready before grading day.

Obi keeps your student roster, belt syllabus and class attendance together and shows which students have earned their next grading.

Download the source

Zip, 215 KB. MIT licence. Built 21 Oct 2026.

Live preview

Loading the live site…

This is the real site, not a mock-up. Click around; the button on it opens the working app.

What you get

Everything a tool needs, already done.

Pages and screens

  • Landing page
  • Roster
  • Syllabus checklist
  • Class register
  • Grading readiness
  • Certificates

Features

  • Roster with each student's current belt
  • Tick off required techniques per level
  • Record class attendance toward eligibility
  • Flags who is ready for the next grading
  • Prints certificates and progress sheets
  • Light and dark themes

Palette

  • #b23a2b
  • #972f22
  • #ffffff
  • #1f1b16
  • #ebe5d8
  • #e1dacc

Style

  • Warm
  • Elegant
  • Editorial
Obi on a phone
On a phone, as shipped.

For developers

A real codebase, not a page builder export.

Stack

Vite, React 19 and TypeScript for the app. The launch page is plain HTML, CSS and a little JavaScript with no build step. Vitest for unit tests, Playwright for browser tests.

Run it

unzip obi.zip
cd obi
npm install
npm run dev

In the zip

  • site/ the launch page with the built app in site/app/
  • src/ and e2e/ the app source and tests
  • docs/technical-docs/ architecture, runbook, quick reference
  • START-HERE.md and LICENSE (MIT)

More like this

Also on the shelf

  • Education & CommunityTool

    Copybook

    Plan each student's sessions by topic, record what you covered and the homework set, then print a one-page progress note for parents.

  • Education & CommunityTool

    Minim

    Lets music school students log weekly practice minutes for teachers to see, and plans recital running orders with start times worked out from piece lengths.

  • Education & CommunityTool

    Many Hands

    Many Hands fills your monthly volunteer rota for services or langar shifts, spreading jobs evenly, respecting away dates and flagging gaps and double bookings.