Worky Demo
The demo workshop is included in the worky repository under demo/. It’s the fastest way to see worky in action.
Run it now
No Hugo, no extra tools — just Go:
git clone https://github.com/davideimola/worky
cd worky/demo
go mod tidy
go run . serve --openThe workshop server starts on http://localhost:8080 and opens in your browser.
Chapters
Chapter 00 — Getting Started
Verifies your environment is ready.
Checks:
done.txtexists in the current directoryWORKSHOP_USERenvironment variable is set
touch done.txt
export WORKSHOP_USER=yourname
go run . checkChapter 01 — Hello Worky
A simple file creation and content check.
Checks:
hello.txtexistshello.txtcontains the text"Hello, Worky!"
echo "Hello, Worky!" > hello.txt
go run . checkChapter 02 — Finishing Up
The final chapter.
Checks:
complete.mdexistscomplete.mdcontains"# Workshop Complete"
echo "# Workshop Complete" > complete.md
go run . checkWhat you’ll see
As each check passes, the sidebar icons in your browser update live — no refresh needed. The status command shows your overall progress:
go run . status
✅ Chapter 00: Getting Started
✅ Chapter 01: Hello Worky
🔓 Chapter 02: Finishing UpWhen all chapters are complete, a banner appears in the browser.
Reset and replay
go run . reset
go run . status
🔓 Chapter 00: Getting Started
🔒 Chapter 01: Hello Worky
🔒 Chapter 02: Finishing UpSource code
The demo main.go shows a minimal but complete worky setup using the checks sub-package:
worky.New(worky.Config{
Name: "Worky Demo",
HomeDir: ".worky-demo",
Port: 8080,
SiteFS: site,
Chapters: []worky.Chapter{
{
ID: "00",
Name: "Getting Started",
Slug: "00-getting-started",
Checks: []worky.Check{
{
Description: "done.txt exists in current directory",
Run: checks.FileExists("done.txt"),
},
{
Description: "WORKSHOP_USER environment variable is set",
Run: checks.EnvVarSet("WORKSHOP_USER"),
},
},
},
// ...
},
}).Run()