Skip to content

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+
Step-by-step guide: how to use EffectInstall, first run, examples, tips and FAQs

How to get it

  1. 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. 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. 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

ProjectStarsTypeLevelUpdatedBest for
effect (this)17.5kLibraryadvanced4 days agoTeams building large or long-lived TypeScript back-end services
fp-ts11.5kLibraryintermediate7 months agoDevelopers already familiar with functional programming who want these patterns in TypeScript
zod44.2kLibrarybeginner6 days agoTypeScript developers who want runtime checks that match their static types
validator20.2kLibraryintermediate7 days agoGo developers validating request bodies or form data in web APIs
orleans10.9kLibraryintermediate4 days agoC# and .NET developers building scalable backend services
conc10.4kLibraryintermediate2 months agoGo 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.