Lila, the Scala server behind lichess.org, a free, ad-free and open source online chess platform.
Effect-TS/effect
A TypeScript library for building production-grade apps with typed errors, dependency injection, structured concurrency, and schema validation.
- Stars
- 17,376
- Forks
- 875
- Open issues
- 82
- Last commit
- 20 hours ago
What is it?
Effect is a TypeScript library for building robust, maintainable, type-safe applications. It targets the hard problems that appear at scale: errors that are tracked in the type system, dependency injection, structured concurrency, scheduling, tracing, and unified schema validation.
The core package is `effect`, and the monorepo ships a family of companion packages. These cover platform services for Node.js, Bun, Deno, and the browser; SQL clients for PostgreSQL, MySQL, SQLite variants, ClickHouse, and others; AI provider integrations for OpenAI, Anthropic, and OpenRouter; OpenTelemetry integration; Vitest helpers; and code generators for OpenAPI and GraphQL.
Effect 4.x is the current long-term support release and requires TypeScript 5.9 or newer with the `strict` flag enabled. Users on Effect 3.x can follow the migration guide, and the v3 source lives on its own branch.
Key features
- 01Typed errors tracked in the type system
- 02Dependency injection for composing services
- 03Structured concurrency and scheduling
- 04Tracing and OpenTelemetry integration
- 05Unified schema validation
- 06SQL clients and platform services for multiple runtimes
Use cases
- Building large TypeScript backends that need explicit error handling and dependency wiring
- Writing type-safe SQL access across PostgreSQL, MySQL, or SQLite
- Adding OpenTelemetry tracing to existing TypeScript services
- Generating typed Effect clients from OpenAPI or GraphQL specifications
Quick start
- 1
Install the core package with npm
npm install effect
Things to know
- Requires TypeScript 5.9 or newer with the strict flag enabled.
- Effect 4.x is an LTS release, and Effect 3.x users must follow a migration guide to upgrade.
In collections
Topics
FAQ
- What is effect?
- A TypeScript library for building production-grade apps with typed errors, dependency injection, structured concurrency, and schema validation. Effect is a TypeScript library for building robust, maintainable, type-safe applications. It targets the hard problems that appear at scale: errors that are tracked in the type system, dependency injection, structured concurrency, scheduling, tracing, and unified schema validation.
- Is effect free to use? What license does it have?
- effect is open source under the MIT license. Check the license terms before using it in commercial products.
- Is effect still maintained?
- Actively maintained. The last commit to effect was on Oct 24, 2026.
- What can I use effect for?
- Building large TypeScript backends that need explicit error handling and dependency wiring Writing type-safe SQL access across PostgreSQL, MySQL, or SQLite Adding OpenTelemetry tracing to existing TypeScript services Generating typed Effect clients from OpenAPI or GraphQL specifications
- How do I install effect?
- Install the core package with npm: npm install effect
- Where can I get effect?
- The source code and installation instructions are on GitHub: https://github.com/Effect-TS/effect
Summary generated by AI from the project's README. GitHub stats refresh daily.
Related projects
An experimental Rust port of the TypeScript 7 compiler (tsc), with the same CLI, language server and API, plus built-in Effect diagnostics.
A progressive Node.js framework for building efficient, scalable server-side applications in TypeScript or JavaScript.
A TypeScript fetch client builder that adds schema validation, typed responses, retries, timeouts, and progress tracking on top of native fetch.
The foundational Java framework for building enterprise applications, providing dependency injection, MVC, and infrastructure support for the wider Spring ecosystem.
A lightweight dependency injection framework for Kotlin and Kotlin Multiplatform, offering a Kotlin DSL and JSR-330 annotations.