Welcome to the Effect documentation!


Please note that the documentation is currently under construction and some sections may be incomplete or subject to changes. We are working hard to provide you with comprehensive and accurate information.

What is Effect?

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

Main Features

Some of the main Effect features include:

ConcurrencyAchieve highly-scalable, ultra low-latency applications through Effect's fiber-based concurrency model.
ComposabilityConstruct highly maintainable, readable, and flexible software through the use of small, reusable building blocks.
Resource SafetySafely manage acquisition and release of resources, even when your program fails.
Type SafetyLeverage the TypeScript type system to the fullest with Effect's focus on type inference and type safety.
Error HandlingHandle errors in a structured and reliable manner using Effect's built-in error handling capabilities.
AsynchronicityWrite code that looks the same, whether it is synchronous or asynchronous.
ObservabilityWith full tracing capabilities, you can easily debug and monitor the execution of your Effect program.

How to Use These Docs

The documentation is structured in a sequential manner, starting from the basics and progressing to more advanced topics. This allows you to follow along step-by-step as you build your Effect application. However, you have the flexibility to read the documentation in any order or jump directly to the pages that are relevant to your specific use case.

To facilitate navigation within a page, you will find a table of contents on the right side of the screen. This allows you to easily jump between different sections of the page. Additionally, the breadcrumbs at the top of the page indicate the current location within the documentation, helping you keep track of where you are.

Displaying Types with $ExpectType

In these documentation pages, we use the $ExpectType pragma borrowed from dtslint (opens in a new tab) to display the type of a variable. Here's an example:

// $ExpectType Date
const foo = new Date()

In the above code, we are stating that the variable foo has the type Date. This provides clarity and helps you understand the expected type of variables in different examples throughout the documentation.

Join our Community

If you have questions about anything related to Effect, you're always welcome to ask our community on Discord (opens in a new tab).