The platform
6 modules. 2 are always on.
A platform is not a bundle you take whole. Labs and Instances are the
product; the other 4 are yours to switch on, and yours to leave off. A
team that wants machines and nothing else runs machines and nothing else — no
courses, no quizzes, no scoreboard, and none of the memory they cost. Everything
here can be turned on later, from the console, per instance.
Labs
always on
A lab is a real Linux container with its own address on your VPN — not a
browser sandbox. Someone SSHes into it, runs Docker inside it, breaks it,
and gets it back. Templates define what a lab starts as; anyone can fork one.
Who turns it on Every platform has this. It is the thing being sold.
Instances
always on
Your users manage their own machines: start, stop, snapshot, restore, resize,
and reach a serial console when they have locked themselves out. The same
controls your operators have, scoped to what each person owns.
Who turns it on Every platform has this.
Learn
optional
heavy
+embed
Roadmaps and a syllabus: an ordered path through material with progress kept
per person. With an AI key configured it also answers questions against the
material rather than in general.
Who turns it on Colleges and academies running a course someone has to finish in order.
Discuss
optional
heavy
+embed
Threaded discussion attached to the work, AI replies, and a "for you" feed
that ranks by similarity rather than recency.
Who turns it on Cohorts big enough that questions should be answered once, publicly.
Evaluate
optional
heavy
+judge0
Quizzes and a code arena — submissions run against real test cases in an
isolated executor, not marked by hand.
Who turns it on Anywhere a score has to mean the same thing for everyone.
CTF Missions
optional
Missions with flags, clans, and timed events with a live scoreboard.
Who turns it on Security teaching, and internal competitions.
"Heavy" is measured, not a warning label. The full stack is 3,594 MB
against a 4 GB machine; a platform starts six services and the eleven others wait.
Learn and Discuss add an embedding service capped at 3 GB — more than an entire
small plan — and Evaluate adds a code executor with its own database and workers.
The economy
Zeal and Jolt
Two currencies, deliberately. One measures what someone has done and
cannot be spent; the other is spent and does not rank anyone. Collapsing them into
one number is how a leaderboard becomes something you buy.
Zeal
Progress, and the ranking. Earned by finishing quizzes, solving code-arena
problems and capturing flags. It is the number a leaderboard sorts on.
It is never spent. Nothing in the platform takes Zeal away from
someone, which is what lets a rank mean "what you have done" rather than "what you
have done lately, minus what you bought".
Jolt
Utility, and it is spent. Buys hints on a problem and renews a lab that is
about to expire.
Separate from Zeal so that needing a hint costs something real without
costing a rank — and so that a platform can be generous with one and strict with
the other.
Where it comes from
Awards are a transfer from a system account, not a number written onto a
person. Every award and every spend is a row naming both sides.
Which means the ledger balances: what a platform has handed out is a
figure you can total, not an estimate.
Three things about it worth knowing
A balance is computed, never incremented.
Someone's total is the sum of what they received minus what they spent,
derived from the rows every time. There is no running total to drift, so a balance
cannot end up disagreeing with the history that produced it — the failure every
points system has, where the number is right and the log is not.
Re-doing something does not pay twice.
An award is tied to the thing it was for, and that pairing is unique: a
second award for the same quiz replaces the first rather than adding to it. Retaking
a quiz to farm points does not work, and it does not have to be prevented by
blocking the retake.
The awarding account is real.
Points come from a platform account with a balance, which refills when
it runs down. It is deliberate: the alternative is minting from nowhere, and then
"how much has this platform awarded this term" has no answer.
Zeal and Jolt belong to the labs platform running on your instance, not to
us — your platform awards them, sets what they cost, and keeps its own ledger. Nothing
is reported to Selfmade Ninja, and there is no shared leaderboard across platforms.
Pick the modules when you deploy
Every one of these can be switched on later from the console. Starting
small is the cheaper mistake.