61 lessons · 25 chapters · Free and in your browser
Learn Effect,
one passing test
at a time.
Effect, Step by Step is a 61-lesson course in your browser.
Each lesson is a failing test in a real Monaco editor.
Write the implementation until the test passes, then move on. Hover types
come from the published effect package, so the editor shows
the same signatures as your IDE.
How the course works.
- 01
Lessons are tests
Each lesson opens with a failing test and a starting file. Write the implementation until the test passes. The test states what to build.
- 02
Real types from the published package
The editor is Monaco, configured with the typings from the published effect package. Hovering a function shows the same signature your IDE would.
Effect<A, E, R> - 03
Lessons are self-contained
Each lesson is independent. Jump to lesson 46 on Layer.scoped without reading the previous 45.
- 04
Covers the production primitives
Streams, fibers, scope, Semaphore, PubSub, TestClock, Cause, sandbox. The primitives most tutorials skip.
From Effect.succeed to
PubSub, ManagedRuntime, and Cause.sandbox.
- 016 lessons
Foundations
Why Effect Result Types & Errors Effect Basics
- 028 lessons
Working with Effects
Generators Error Handling Composition Running Effects
- 036 lessons
Modeling Data & Errors
Tagged Data Pattern Matching Schema
- 047 lessons
Services & Dependency Injection
Context & Layers Service Patterns Config & Tracing
- 053 lessons
Testing
Testing with Effect
- 064 lessons
Resilience & Streams
Resilience Streams
- 0713 lessons
Concurrency & State
Fibers & Concurrency Mutable State Coordination Resources
- 081 lessons
Errors at Depth
Cause & Sandbox
- 093 lessons
Real-World Capstones
Case Studies
- 1010 lessons
Production
Project Setup Integration Runtime
TypeScript familiarity. Nothing else.
Lessons run from 90 seconds to 30 minutes. Start at lesson 1, or jump to any topic and stop after any lesson.
Primitives, not a finished app.
The course covers Effect, Layer,
Schema, Stream, and the concurrency
model. Use them to build your own apps.