Magic link or password
Participants register with email + display name. Magic-link mode via SMTP; password mode for offline events. Each workshop has its own cookie — one browser can hold concurrent sessions.
Workshop Control is a portable platform for running technical training. Lab guide, challenge engine, and a real-time leaderboard — packaged so your team can stand it up on a Tuesday and run a workshop on a Wednesday.
Free Community edition · Hosted + Self-hosted Commercial available
WYSIWYG editor that round-trips cleanly to markdown. Paste images, embed videos, drop in code blocks. Source-mode toggle when you want exact control.
Text match (with regex), multiple choice, and checklist. Hints with point cost, unlock dependencies, decay scoring, first-blood bonus, attempt caps.
Polished projector view designed for the back of the room. 5-second polling, first-blood notches, configurable accent. Drop it on a TV during the session.
Each workshop lives in its own directory — markdown chapters, challenge JSON, images, and a per-workshop SQLite for scoring. Export to a bundle, hand it to a colleague, restore on their box, run it tomorrow.
data/workshops/zero-trust-101/
├── workshop.json # metadata + owner + publish_state
├── workshop.db # per-workshop SQLite (scoring)
├── chapters/
│ ├── 01-intro/
│ │ ├── meta.json
│ │ └── content.md
│ └── 02-network-fundamentals/
│ └── ...
├── challenges/
│ ├── abc-find-the-port.json
│ └── def-tcp-vs-udp.json
└── images/
└── <hash>-<uuid>.pngA small product, not a platform-of-platforms. Every feature exists because the person running the workshop needs it on the day.
Participants register with email + display name. Magic-link mode via SMTP; password mode for offline events. Each workshop has its own cookie — one browser can hold concurrent sessions.
Toggle a workshop into CTF mode with a tile-grid challenge layout. Categories, point values, decay, first-blood bonuses, unlock dependencies.
Multiple authors can run their own workshops on one box without stepping on each other. Per-admin branding, ownership boundaries, public + private templates.
Generate a take-home PDF of any workshop's lab guide. Auto-issue completion or progress certificates to participants based on score threshold.
For internet-exposed instances, a single shared entry code gates every workshop behind a 14-day cookie. Speed bump for casual discovery — per-workshop auth still runs.
Full disaster recovery in one tarball. Hostname-gated restore, auto-restart via systemd. Workshop deletes archive-on-delete for 30-day recovery.
Stand up the platform on a Debian box (or your KVM appliance image). Caddy + Node + SQLite. systemd unit ships in the box.
Write your lab guide in the WYSIWYG editor. Add challenges. Drop in images. Preview as a participant. Save it as a template for future cohorts.
Share the URL with your cohort. Project the leaderboard. Watch the room. Export results when you're done.
Community edition is free forever. Pay only when you want a clean, watermark-free deployment with support.