Ready to forge your skills?
Put these concepts to the test — write Zig from memory.
Knowledge Base
Tips, gotchas, patterns, and deep-dives to build your confidence.
Concept Map
Your learning path — unlock concepts by mastering their prerequisites.
Progress Dashboard
Recent Reviews
Profile Settings
Change your language background and how the app looks.
Appearance
Pick the theme you prefer. The app remembers your choice and follows your system preference if you have not chosen one.
Languages You Know
Updates all bridge comparisons and tips.
Password
Choose a new password. You stay signed in on this device.
- At least 10 characters
- Three of: lowercase, uppercase, number, symbol
- No runs like "aaaa" or "1234"
- Nothing from your name, username, or email
Practice Labs
Build real software from scratch. Write freely. The platform verifies your results.
How CodeForge Works
You learn a language by writing it from memory, not by reading about it. Everything here is built around that one idea.
Where to start
There are five places to spend time here and they do different jobs. If you are new, work down this list in order.
Reading a lesson and then training on the same concept the same day works better than doing either alone. The lesson primes the memory; the recall is what fixes it.
The core loop
Every training session follows five steps. This loop is the entire learning method.
Read the concept and its mental model. Understand why the pattern exists before you write it.
Type the entire solution from memory in a blank editor. No autocomplete. No hints unless you ask for them. Every character is yours.
See the reference solution next to your code. Spot the differences. Work out what you missed and why.
Honestly grade your recall from 0 to 5. This rating is the only thing controlling when you see this challenge again.
The scheduler picks your next review date. Challenges you know get pushed weeks out. Challenges you failed come back within a day or two.
The uncomfortable part is step two, and that is deliberate. Recognising code on a page is not the same skill as producing it on a blank one, and only the second one survives contact with a real project.
Rating scale
After each challenge you rate your own recall. The system takes that number at face value, which is what makes honesty the whole game.
The line that matters most is between 2 and 3. Below it the scheduler treats the attempt as a failure and brings the challenge back quickly. At or above it, the interval grows.
Difficulty levels
Challenges sit at three levels. You start at Atomic and move up as mastery builds.
One concept at a time. Declare a variable. Write a function. Create a struct. The building blocks.
Two concepts working together. A function returning an error. A struct with methods. Pointers modifying data.
Three or more concepts at once. A stack with error-returning methods. A tagged union state machine. A tested data structure.
How the scheduler adapts
The system watches your performance and changes what it shows you.
The Learn course
Train assumes you have seen the concept before. Learn is where you see it.
The Zig course runs to 44 lessons across 15 sections, from installing the compiler through pointers, comptime, testing, the Io interface, networking and concurrency. It targets Zig 0.16 specifically, and every code sample in it is compiled against that version, so nothing you copy out of a lesson will fail to build.
Knowledge Base is a different thing: short reference entries for looking something up mid-task. Learn is sequential and teaches; Knowledge Base is a lookup.
Cross-language bridges
Tell the app which languages you already know, during onboarding or later in Settings. Challenges and lessons then show a comparison written for those languages:
You are not starting from zero in a new language. You are moving what you already know across, and the fastest way to learn the difference is to be shown it directly.
Tools while you train
Open Sparky from the button in the bottom-right corner when you are stuck. It reads your code, compares it with the reference, and tells you what the next line needs to do. Ask for the shape of the line if you need more; the line itself is shown only if you ask, and that costs a hint.
Compile and run what you have written against a real Zig compiler and see the output below the editor. Every run happens inside a locked-down container with no network access, so your code cannot reach anything.
A line-by-line explanation of the reference solution, saying what each line does and why. Most useful after you submit, to close the gaps you just found.
Progressive hints during a challenge, revealed one at a time. Try without them first: the struggle before the hint is where most of the learning happens.
Pause when you need to think, read documentation, or step away. Only active coding time is recorded.
Arena
A live coding race against another user.
Arena rewards speed, which is a different skill from the careful recall Train builds. Treat it as a test of fluency rather than a way to learn something new.
Practice Labs
Longer, project-shaped work: you build something real over several milestones instead of solving one challenge at a time.
This section is closed at the moment while it is being worked on, and the menu item is marked accordingly. Everything else in the app is unaffected.
Getting the most out of it
The Arena
Same challenge. Five minutes. Two editors. The sharper memory wins.Online Warriors
0 onlineNo warriors in the arena yet
Waiting for challengers...