dojocho

Effect-TS

Master Effect-TS through 40 hands-on katas, from Effect.succeed to managed runtimes.

The @dojocho/effect-ts dojo is a 40-kata curriculum for Effect-TS. You build up from the smallest unit (Effect.succeed) all the way to layered services, fibers, streams, and a managed runtime — one failing test at a time.

Install

dojo setup
dojo add effect-ts

Then in your agent:

/kata

What you'll learn

The dojo is organised into areas. Each area starts with a skill the sensei loads before the first kata, then walks through the APIs hands-on:

AreaKatasTopics
Foundations001 – 005Effect.succeed, map, generators, flatMap, pipe composition
Errors006 – 008Effect.fail, tagged errors, error channels, recovery patterns
Modelling009 – 010Option, Either, Exit
Services & Layers011 – 013Context.Tag, Layer, testing with mocks
Schema014 – 015Schema.Struct, refinements, domain modelling
Concurrency016 – 020retry, schedules, parallelism, race, Ref, fibers
Resources021 – 023acquireRelease, scoped layers, resource patterns
Streams024 – 027Stream basics, operations, combinators, data pipelines
Observability028logging, spans
HTTP029typed HTTP client
Capstone030end-to-end, all areas combined
Advanced031 – 040config, causes, pattern matching, queues, metrics, managed runtime, request batching

Each kata is a single failing Vitest test. Your sensei reads the test and the SENSEI.md, then asks you targeted questions until you make it green.

Teaching contract

Quoting the dojo's own DOJO.md:

Never give solutions. Your role is Socratic guide.

  • Ask questions that steer toward the answer
  • Point to type signatures or API names
  • Narrow scope: "Focus on the first failing test"
  • Never write or show solution code

That contract is enforced kata-by-kata via per-kata SENSEI.md files, which also flag which APIs belong to you (the student) versus the test harness (runSync, runSyncExit) — a small but important detail Effect-TS beginners often get backwards.

Requirements

  • Node.js 20+
  • A package manager that supports workspaces — pnpm is recommended.
  • The effect runtime is installed as a dependency of the dojo; the test runner is Vitest.

Source

The dojo source lives in the Dojocho monorepo.

On this page