Runcible School

One platform · one folder per school

Write down what the credential takes. Get the whole school.

Runcible School reads a credential's requirements and builds the school around them: a class for every topic, a studio where instructors record those classes, the courses students take, the hours they log, their transcript, and a live answer to "how close am I?"

Same code, three schools

How it works

The credential is the contract. Everything else reads it.

Most schools keep their requirements in a handbook, their classes in a learning platform, their hours in a spreadsheet and their certificates in a folder. Here they are one record, driven by one document.

  1. Step 1

    Describe the credential

    Categories, requirements, hour minimums and maximums, and the rules between them: live-hour minimums, prerequisite gates, minimum durations, supervision ratios.

    // credentials/trauma-informed-therapist.json
    { "id": "req-tit-nb",
      "name": "Neurobiology of Trauma",
      "type": "coursework",
      "hours": { "min": 3, "max": 15 },
      "tags": ["area:NB"] }
    { "type": "synchronous_minimum",
      "category": "cat-tit-skills",
      "minimum_hours": "20" }
  2. Step 2

    Generate the track

    The track generator makes a placeholder class for every taught requirement, with a starter outline, and shows which are drafting, published or logged elsewhere.

  3. Step 3

    Fill the classes

    Invite an instructor by email. They record in the browser studio, slide by slide with a prompter, or build the class from blocks: quizzes, reflections, discussions, assignments, live sessions.

  4. Step 4

    Everyone sees where they stand

    Students take classes and log outside hours; the same schema evaluates them. Dashboards, transcripts and certificates all agree because they read the same file.

Walkthroughs

Three schools, step by step

Every screenshot is the running platform on demo data. Pick a school, then step through with the list, the buttons, or your arrow keys. Click any screenshot to see it full size.

Everything in the box

What a school gets on day one

Grouped the way a school thinks about it. Each line is marked with where it stands today, so nothing here is a promise dressed up as a feature.

Live working in the demo schools Built, off pages exist; switched on in the next release Next designed, not built yet

Credential engine 8 rules

A school's qualification, written as data and checked by the engine.

  • Categories with minimum hours; requirements with min/max hours and a unit (contact, clinical, supervised hours or calendar months)Live
  • Seven requirement types: coursework, supervision, practicum, self-study, examination, experience, documentationLive
  • Eight rule types: synchronous minimum, prerequisite gate, minimum duration, supervision ratio, concurrency limit, subdivision minimum, supervision-type split, window containmentLive
  • Milestones ("Core Knowledge Complete", "Ready to Renew") built from categories and rulesLive
  • Several credentials per school, each a separate path a student choosesLive
  • One clock hour counts once, however many requirements it could touchLive

Tracks

The credential turned into classes to teach.

  • Generate a placeholder class for every taught requirement, with a preview before anything is createdLive
  • Seeded starter outline from a class templateLive
  • Status derived, never stored: drafting, published, logged elsewhereLive
  • Invite an instructor per placeholder; the track shows who holds itLive
  • Pick any student: met or not, requirement by requirementLive

Hours and records

  • Dashboard per student: hours credited, readiness, what's missing, category cardsLive
  • Log Hours with category, area, live or self-paced, certificate and supporting filesLive
  • Log several sessions at once; bulk upload certificatesLive
  • Training-over-time chart with the minimum period markedLive
  • Area rings: each area's slice sized by hours, a star as each minimum is met, click for the entriesLive
  • Transcript grouped by the credential's own categories, downloadable as PDFLive
  • Supervisor portal: supervisors confirm hours from a preview linkBuilt, off

Courses

  • Catalog, enrolment, My Courses, course page with syllabus PDF and "counts toward" areasLive
  • Lessons gate each other: a reflection or discussion post unlocks the next stepLive
  • Quizzes with pass mark and attempts; answers stay on the server until gradingLive
  • Cohort discussions: post, reply, required replies, staff moderationLive
  • Assignments with rubrics and staff gradingLive
  • Certificate in the student's name from the school's own template; completed classes land on the transcriptLive
  • Course evaluations with ratings and "would you recommend?"Live
  • Staff class view: roster, moderation, grading. Lecturer dashboard with their courses and studentsLive
  • Paid classes through the school's own Stripe accountNext

Authoring 11 blocks

Classes are documents made of blocks; each block becomes a lesson.

  • Section, slide, video, embedded video, resources, quiz, reflection, assignment, discussion group, live session, labLive
  • Templates: 45-minute class, 3 × 15-minute series, cohort courseLive
  • Every block validated as you type ("7 of 7 blocks ready")Live
  • Apply to course with a preview; re-applying edits lessons in place so student work stays attachedLive

Instructor studio

Opens from an emailed link. Nothing to install.

  • Record screen, a region of the screen, or camera; title cards, uploads, splits and trimsLive
  • A lesson's clips play back as one video with one timeline, never re-encodedLive
  • Slides + prompter: load a PDF deck (and the .pptx, whose speaker notes become scripts), record one take per slide, camera bubble optionalLive
  • Voiced copies: the same deck narrated in a chosen voice, with a photo in the bubbleLive
  • Import a reviewed script pack; recover takes that uploaded but never reached the timelineLive
  • Admin side: invite, nudge, prune, publish to coursesLive

Subjects

For schools that produce something that isn't a person: a guide dog school's dogs.

  • Litters (cohorts) and subjects, each on its own credential track with age-based due datesLive
  • Health checks, tests with pass, fail, score and retest; stage derived from the recordLive
  • Handlers in roles the school names (raiser, trainer, sitter), assigned only when their own track says they're readyLive
  • A handler's logged hours about the dog count as the dog's evidenceLive
  • Outcomes kept as decisions: career change, breeder, retiredLive

Running the school

  • Users and roles (admin, lecturer, student), comped access, progress at a glanceLive
  • Usage map: who was active on which dayLive
  • LMS manager: courses, enrolments, lecturers, series, evaluationsLive
  • Mail snap-in: connect the school's own Resend account, sending domain and DNS set up from the page, key sealedLive
  • In-app bug reports with screenshotsLive
  • Help pages per school, the student guide written from its own words and credentialsLive
  • Support ticketsBuilt, off

Your brand

  • Name, words for every role and unit, landing page and catalogLive
  • Seven colours derive 38 theme variables, light and dark, plus fonts, corner radius and densityLive
  • Dashboard views ordered or dropped per roleLive
  • Certificate template and outgoing mail branded per schoolLive

The admin side, at a glance

Click any one to look closer.

UsersRoles, access and progress in one table
Usage mapWho was active, day by day
Mail snap-inThe school's own sender, set up from the page
LMS managerCourses, enrolments, lecturers, evaluations
LessonsEach block of the class, as a lesson
Lecturer dashboardA presenter's courses and students
CatalogBrowse and enrol, hours on every class
Help pagesA guide in the school's own words

Make it yours

A new school is a folder, not a fork

One codebase is deployed once per school. What makes Harborlight a therapist CE school and Guide Dog School a guide dog school is a folder of plain files. Tests check every folder before anything ships.

The whole school, in one place

Add a credential file and the tracks, dashboards, categories and transcript follow. Change it and the track regenerates.

school/harborlight/
├── school.json            # name, words, modules, theme
├── credentials/
│   ├── trauma-informed-therapist.json
│   └── license-renewal.json
├── help/                  # optional: your own guides
└── certificate-assets/    # optional: logo, signature

Every word is the school's

Roles and units come from the folder, and the interface uses them everywhere, help pages included.

WordHarborlightGuide Dog SchoolCopperline
studentcliniciantraineeofficer
supervisorsupervisormentorshift lead
instructorpresenterinstructorinstructor
hourclock hourhourtraining hour
course_hourCE hourcontact hourtraining hour

Seven colours, a whole theme

Each school names seven seed colours; the platform derives the 38 variables of the light and dark themes, and the studio follows.

Modules switch on per school

A school without dogs has no dogs pages. A school with payments off never asks anyone to pay.

ModuleHarborlightGuide Dog SchoolCopperline
paymentsonoffon
certificatesononon
authoringononon
studioononon
subjectsoffonoff

Built to be extended

  • A new kind of class block is one entry in the block list plus a sample config; a conformance test fails until both exist, and the editor, validation, publishing and student view pick it up.
  • A new dashboard view is one definition with a schema; schools then place it per role in their own config.
  • A new look is a skin: the controls contract names every job a control does, and each skin implements it. Pages never name a colour, only a state ("done", "due", "failed").
  • Something other than people on a track is the subjects module: a dog today; a horse, an aircraft or a vineyard block tomorrow, each with its own schema and due-by-age requirements.
  • A new school in production is one script: it creates the school's database, applies the schema, names its first admins, then makes its site, file bucket and secrets.

Schools this fits

Ideas, not customers: anywhere a qualification is earned in hours, sign-offs and classes.

Nursing and allied-health CE

Renewal cycles with mandated topics, plus specialty certificates with clinical hours.

credential: renewal + specialty
Yoga teacher training

A 200-hour programme split into techniques, anatomy, philosophy and practicum, with contact-hour minimums.

rule: synchronous minimum
Trade apprenticeships

Electricians or plumbers logging on-the-job hours under a journeyman, with classroom hours per year.

rule: supervision ratio
Therapy-dog and K9 teams

Handler and dog on parallel tracks: the handler's classes, the dog's evaluations and re-certifications.

module: subjects
Flight instruction

Ground school, dual and solo hours, check rides; the aircraft's own inspection track as a subject.

type: examination
Doulas and birth workers

Workshops, attended births with sign-off, reading list and a final review.

type: documentation
Coaching certification

Coach-specific training, mentor coaching, logged client hours and a performance evaluation.

rule: minimum duration
Volunteer academies

Search and rescue, wildfire crews, festival staff: modules, field shifts and a practical before the first deployment.

rule: prerequisite gate

Coming next

Classes students vouch for, and a place to gather

Two features designed and next in line. The mockups below are concepts drawn in this page, not screenshots.

Concept · next release

+1s and public recommendations

Students who finished a class can +1 it and write a recommendation that shows on the class page and in the public catalog. A prospective student sees which classes their peers stand behind before they buy.

Trauma and the Nervous System
Dr. Ines Marlow, PsyD · 3 CE hours · counts toward Core Knowledge NB
+1 · 48
The window-of-tolerance handout is on my wall now. I use the arousal tracking sheet with every new client.
Sam P., LPC Completed the class
Clear, practical, and the live Q&A was worth the price alone.
Jo N., LMFT Completed the class
Most recommended this month
  1. Trauma and the Nervous System+48
  2. Collaborative Safety Planning+31
  3. Ethics in Trauma Work+27
  4. Telehealth Practice+12
  • Only enrolled students can +1, once per class; recommendations carry a "completed the class" mark.
  • Staff moderate from the class view they already use for discussions.
  • Rankings by month, by area and by credential, so "the best ethics class" means something.
  • Presenters see their +1s and quotes on their lecturer dashboard.

Builds on what's there: course evaluations already ask finishing students for ratings and "would you recommend?". Today that answer is private to staff; this makes it public, with consent.

Concept · next release

Forums, groups, games and rankings

A school-wide forum, plus forums for the groups a school already has: a cohort, a study group, a puppy club, a festival crew. Light games built from the quiz engine keep people coming back between classes.

All of HarborlightMy cohortTrauma study groupPresenters' lounge
How do you pace processing with a client who dissociates?14 repliesSam P. · 2 hours ago
Study group for the case review: Thursdays 7pm PT9 repliesAlex R. · yesterday
Telehealth across state lines: what your board actually says22 repliesJo N. · 3 days ago
Weekly quiz duel
4Alex
round 2 of 3
3Sam
Questions drawn from classes you've both finished.
Cohort leaderboard · November
  1. Alex R.1,240
  2. Jo N.1,115
  3. Sam P.980
Core Knowledge CompleteReady to Renew5-week streak
  • Group forums follow the school's own groups: cohorts, litters, clubs, crews; private to members.
  • Games: quiz duels and weekly challenges drawn from quiz blocks students have already passed.
  • Rankings are opt-in and per group, so nobody is ranked who didn't ask to be.
  • Badges come from the credential: its milestones ("Core Knowledge Complete") become badges with no extra setup.

Builds on what's there: threaded discussion posts with replies and staff moderation already run inside classes; quizzes already grade on the server; milestones already live in every credential.

Under the hood

Small to run, separate per school

It grew out of a CE-hours tracker running in production for a therapist-certification provider, merged with an instructor studio and a block authoring tool. One codebase now; one deployment per school.

Each school is its own island

  • Its own site, its own database and its own file bucket on Cloudflare.
  • Video on Cloudflare Stream; files are always served through the app, never from a public bucket.
  • Mail from the school's own account; payments, when they arrive, to the school's own Stripe account.

Permissions, proven

  • Every request asks one policy whether this person may read or change this row.
  • A test walks every role against every endpoint; an endpoint without its rows there counts as unproven.
  • Course content is never public: enrolment gates everything a student sees.

Tests gate every deploy

1,669 tests in 113 files, all passing on the last run. Every school folder is validated through the engine, and the engine's answers are cross-checked against the original tracker's.

See the tests by area
AreaFilesTests
Tracker and LMS pages, forms and records (inherited)53706
API and permissions5212
Class blocks5170
Views2161
Credential engine8131
School configs, theme, help, brand15115
Studio13101
Tracks423
Video player114
Database and migrations313
Subjects113
Interface contract310
Total1131,669