Welcome to Effect

Effect is a powerful TypeScript library designed to help developers easily create complex, synchronous, and asynchronous programs.

One of the key features that sets Effect apart is how it leverages structured concurrency (opens in a new tab) to provide features such as async cancellation and safe resource management, making it easier to build robust, scalable, and efficient programs.

Other notable features of Effect include:

  • Concurrency: Achieve highly-scalable, ultra low-latency applications through Effect's fiber-based concurrency model
  • Composability: Construct highly maintainable, readable, and flexible software through the use of small, reusable building blocks
  • Resource Safety: Safely manage acquisition and release of resources, even when your program fails
  • Type Safety: Leverage the TypeScript type system to the fullest with Effect's focus on type inference and type safety
  • Asynchronicity: Write code that looks the same, whether it is synchronous or asynchronous
  • Observability: With full tracing capabilities, you can easily debug and monitor the execution of your Effect program

We've worked hard to create comprehensive and approachable documentation that will guide you through various aspects of using Effect. We hope that you will find what you are looking for here - but if you don't, reach out to us on Discord (opens in a new tab) or Twitter (opens in a new tab)!

So, let's get started! Browse the table of contents, or jump directly to the section that interests you the most.