Skip to content
Katabench
Try free
← All docs

Working through Katabench Labs

6 min read

Katabench Labs are guided project exercises. Instead of implementing one puzzle method, you work in a real multi-file .NET project, run it in a temporary browser-controlled workspace, and pass executable checks lesson by lesson.

Labs are released separately from the puzzle catalog. If Labs does not appear in your app navigation, use the public Labs overview for the current availability and course catalog. For the architecture behind the current terminal-first beta, the transactional outbox guide follows the consistency gap from the business commit through relay delivery and recovery.

Understand the hierarchy

The names describe different levels of the experience:

Level Meaning
Course A production topic made of one or more Labs. The beta course is Implement the Transactional Outbox pattern.
Lab One focused project or engineering scenario inside a course.
Lesson One ordered change to make and verify inside that Lab.
Workspace The temporary project environment, editor, files, output, and terminals for your session.
Check The automated proof that the current lesson's requirements hold.

The course catalog shows the number of Labs, lessons, and estimated practice time. Open a course to review its outcomes, Lab sequence, lesson counts, access tier, and your progress before starting.

Start or resume a course

When signed in, a course page shows completed lessons and a Start course, Resume, or Review course action. The dashboard's My labs section also links directly to your next incomplete lesson and lists completed Labs.

Selecting a Lab starts a session and prepares its project. The preparation screen shows the Lab's lesson count, hands-on time, workspace time, and a reminder that the editor autosaves. Stay on it until the workspace reports that it is ready. If preparation fails, use the retry action shown there. When an older Lab session conflicts with the one you are opening, the app offers to resume that workspace or end it and continue.

When every workspace is in use, the screen says so, shows your position in the short queue, and counts down to an automatic retry. No progress is lost while you wait.

Learn the workspace

On desktop, the workspace has the code area on the left and the lesson guide on the right. On smaller screens, switch between Guide and Code & output.

The top bar shows the Lab name, session state, remaining time, full-screen control, a Playground link, and the theme control. The work area can include:

  • a file tree for exploring the project, with a refresh action for files created in a terminal;
  • an editor with a tab for each file you open, and an unsaved marker on the ones you changed;
  • read-only files that provide context but are not intended to change;
  • build and application consoles;
  • up to three interactive terminals for command-driven lessons, any of which can be maximized;
  • an optional application dashboard after the project is running.

Drag the file-tree divider or the divider above the output area to resize them. Double-click a divider to restore its default size. Use full screen when you want the maximum editor and terminal space.

Follow the guide

The guide names the current Lab and lesson position, estimated time, learning objectives, and course progress. Read it from top to bottom before changing the project. It can contain diagrams, callouts, code, commands, expected output, and requests to send to the running app.

Guide actions reduce copying mistakes:

  • Copy places a code or command block on the clipboard.
  • Insert at cursor adds an authored snippet at the current editor position.
  • Run sends a runnable command to the named terminal.
  • When more than one terminal is available, choose the target terminal first, then select Run.

These actions are conveniences, not hidden steps. You can type commands and code yourself whenever that helps you learn.

Save, build, run, and check

Changes are saved to the active Lab session when you Build, Run, or Check. Ctrl/Cmd + S also saves. An Unsaved indicator appears when the current editable file has changes that have not yet been sent to the session.

The exact controls depend on the Lab:

  • Editor-led Labs show Build and Run or Stop in the action bar.
  • Terminal-led Labs put runnable commands in the guide and use interactive terminals below the editor.
  • Check always validates the current lesson's required result.

Check lists every requirement it evaluated. A failed result explains what is still missing. A clean result marks the lesson complete and unlocks Next. You cannot skip forward past an incomplete lesson in the normal learner experience.

Reset or show the solution

Reset replaces the current lesson code with its starter version. Show solution replaces it with the complete lesson solution. Both actions ask for confirmation because they overwrite your current edits, and you can keep editing after either action.

Showing the solution is useful when you have exhausted the guide and feedback. Study the change, then reset and reproduce it without looking. A shown solution does not bypass the Check requirement.

Sessions and time limits

Two different clocks apply to a workspace:

  • The countdown in the top bar is the session's fixed lifetime. It turns amber in the last two minutes and red in the last thirty seconds, and the session closes when it reaches zero. It cannot be extended.
  • The idle timeout closes a workspace that has seen no command or edit for a while. A warning appears first; choose Keep working to extend it while you still need the environment.

Refreshing the browser reconnects to the same workspace. Closing the tab lets the session be reclaimed after a grace period, and leaving the Lab inside the app ends it.

When a session ends, use Reload to prepare a fresh workspace at your next incomplete lesson. Temporary project state belongs to the session, so do not treat the Lab editor as permanent storage for unrelated code. Completed lesson progress is the durable record for signed-in learners.

Finish a Lab and course

Passing the final lesson opens the completion summary. If the course has another Lab, continue directly to it. Otherwise, return to the course catalog or dashboard.

Signed-in lesson completions contribute to your Lab progress and can award XP, gems, streak, achievement, and course progress. Anonymous sessions are useful for previews, but create or use an account when you want completed lessons to follow you across sessions and devices.

Get new puzzles and .NET tips in your inbox

A short note when fresh kata land, plus the C# and performance tricks behind the grading. No spam, unsubscribe anytime.