# Build Effect TS V3

> Use if building TypeScript with Effect-TS v3 — Effect.gen, Layer, Schema, typed errors, Stream.

- Skill: `yigitkonur/build-effect-ts-v3` (Agent Skill, multi-file: 322 files)
- Install (CLI): `npx skillmds@latest add yigitkonur/build-effect-ts-v3`
- Raw SKILL.md: https://api.skillmd.com/api/skills/yigitkonur/build-effect-ts-v3/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: yigitkonur (https://skillmd.com/u/yigitkonur)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/yigitkonur/build-effect-ts-v3

---


# Build Effect-TS v3

Build production-grade TypeScript applications with Effect-TS v3. `Effect<A, E, R>` is a lazy, typed, immutable description of work; services and layers carry dependencies; `Schema` validates boundaries; fibers run structured concurrency; `Stream` carries pull-based async data. Ecosystem: `@effect/platform`, `@effect/sql` (+ 11 driver packages), `@effect/rpc`, `@effect/cli`, `@effect/vitest`, `@effect/opentelemetry`, plus `@effect-atom/atom-react` for React.

For the structured index of every reference file, read [references/00-reference-map.md](references/00-reference-map.md).

## When to use

- *Building, refactoring, debugging, or testing Effect-TS v3 code (`effect@3.x`)*
- *Implementing typed tagged errors, services and layers, fibers, streams, caching, scheduling, observability with the `effect` package*
- *Working with `import { Effect, Layer, Schema, Stream } from "effect"`, `Effect.gen(function*() { yield* … })`, `class X extends Effect.Service<X>()(...)`, `class E extends Schema.TaggedError<E>("Tag")(...)`, `Layer.provideMerge`, `Effect.fn("Service.method")`*
- *Building HTTP servers/clients with `@effect/platform`, CLIs with `@effect/cli`, RPC with `@effect/rpc`, SQL with `@effect/sql`, tests with `@effect/vitest`, OTel with `@effect/opentelemetry`*
- *Building React frontends with `@effect-atom/atom-react`*
- *Migrating Promise / `fp-ts` / `neverthrow` / RxJS code to Effect, or operating in gradual-adoption / portable-utility mode*

Do NOT use this skill for:

- *Effect-TS v4 / v4 beta* — strictly v3 only; v4 syntax (`ServiceMap.Service`, `Schema.TaggedErrorClass`, bare `Effect.catch`, `Effect.forkChild`, `Effect.forkDetach`, `Schema.makeUnsafe`, `Result` module) is forbidden, see [references/anti-patterns/19-v4-syntax-do-not-use.md](references/anti-patterns/19-v4-syntax-do-not-use.md)
- *`fp-ts`, `neverthrow`, or RxJS codebases that do not plan to adopt Effect* — only the migration/ docs apply
- *Plain TypeScript without Effect, or other functional ecosystems (cats, ZIO)*

## Hard Rules (load-bearing — read before coding)

| Rule | Recovery |
|---|---|
| Do not import from `@effect/schema` — deprecated since 3.10. Use `import { Schema } from "effect"` | [references/schema/20-deprecated-effect-schema.md](references/schema/20-deprecated-effect-schema.md) |
| Do not use v4 syntax: `ServiceMap.Service`, `Schema.TaggedErrorClass`, bare `Effect.catch`, `Effect.forkChild`, `Effect.forkDetach`, `Schema.makeUnsafe`, `Result` module | [references/anti-patterns/19-v4-syntax-do-not-use.md](references/anti-patterns/19-v4-syntax-do-not-use.md) |
| Do not `throw` inside `Effect.gen` — it becomes a defect. Use `return yield* new TaggedError({...})` or `Effect.fail(...)` | [references/anti-patterns/03-throw-in-gen.md](references/anti-patterns/03-throw-in-gen.md) |
| Do not write `yield fx` (no `*`) inside `Effect.gen` — yields the Effect object, not its value. Always `yield* fx` | [references/anti-patterns/02-yield-without-star.md](references/anti-patterns/02-yield-without-star.md) |
| Do not call `Effect.runPromise` / `Effect.runSync` inside library, service, or middleware code — only at program edges | [references/anti-patterns/04-runpromise-mid-code.md](references/anti-patterns/04-runpromise-mid-code.md), [references/anti-patterns/12-runsync-in-services.md](references/anti-patterns/12-runsync-in-services.md) |
| Do not call `Effect.all([...])` / `Effect.forEach(...)` / `Stream.mapEffect` without `{ concurrency: N }` on lists > 5 items | [references/anti-patterns/05-unbounded-parallelism.md](references/anti-patterns/05-unbounded-parallelism.md), [references/concurrency/07-bounded-parallelism.md](references/concurrency/07-bounded-parallelism.md) |
| Do not use `try / finally` for cleanup — bypasses interruption. Use `Effect.acquireRelease` or `Effect.ensuring` | [references/anti-patterns/15-manual-cleanup.md](references/anti-patterns/15-manual-cleanup.md) |
| Do not put `null` / `undefined` in domain types — use `Option<T>` | [references/anti-patterns/10-null-undefined-domain.md](references/anti-patterns/10-null-undefined-domain.md) |
| Do not use `console.log` — use `Effect.log` / `logInfo` / `logError` | [references/anti-patterns/08-console-log.md](references/anti-patterns/08-console-log.md) |
| Do not read `process.env` directly — use `Config.string("X")` / `Config.redacted("X")` | [references/anti-patterns/09-process-env.md](references/anti-patterns/09-process-env.md) |
| Do not use `Option.getOrThrow` — use `Option.match` | [references/anti-patterns/11-option-getorthrow.md](references/anti-patterns/11-option-getorthrow.md) |
| Do not use `as never` / `as any` / `as unknown` to silence Effect type errors — find the real cause | [references/anti-patterns/17-type-assertions.md](references/anti-patterns/17-type-assertions.md) |
| Do not catch with `catchAll` when `catchTag` / `catchTags` would preserve narrowing | [references/anti-patterns/06-catchall-vs-catchtag.md](references/anti-patterns/06-catchall-vs-catchtag.md) |
| Do not invent generic error names (`NotFoundError`, `Error`) — use specific tagged errors (`UserNotFoundError`) so `catchTag` dispatches precisely | [references/anti-patterns/07-generic-error-types.md](references/anti-patterns/07-generic-error-types.md) |
| Do not call parameterized layer constructors inline at provide-sites — store layers in module-level constants for memoization | [references/anti-patterns/14-inline-layer-construction.md](references/anti-patterns/14-inline-layer-construction.md) |

For the full anti-pattern catalog, read [references/anti-patterns/01-overview.md](references/anti-patterns/01-overview.md).

## Default Stance (load-bearing)

- **Default to `Effect.Service`** over `Context.Tag` for business services. Use `Context.Tag` for libraries with multiple implementations and for infrastructure with runtime injection (worker bindings, KV).
- **Default to `Schema.TaggedError`** over `Data.TaggedError`. The Schema form is serializable across RPC / HTTP and integrates with `HttpApiSchema.annotations({ status: 404 })`.
- **Default to `import { Schema } from "effect"`**. The `@effect/schema` package is deprecated since 3.10. The migration is import-only.
- **Default to `Effect.fn("Service.method")`** for named functions to gain automatic span tracing and stack traces.
- **Default to `Effect.gen`** for sequential / branching logic; default to `pipe` for linear transformations.
- **Default to `{ concurrency: N }`** on every `Effect.all` / `Effect.forEach` / `Stream.mapEffect` over a list of more than five items.
- **Default to `Layer.provideMerge`** over `Layer.provide` for incremental composition (consumers can also use the merged service). Use `Layer.mergeAll` for flat composition of independent layers.
- **Default to `NodeRuntime.runMain`** for entry points (handles SIGINT / SIGTERM gracefully). Use `ManagedRuntime` for non-Effect framework integration (Hono, Express, Next.js route handlers).
- **Default to `acquireRelease`** for resource lifecycles, never `try / finally` (which bypasses interruption).
- **Default to `return yield*`** when raising tagged errors inside `Effect.gen` so TypeScript narrows the control flow.

## Recovery Moves (symptom → fix)

| Symptom | Cause / fix |
|---|---|
| `Missing 'X' in the expected Effect context` / `Effect<A, E, X> not assignable to Effect<A, E, never>` | confused `Layer.provide` for `Layer.provideMerge` — see [references/services-layers/12-layer-composition-gotchas.md](references/services-layers/12-layer-composition-gotchas.md), [references/anti-patterns/13-layer-provide-confusion.md](references/anti-patterns/13-layer-provide-confusion.md) |
| `Effect.cachedWithTTL is not a function` / unexpected double-yield | API returns `Effect<Effect<A,E,R>>`; you yield twice — see [references/caching/04-effect-cached.md](references/caching/04-effect-cached.md) |
| `SubscriptionRef.unsafeMake is not a function` | never call unsafeMake; use `SubscriptionRef.make(initial)` — see [references/state/04-subscription-ref.md](references/state/04-subscription-ref.md) |
| AI hallucinated an API that doesn't exist | cross-check [references/anti-patterns/18-ai-hallucinations.md](references/anti-patterns/18-ai-hallucinations.md) and [references/anti-patterns/19-v4-syntax-do-not-use.md](references/anti-patterns/19-v4-syntax-do-not-use.md) |
| Effect resolved with `null` unexpectedly | `Effect.promise` swallowed the error as a defect — switch to `Effect.tryPromise({ try, catch })`, see [references/anti-patterns/16-effect-promise-confusion.md](references/anti-patterns/16-effect-promise-confusion.md) |
| Tests pass with mocks but fail in prod | mocks were `vi.mock`. Replace with `Layer.succeed(Service, mockImpl)` — see [references/testing/08-test-layers.md](references/testing/08-test-layers.md) |
| Hanging Stream / never-ending program | infinite stream without `take(N)` / `runHead` — see [references/streams/18-infinite-streams.md](references/streams/18-infinite-streams.md) |
| OOM on large `Effect.all` | unbounded parallelism — add `{ concurrency: 10 }`, see [references/concurrency/07-bounded-parallelism.md](references/concurrency/07-bounded-parallelism.md) |
| Finalizers not running on Ctrl-C | using `try / finally` instead of `acquireRelease`, or `Effect.runPromise` instead of `NodeRuntime.runMain` — see [references/resource-management/03-acquire-release.md](references/resource-management/03-acquire-release.md), [references/platform/12-node-runtime.md](references/platform/12-node-runtime.md) |
| Stale logs / no traces in OTel | forgot `NodeSdk.layer` and `OtlpTracer.layer` — see [references/observability/11-opentelemetry-setup.md](references/observability/11-opentelemetry-setup.md) |
| Header keys returned 404 | header keys must be lowercase in `HttpApiEndpoint.setHeaders` — see [references/http-server/05-headers.md](references/http-server/05-headers.md) |
| `Cannot find module '@effect/schema'` | deprecated package; switch to `import { Schema } from "effect"` — see [references/schema/20-deprecated-effect-schema.md](references/schema/20-deprecated-effect-schema.md) |

## Workflow / Routing

Load only the reference files needed for the current task.

### 1. Core: the Effect type, creation, running, combinators

Read [references/core/01-effect-type.md](references/core/01-effect-type.md), [references/core/02-creating-effects.md](references/core/02-creating-effects.md), [references/core/03-running-effects.md](references/core/03-running-effects.md), [references/core/04-pipelines.md](references/core/04-pipelines.md), [references/core/05-generators.md](references/core/05-generators.md), [references/core/06-gen-vs-pipe.md](references/core/06-gen-vs-pipe.md). For named service methods read [references/core/07-effect-fn.md](references/core/07-effect-fn.md). For combinators read [references/core/08-effect-all.md](references/core/08-effect-all.md), [references/core/09-effect-foreach.md](references/core/09-effect-foreach.md), [references/core/10-zip-and-tap.md](references/core/10-zip-and-tap.md), [references/core/11-short-circuiting.md](references/core/11-short-circuiting.md), [references/core/12-effect-match.md](references/core/12-effect-match.md).

### 2. Errors: typed tagged errors

Read [references/error-handling/01-overview.md](references/error-handling/01-overview.md), [references/error-handling/02-data-tagged-error.md](references/error-handling/02-data-tagged-error.md), [references/error-handling/03-schema-tagged-error.md](references/error-handling/03-schema-tagged-error.md), [references/error-handling/04-catch-tag.md](references/error-handling/04-catch-tag.md), [references/error-handling/05-catch-tags.md](references/error-handling/05-catch-tags.md), [references/error-handling/06-catch-all.md](references/error-handling/06-catch-all.md), [references/error-handling/07-cause-and-exit.md](references/error-handling/07-cause-and-exit.md), [references/error-handling/08-defects.md](references/error-handling/08-defects.md), [references/error-handling/09-recovery-patterns.md](references/error-handling/09-recovery-patterns.md), [references/error-handling/10-error-accumulation.md](references/error-handling/10-error-accumulation.md), [references/error-handling/11-yield-fail-pattern.md](references/error-handling/11-yield-fail-pattern.md), [references/error-handling/12-error-taxonomy.md](references/error-handling/12-error-taxonomy.md), [references/error-handling/13-error-remapping.md](references/error-handling/13-error-remapping.md), [references/error-handling/14-sandboxing.md](references/error-handling/14-sandboxing.md).

### 3. Services and Layers: dependencies

Read [references/services-layers/01-overview.md](references/services-layers/01-overview.md), [references/services-layers/02-context-tag.md](references/services-layers/02-context-tag.md), [references/services-layers/03-effect-service.md](references/services-layers/03-effect-service.md), [references/services-layers/04-context-vs-effect-service.md](references/services-layers/04-context-vs-effect-service.md), [references/services-layers/05-context-reference.md](references/services-layers/05-context-reference.md), [references/services-layers/06-layer-succeed.md](references/services-layers/06-layer-succeed.md), [references/services-layers/07-layer-effect.md](references/services-layers/07-layer-effect.md), [references/services-layers/08-layer-scoped.md](references/services-layers/08-layer-scoped.md), [references/services-layers/09-layer-merge.md](references/services-layers/09-layer-merge.md), [references/services-layers/10-layer-provide.md](references/services-layers/10-layer-provide.md), [references/services-layers/11-layer-providemerge.md](references/services-layers/11-layer-providemerge.md), and the **critical** [references/services-layers/12-layer-composition-gotchas.md](references/services-layers/12-layer-composition-gotchas.md). Runtime: [references/services-layers/13-layer-memoization.md](references/services-layers/13-layer-memoization.md), [references/services-layers/14-managed-runtime.md](references/services-layers/14-managed-runtime.md), [references/services-layers/15-effect-provide.md](references/services-layers/15-effect-provide.md), [references/services-layers/16-layer-tap-debug.md](references/services-layers/16-layer-tap-debug.md), [references/services-layers/17-fresh-vs-memoize.md](references/services-layers/17-fresh-vs-memoize.md).

### 4. Schema: validate boundaries (built into `effect`)

Read [references/schema/01-overview.md](references/schema/01-overview.md), [references/schema/02-schema-struct.md](references/schema/02-schema-struct.md), [references/schema/03-schema-class.md](references/schema/03-schema-class.md), [references/schema/04-schema-tagged-class.md](references/schema/04-schema-tagged-class.md), [references/schema/05-schema-tagged-error.md](references/schema/05-schema-tagged-error.md), [references/schema/06-branded-types.md](references/schema/06-branded-types.md), [references/schema/07-primitives.md](references/schema/07-primitives.md), [references/schema/08-collections.md](references/schema/08-collections.md), [references/schema/09-unions-and-literals.md](references/schema/09-unions-and-literals.md), [references/schema/10-decoding.md](references/schema/10-decoding.md), [references/schema/11-encoding.md](references/schema/11-encoding.md), [references/schema/12-transforms.md](references/schema/12-transforms.md), [references/schema/13-filters.md](references/schema/13-filters.md), [references/schema/14-annotations.md](references/schema/14-annotations.md), [references/schema/15-json-schema.md](references/schema/15-json-schema.md), [references/schema/16-arbitrary.md](references/schema/16-arbitrary.md), [references/schema/17-equivalence-and-order.md](references/schema/17-equivalence-and-order.md), [references/schema/18-recursive-schemas.md](references/schema/18-recursive-schemas.md), [references/schema/19-error-formatter.md](references/schema/19-error-formatter.md), and the migration banner [references/schema/20-deprecated-effect-schema.md](references/schema/20-deprecated-effect-schema.md).

### 5. Data Types: principled values

Read [references/data-types/01-overview.md](references/data-types/01-overview.md), [references/data-types/02-option.md](references/data-types/02-option.md), [references/data-types/03-option-patterns.md](references/data-types/03-option-patterns.md), [references/data-types/04-either.md](references/data-types/04-either.md), [references/data-types/05-data-struct.md](references/data-types/05-data-struct.md), [references/data-types/06-data-tuple-array.md](references/data-types/06-data-tuple-array.md), [references/data-types/07-data-case.md](references/data-types/07-data-case.md), [references/data-types/08-equal-and-hash.md](references/data-types/08-equal-and-hash.md), [references/data-types/09-chunk.md](references/data-types/09-chunk.md), [references/data-types/10-hashset-hashmap.md](references/data-types/10-hashset-hashmap.md), [references/data-types/11-readonly-array.md](references/data-types/11-readonly-array.md), [references/data-types/12-duration.md](references/data-types/12-duration.md), [references/data-types/13-datetime.md](references/data-types/13-datetime.md), [references/data-types/14-bigdecimal.md](references/data-types/14-bigdecimal.md), [references/data-types/15-redacted.md](references/data-types/15-redacted.md), [references/data-types/16-brand.md](references/data-types/16-brand.md), [references/data-types/17-order-and-equivalence.md](references/data-types/17-order-and-equivalence.md), [references/data-types/18-function-utilities.md](references/data-types/18-function-utilities.md).

### 6. Pattern Matching: replace switch / if-chains

Read [references/pattern-matching/01-overview.md](references/pattern-matching/01-overview.md), [references/pattern-matching/02-match-value.md](references/pattern-matching/02-match-value.md), [references/pattern-matching/03-match-type.md](references/pattern-matching/03-match-type.md), [references/pattern-matching/04-match-tag.md](references/pattern-matching/04-match-tag.md), [references/pattern-matching/05-match-when.md](references/pattern-matching/05-match-when.md), [references/pattern-matching/06-not-or-either.md](references/pattern-matching/06-not-or-either.md), [references/pattern-matching/07-exhaustive-vs-orelse.md](references/pattern-matching/07-exhaustive-vs-orelse.md).

### 7. Concurrency: bounded structured concurrency

Read [references/concurrency/01-overview.md](references/concurrency/01-overview.md), [references/concurrency/02-fork-types.md](references/concurrency/02-fork-types.md), [references/concurrency/03-fiber-operations.md](references/concurrency/03-fiber-operations.md), [references/concurrency/04-effect-race.md](references/concurrency/04-effect-race.md), [references/concurrency/05-effect-all-concurrency.md](references/concurrency/05-effect-all-concurrency.md), [references/concurrency/06-effect-foreach-concurrency.md](references/concurrency/06-effect-foreach-concurrency.md), and the **rule** [references/concurrency/07-bounded-parallelism.md](references/concurrency/07-bounded-parallelism.md). Coordination: [references/concurrency/08-semaphore.md](references/concurrency/08-semaphore.md), [references/concurrency/09-deferred.md](references/concurrency/09-deferred.md), [references/concurrency/10-latch.md](references/concurrency/10-latch.md), [references/concurrency/11-interruption.md](references/concurrency/11-interruption.md), [references/concurrency/12-stm.md](references/concurrency/12-stm.md), [references/concurrency/13-effect-timeout.md](references/concurrency/13-effect-timeout.md), [references/concurrency/14-effect-disconnect.md](references/concurrency/14-effect-disconnect.md).

### 8. State

Read [references/state/01-overview.md](references/state/01-overview.md), [references/state/02-ref.md](references/state/02-ref.md), [references/state/03-synchronizedref.md](references/state/03-synchronizedref.md), [references/state/04-subscription-ref.md](references/state/04-subscription-ref.md), [references/state/05-fiber-ref.md](references/state/05-fiber-ref.md), [references/state/06-state-patterns.md](references/state/06-state-patterns.md).

### 9. Resource Management: deterministic lifecycles

Read [references/resource-management/01-overview.md](references/resource-management/01-overview.md), [references/resource-management/02-scope.md](references/resource-management/02-scope.md), [references/resource-management/03-acquire-release.md](references/resource-management/03-acquire-release.md), [references/resource-management/04-acquire-use-release.md](references/resource-management/04-acquire-use-release.md), [references/resource-management/05-effect-scoped.md](references/resource-management/05-effect-scoped.md), [references/resource-management/06-add-finalizer.md](references/resource-management/06-add-finalizer.md), [references/resource-management/07-effect-ensuring.md](references/resource-management/07-effect-ensuring.md), [references/resource-management/08-cleanup-order.md](references/resource-management/08-cleanup-order.md).

### 10. Streams: pull-based async data

Read [references/streams/01-overview.md](references/streams/01-overview.md), [references/streams/02-creating-streams.md](references/streams/02-creating-streams.md), [references/streams/03-stream-from-queue-pubsub.md](references/streams/03-stream-from-queue-pubsub.md), [references/streams/04-stream-from-schedule.md](references/streams/04-stream-from-schedule.md), [references/streams/05-stream-pagination.md](references/streams/05-stream-pagination.md), [references/streams/06-transformations.md](references/streams/06-transformations.md), [references/streams/07-flattening.md](references/streams/07-flattening.md), [references/streams/08-merging-zipping.md](references/streams/08-merging-zipping.md), [references/streams/09-mapEffect-concurrency.md](references/streams/09-mapEffect-concurrency.md), [references/streams/10-stream-consumption.md](references/streams/10-stream-consumption.md), [references/streams/11-sink.md](references/streams/11-sink.md), [references/streams/12-channel.md](references/streams/12-channel.md), [references/streams/13-error-handling.md](references/streams/13-error-handling.md), [references/streams/14-backpressure.md](references/streams/14-backpressure.md), [references/streams/15-batching.md](references/streams/15-batching.md), [references/streams/16-broadcast-and-partition.md](references/streams/16-broadcast-and-partition.md), [references/streams/17-scope-and-stream.md](references/streams/17-scope-and-stream.md), [references/streams/18-infinite-streams.md](references/streams/18-infinite-streams.md).

### 11. Queue / PubSub: fiber coordination

Read [references/queue-pubsub/01-overview.md](references/queue-pubsub/01-overview.md), [references/queue-pubsub/02-bounded-queue.md](references/queue-pubsub/02-bounded-queue.md), [references/queue-pubsub/03-dropping-sliding-queue.md](references/queue-pubsub/03-dropping-sliding-queue.md), [references/queue-pubsub/04-queue-operations.md](references/queue-pubsub/04-queue-operations.md), [references/queue-pubsub/05-pubsub.md](references/queue-pubsub/05-pubsub.md), [references/queue-pubsub/06-producer-consumer.md](references/queue-pubsub/06-producer-consumer.md), [references/queue-pubsub/07-graceful-shutdown.md](references/queue-pubsub/07-graceful-shutdown.md).

### 12. Caching and batching

Read [references/caching/01-overview.md](references/caching/01-overview.md), [references/caching/02-cache-make.md](references/caching/02-cache-make.md), [references/caching/03-cache-operations.md](references/caching/03-cache-operations.md), [references/caching/04-effect-cached.md](references/caching/04-effect-cached.md), [references/caching/05-scoped-cache.md](references/caching/05-scoped-cache.md), [references/caching/06-keyed-pool.md](references/caching/06-keyed-pool.md), [references/caching/07-request-resolver.md](references/caching/07-request-resolver.md).

### 13. Scheduling: retry, repeat, schedules

Read [references/scheduling/01-overview.md](references/scheduling/01-overview.md), [references/scheduling/02-built-in-schedules.md](references/scheduling/02-built-in-schedules.md), [references/scheduling/03-cron-schedule.md](references/scheduling/03-cron-schedule.md), [references/scheduling/04-schedule-composition.md](references/scheduling/04-schedule-composition.md), [references/scheduling/05-jitter-and-modify.md](references/scheduling/05-jitter-and-modify.md), [references/scheduling/06-effect-retry.md](references/scheduling/06-effect-retry.md), [references/scheduling/07-effect-repeat.md](references/scheduling/07-effect-repeat.md), [references/scheduling/08-schedule-conditions.md](references/scheduling/08-schedule-conditions.md), [references/scheduling/09-effect-delay.md](references/scheduling/09-effect-delay.md).

### 14. Config: typed configuration via `Config`

Read [references/config/01-overview.md](references/config/01-overview.md), [references/config/02-basic-config.md](references/config/02-basic-config.md), [references/config/03-config-redacted.md](references/config/03-config-redacted.md), [references/config/04-config-collections.md](references/config/04-config-collections.md), [references/config/05-config-all-nested.md](references/config/05-config-all-nested.md), [references/config/06-config-validation.md](references/config/06-config-validation.md), [references/config/07-config-withDefault.md](references/config/07-config-withDefault.md), [references/config/08-config-providers.md](references/config/08-config-providers.md), [references/config/09-layer-set-config-provider.md](references/config/09-layer-set-config-provider.md).

### 15. Observability: logs, metrics, traces

Read [references/observability/01-overview.md](references/observability/01-overview.md), [references/observability/02-logging-basics.md](references/observability/02-logging-basics.md), [references/observability/03-structured-logs.md](references/observability/03-structured-logs.md), [references/observability/04-log-levels.md](references/observability/04-log-levels.md), [references/observability/05-custom-logger.md](references/observability/05-custom-logger.md), [references/observability/06-tracing-basics.md](references/observability/06-tracing-basics.md), [references/observability/07-span-scoped.md](references/observability/07-span-scoped.md), [references/observability/08-metrics-counter-gauge.md](references/observability/08-metrics-counter-gauge.md), [references/observability/09-metrics-histogram-summary.md](references/observability/09-metrics-histogram-summary.md), [references/observability/10-metric-tagged.md](references/observability/10-metric-tagged.md), [references/observability/11-opentelemetry-setup.md](references/observability/11-opentelemetry-setup.md), [references/observability/12-otlp-exporters.md](references/observability/12-otlp-exporters.md), [references/observability/13-supervisor.md](references/observability/13-supervisor.md).

### 16. Platform: FS, Path, Command, Worker, runtimes

Read [references/platform/01-overview.md](references/platform/01-overview.md), [references/platform/02-filesystem.md](references/platform/02-filesystem.md), [references/platform/03-path.md](references/platform/03-path.md), [references/platform/04-url.md](references/platform/04-url.md), [references/platform/05-command.md](references/platform/05-command.md), [references/platform/06-terminal.md](references/platform/06-terminal.md), [references/platform/07-keyvaluestore.md](references/platform/07-keyvaluestore.md), [references/platform/08-ndjson.md](references/platform/08-ndjson.md), [references/platform/09-worker.md](references/platform/09-worker.md), [references/platform/10-stream-sink-platform.md](references/platform/10-stream-sink-platform.md), [references/platform/11-node-context.md](references/platform/11-node-context.md), [references/platform/12-node-runtime.md](references/platform/12-node-runtime.md), [references/platform/13-bun-platform.md](references/platform/13-bun-platform.md).

### 17. HTTP Server: HttpApi

Read [references/http-server/01-overview.md](references/http-server/01-overview.md), [references/http-server/02-defining-endpoints.md](references/http-server/02-defining-endpoints.md), [references/http-server/03-path-params.md](references/http-server/03-path-params.md), [references/http-server/04-query-and-payload.md](references/http-server/04-query-and-payload.md), [references/http-server/05-headers.md](references/http-server/05-headers.md), [references/http-server/06-grouping.md](references/http-server/06-grouping.md), [references/http-server/07-handlers.md](references/http-server/07-handlers.md), [references/http-server/08-error-responses.md](references/http-server/08-error-responses.md), [references/http-server/09-middleware.md](references/http-server/09-middleware.md), [references/http-server/10-cors-and-logger.md](references/http-server/10-cors-and-logger.md), [references/http-server/11-swagger.md](references/http-server/11-swagger.md), [references/http-server/12-multipart.md](references/http-server/12-multipart.md), [references/http-server/13-streaming-responses.md](references/http-server/13-streaming-responses.md), [references/http-server/14-custom-encoding.md](references/http-server/14-custom-encoding.md), [references/http-server/15-serving.md](references/http-server/15-serving.md), [references/http-server/16-platform-router.md](references/http-server/16-platform-router.md), [references/http-server/17-shutdown-and-signals.md](references/http-server/17-shutdown-and-signals.md).

### 18. HTTP Client

Read [references/http-client/01-overview.md](references/http-client/01-overview.md), [references/http-client/02-fetch-http-client.md](references/http-client/02-fetch-http-client.md), [references/http-client/03-request-building.md](references/http-client/03-request-building.md), [references/http-client/04-response-decoding.md](references/http-client/04-response-decoding.md), [references/http-client/05-derived-client.md](references/http-client/05-derived-client.md), [references/http-client/06-retries-and-timeouts.md](references/http-client/06-retries-and-timeouts.md), [references/http-client/07-request-tracing.md](references/http-client/07-request-tracing.md), [references/http-client/08-error-handling.md](references/http-client/08-error-handling.md).

### 19. Testing with `@effect/vitest`

Read [references/testing/01-overview.md](references/testing/01-overview.md), [references/testing/02-it-effect.md](references/testing/02-it-effect.md), [references/testing/03-it-live.md](references/testing/03-it-live.md), [references/testing/04-it-scoped.md](references/testing/04-it-scoped.md), [references/testing/05-it-layer.md](references/testing/05-it-layer.md), [references/testing/06-test-clock.md](references/testing/06-test-clock.md), [references/testing/07-test-random.md](references/testing/07-test-random.md), [references/testing/08-test-layers.md](references/testing/08-test-layers.md), [references/testing/09-stateful-test-layers.md](references/testing/09-stateful-test-layers.md), [references/testing/10-spy-layers.md](references/testing/10-spy-layers.md), [references/testing/11-testing-errors.md](references/testing/11-testing-errors.md), [references/testing/12-testing-resources.md](references/testing/12-testing-resources.md), [references/testing/13-testing-concurrency.md](references/testing/13-testing-concurrency.md), [references/testing/14-property-testing.md](references/testing/14-property-testing.md).

### 20. SQL with `@effect/sql`

Read [references/sql/01-overview.md](references/sql/01-overview.md), [references/sql/02-sql-client.md](references/sql/02-sql-client.md), [references/sql/03-tagged-templates.md](references/sql/03-tagged-templates.md), [references/sql/04-transactions.md](references/sql/04-transactions.md), [references/sql/05-sql-streams.md](references/sql/05-sql-streams.md), [references/sql/06-sql-resolver.md](references/sql/06-sql-resolver.md), [references/sql/07-sql-schema.md](references/sql/07-sql-schema.md), [references/sql/08-sql-migrations.md](references/sql/08-sql-migrations.md), [references/sql/09-driver-postgres.md](references/sql/09-driver-postgres.md), [references/sql/10-driver-mysql.md](references/sql/10-driver-mysql.md), [references/sql/11-driver-sqlite.md](references/sql/11-driver-sqlite.md), [references/sql/12-driver-other.md](references/sql/12-driver-other.md), [references/sql/13-orm-adapters.md](references/sql/13-orm-adapters.md).

### 21. RPC

Read [references/rpc/01-overview.md](references/rpc/01-overview.md), [references/rpc/02-rpc-group.md](references/rpc/02-rpc-group.md), [references/rpc/03-rpc-server.md](references/rpc/03-rpc-server.md), [references/rpc/04-rpc-client.md](references/rpc/04-rpc-client.md), [references/rpc/05-rpc-middleware.md](references/rpc/05-rpc-middleware.md), [references/rpc/06-rpc-streaming.md](references/rpc/06-rpc-streaming.md), [references/rpc/07-rpc-cluster-intro.md](references/rpc/07-rpc-cluster-intro.md).

### 22. CLI with `@effect/cli`

Read [references/cli/01-overview.md](references/cli/01-overview.md), [references/cli/02-command.md](references/cli/02-command.md), [references/cli/03-options.md](references/cli/03-options.md), [references/cli/04-options-combinators.md](references/cli/04-options-combinators.md), [references/cli/05-args.md](references/cli/05-args.md), [references/cli/06-args-combinators.md](references/cli/06-args-combinators.md), [references/cli/07-prompts.md](references/cli/07-prompts.md), [references/cli/08-subcommands.md](references/cli/08-subcommands.md), [references/cli/09-providing-services.md](references/cli/09-providing-services.md), [references/cli/10-config-files.md](references/cli/10-config-files.md), [references/cli/11-fallbacks.md](references/cli/11-fallbacks.md), [references/cli/12-completions.md](references/cli/12-completions.md).

### 23. React frontends with Effect Atom

Read [references/frontend-atom/01-overview.md](references/frontend-atom/01-overview.md), [references/frontend-atom/02-atom-make.md](references/frontend-atom/02-atom-make.md), [references/frontend-atom/03-atom-families.md](references/frontend-atom/03-atom-families.md), [references/frontend-atom/04-keep-alive.md](references/frontend-atom/04-keep-alive.md), [references/frontend-atom/05-react-hooks.md](references/frontend-atom/05-react-hooks.md), [references/frontend-atom/06-result-builder.md](references/frontend-atom/06-result-builder.md), [references/frontend-atom/07-side-effect-atoms.md](references/frontend-atom/07-side-effect-atoms.md), [references/frontend-atom/08-mutations.md](references/frontend-atom/08-mutations.md), [references/frontend-atom/09-cache-invalidation.md](references/frontend-atom/09-cache-invalidation.md), [references/frontend-atom/10-atoms-with-localstorage.md](references/frontend-atom/10-atoms-with-localstorage.md), [references/frontend-atom/11-effect-runtime-bridge.md](references/frontend-atom/11-effect-runtime-bridge.md), [references/frontend-atom/12-vercel-ai-sdk.md](references/frontend-atom/12-vercel-ai-sdk.md).

### 24. Migration from Promise / fp-ts / neverthrow / RxJS

Read [references/migration/01-overview.md](references/migration/01-overview.md), [references/migration/02-from-promise.md](references/migration/02-from-promise.md), [references/migration/03-from-trycatch.md](references/migration/03-from-trycatch.md), [references/migration/04-from-fp-ts.md](references/migration/04-from-fp-ts.md), [references/migration/05-from-neverthrow.md](references/migration/05-from-neverthrow.md), [references/migration/06-from-rxjs.md](references/migration/06-from-rxjs.md), [references/migration/07-gradual-adoption.md](references/migration/07-gradual-adoption.md), [references/migration/08-portable-utility.md](references/migration/08-portable-utility.md).

### 25. Architecture patterns

Read [references/architecture/01-overview.md](references/architecture/01-overview.md), [references/architecture/02-domain-driven-design.md](references/architecture/02-domain-driven-design.md), [references/architecture/03-hexagonal-architecture.md](references/architecture/03-hexagonal-architecture.md), [references/architecture/04-repository-pattern.md](references/architecture/04-repository-pattern.md), [references/architecture/05-use-case-pattern.md](references/architecture/05-use-case-pattern.md), [references/architecture/06-error-boundary-design.md](references/architecture/06-error-boundary-design.md), [references/architecture/07-shared-kernel.md](references/architecture/07-shared-kernel.md), [references/architecture/08-effect-language-server.md](references/architecture/08-effect-language-server.md).

### 26. End-to-end greenfield playbooks

Read [references/workflows/01-greenfield-cli.md](references/workflows/01-greenfield-cli.md), [references/workflows/02-greenfield-http-api.md](references/workflows/02-greenfield-http-api.md), [references/workflows/03-greenfield-react-spa.md](references/workflows/03-greenfield-react-spa.md), [references/workflows/04-greenfield-nextjs.md](references/workflows/04-greenfield-nextjs.md), [references/workflows/05-adding-effect-existing.md](references/workflows/05-adding-effect-existing.md), [references/workflows/06-microservice.md](references/workflows/06-microservice.md), [references/workflows/07-background-worker.md](references/workflows/07-background-worker.md), [references/workflows/08-mcp-server.md](references/workflows/08-mcp-server.md), [references/workflows/09-ai-agent.md](references/workflows/09-ai-agent.md).

