
Effect
A TypeScript library for building typed, maintainable production apps with error handling and concurrency.
- Stars
- 17.5k
- Forks
- 891
- Licence
- MIT
- Language
- TypeScript
- Last update
- 4 days ago
- Type
- Library
What it is
Effect is a TypeScript library for building applications that handle hard problems like typed errors, dependency injection, concurrency, scheduling, tracing, and schema validation. It is organized as a core package plus integration packages for platforms such as Node.js, Bun, and Deno, and for SQL databases and AI providers. People use it when they want larger TypeScript codebases to be more predictable and easier to maintain.
- Wrap a Node.js service so database and HTTP calls report typed errors
- Use the SQL client packages to talk to PostgreSQL, MySQL, or SQLite
- Add dependency injection to application code using Effect's services model
- Build AI-powered features with the Effect AI provider packages for OpenAI or Anthropic
Great for
- Teams building large or long-lived TypeScript back-end services
- Developers who want errors and dependencies tracked in the type system
- Projects that need structured concurrency and observability
- Teams already comfortable with functional programming patterns
Not ideal for
- Small scripts or simple sites, since the library adds conceptual overhead the README does not try to justify for them
- Teams that need a stable 3.x API today, because the README centers Effect 4.x and points v3 users to a migration guide
- Projects that cannot meet the stated requirements of TypeScript 5.9+ and Node.js 22.19+
How to get it
- 1
Install with a package manager
You'll need: TypeScript 5.9 or newer (TypeScript 7 recommended) · Node.js 22.19 or newer · A tsconfig.json with the strict flag enabled
Install the core package
npm install effect - 2
Run it
- Confirm TypeScript 5.9+ and Node.js 22.19+ are installed
- Enable strict mode in tsconfig.json
- Install the effect package with npm install effect
- Follow the documentation at effect.website to write your first program
- 3
Get the most out of it
- Add platform packages such as @effect/platform-node for runtime-specific services
- Use the SQL client packages matching your database instead of hand-rolled drivers
- Read the migration guide if you are moving from Effect 3.x
- Join the Discord to ask questions and get help from the core team
Downloads
Strengths
- Typed errors and dependency injection are built in, per the README's feature list
- Broad set of integration packages across runtimes, databases, and AI providers
- MIT licensed with a published LTS commitment for the 4.x release
Trade-offs
- The README is truncated and its full API surface is documented on an external site
- Requires strict TypeScript settings and recent runtime versions
- Adopting it means learning its concepts, and the README points to a migration guide for teams coming from v3
How it compares
| Project | Stars | Type | Level | Updated | Best for |
|---|---|---|---|---|---|
| effect (this) | 17.5k | Library | advanced | 4 days ago | Teams building large or long-lived TypeScript back-end services |
| fp-ts | 11.5k | Library | intermediate | 7 months ago | Developers already familiar with functional programming who want these patterns in TypeScript |
| zod | 44.2k | Library | beginner | 6 days ago | TypeScript developers who want runtime checks that match their static types |
| validator | 20.2k | Library | intermediate | 7 days ago | Go developers validating request bodies or form data in web APIs |
| orleans | 10.9k | Library | intermediate | 4 days ago | C# and .NET developers building scalable backend services |
| conc | 10.4k | Library | intermediate | 2 months ago | Go developers who use goroutines in long-running services |
Stats synced from GitHub. The assessment above was drafted with AI from the project's README on 2026-10-29 and may miss recent changes — check the README before relying on a command. MIT licence: free to use, modify and distribute, including commercially, as long as you keep the copyright notice.