effect is a free, open source monitoring & observability project written in TypeScript and released under MIT. It has 16,097 GitHub stars, 747 forks and 253 open issues, and was last pushed 3 hours ago. On this registry it ranks #22 of 97 tracked projects in Monitoring & Observability, with 5 head-to-head comparisons available. It gained 29 stars over the last 3 tracked days.

What is effect?

What it is

Effect is a TypeScript library for building robust, maintainable, type-safe, and production-grade applications. It lives in the TypeScript and JavaScript ecosystem, distributed as the core effect package alongside a monorepo of integration packages that extend it. The project is MIT-licensed, has been developed for roughly seven years, and currently ships Effect V4 as a release candidate, with the main branch holding v4 development and the v3 branch retaining the previous line.

The concrete problem Effect addresses is the difficulty of handling hard problems at scale in TypeScript: typed errors, dependency injection, structured concurrency, scheduling, tracing, and unified schema validation. Rather than assembling separate libraries for each concern, Effect provides these capabilities through one cohesive runtime and type system. Integration packages extend the core to specific runtimes and data stores, including platform services for the browser, Bun, Deno, and Node.js, and SQL clients for ClickHouse, Cloudflare D1, libSQL, Microsoft SQL Server, MySQL, PostgreSQL, PGlite, and SQLite across several runtimes.

Key capabilities

  • Typed errors that are tracked in the type system rather than thrown as untyped exceptions.
  • Dependency injection for composing and substituting services across an application.
  • Structured concurrency for managing concurrent and parallel work with defined lifetimes.
  • Scheduling for controlling when and how effects execute.
  • Tracing and observability, with OpenTelemetry listed among the project topics.
  • Unified schema validation shared across the codebase.
  • Clustering and CLI support, both listed among the project topics.

Who uses it and how

  • Teams building production-grade TypeScript applications that need typed error handling and dependency injection in one runtime.
  • Developers running Effect on Node.js, Bun, Deno, or in the browser through the corresponding @effect/platform-* packages.
  • Applications connecting to SQL databases through the @effect/sql-* clients, including PostgreSQL, MySQL, ClickHouse, and Microsoft SQL Server.
  • Edge and serverless deployments using the Cloudflare D1 and Cloudflare Durable Objects SQLite clients.
  • Mobile and embedded scenarios using the SQLite client for React Native.

Getting started

Install the V4 release candidate with npm install effect@rc. The project requires TypeScript 5.9 or newer, Node.js 18 or newer as the general minimum, and the strict flag enabled in tsconfig.json; some integration packages require newer runtimes, such as @effect/sql-sqlite-node, which needs Node.js 22.16 or newer.

When to use it — and when not to

Effect suits teams that want typed errors, dependency injection, structured concurrency, and schema validation unified in one TypeScript runtime rather than stitched together from separate libraries. Adopters must meet the toolchain requirements: TypeScript 5.9 or newer, Node.js 18

project readme (upstream, from github) — read inline

pkg.pr.new

Effect

Effect is a library for building robust, maintainable, type-safe, and production grade applications in TypeScript. It helps you handle the hard problems at scale: typed errors, dependency injection, structured concurrency, scheduling, tracing, and unified schema validation.

Effect V4 is currently a release candidate. The main branch contains v4 development.

Install V4 RC

npm install effect@rc

Requirements

  • TypeScript 5.9 or newer. TypeScript 7 is recommended for the best performance and compatibility with Effect's TypeScript tooling.
  • Node.js 18 or newer is the general minimum for running Effect on Node.js. Some integration packages require newer runtimes; for example, @effect/sql-sqlite-node requires Node.js 22.16 or newer.
  • Strict type-checking: the strict flag must be enabled in your tsconfig.json.

Effect v3

The Effect v3 source code is available on the v3 branch, which is also where issues and pull requests meant for Effect v3 should be targeted.

Packages

This monorepo contains the core effect package alongside integration packages that extend it. All v4 packages are published under the rc tag on npm.

Package Description API Reference
effect The core package docs
@effect/platform-browser Platform services for the browser docs
@effect/platform-bun Platform services for Bun docs
@effect/platform-deno Platform services for Deno docs
@effect/platform-node Platform services for Node.js docs
@effect/platform-node-shared Shared services for Node.js-compatible runtimes docs
@effect/sql-clickhouse SQL client for ClickHouse docs
@effect/sql-d1 SQL client for Cloudflare D1 docs
@effect/sql-libsql SQL client for libSQL docs
@effect/sql-mssql SQL client for Microsoft SQL Server docs
@effect/sql-mysql2 SQL client for MySQL docs
@effect/sql-pg SQL client for PostgreSQL docs
@effect/sql-pglite SQL client for PGlite docs
@effect/sql-sqlite-bun SQL client for SQLite via bun:sqlite docs
@effect/sql-sqlite-do SQL client for Cloudflare Durable Objects SQLite docs
@effect/sql-sqlite-node SQL client for SQLite via node:sqlite docs
@effect/sql-sqlite-react-native SQL client for SQLite in React Native docs
@effect/sql-sqlite-wasm SQL client for SQLite compiled to WebAssembly docs
@effect/ai-anthropic Anthropic provider for the Effect AI modules docs
@effect/ai-openai OpenAI provider for the Effect AI modules docs
@effect/ai-openai-compat OpenAI-compatible API provider for the Effect AI modules docs
@effect/ai-openrouter OpenRouter provider for the Effect AI modules docs
@effect/atom-react React bindings for Effect Atom docs
@effect/atom-solid SolidJS bindings for Effect Atom docs
@effect/atom-vue Vue bindings for Effect Atom docs
@effect/opentelemetry OpenTelemetry integration docs
@effect/vitest Helpers for testing with Vitest docs
@effect/docgen Documentation generator for Effect projects docs
@effect/doctest Runs JSDoc examples as Vitest tests docs
@effect/openapi-generator Generate Effect code from OpenAPI specifications docs

Resources

License

MIT

Frequently asked questions

Is effect free to use?

effect is open source under the MIT licence. There is no licence fee and no seat count — you can self-host it or, where the project offers one, pay a vendor for a managed version instead.

What does effect do?

Build production-ready applications in TypeScript

What is effect written in?

effect is primarily written in TypeScript. Its source is publicly available at https://github.com/Effect-TS/effect, and it has 16,097 GitHub stars.