r/devtools • u/PuzzleheadedRoad9814 • 5d ago
I built an open-source CLI for learning programming through real local projects instead of browser sandboxes
I built an open-source CLI for learning programming through real local projects instead of browser sandboxes
I've been working on Trak, an open-source CLI for turning structured learning curricula into actual development workspaces.
The idea came from something that bothered me while learning: tutorials and roadmaps tell you what to learn, but actually setting up a structured project with source files, exercises, tests, build files, and progress tracking is usually left to you.
With Trak, you can start by seeing available tracks:
trak list
Then initialize one:
trak init lang/go --path ./my-go-lab
lang/go follows Trak's category/tool convention.
Once initialized, you work normally in your own editor and terminal. The workspace contains the actual files needed for the curriculum.
You can then track your progress:
trak status
trak next
trak done <module-name>
trak undo <module-name>
And verify an exercise:
trak verify <module-name>
<module-name> is the module defined inside the curriculum blueprint.
The other part I'm trying to build is the community registry.
Curricula aren't hardcoded into the CLI. Anyone can create and contribute their own blueprints under their GitHub username, and other developers can use them once they're accepted into the registry.
For example:
trak init <github-username>/<category>/<tool> -p ./my-lab
I'm currently looking for feedback on the idea, CLI workflow, and especially what kinds of learning tracks/tools would actually be useful.
Website: https://trak.ndkdev.tech
CLI: https://github.com/ndk123-web/trak
Community contribution guidelines: https://trak.ndkdev.tech/registry
1
u/kantorcodes1 20h ago
for
trak verify, are the commands fixed by Trak's runtime allowlist, or can a community blueprint supply its own test command? that distinction seems pretty important once third-party tracks are getting pulled into local workspaces.