Johannes Schickling
Draft

Effect Wishlist

I've been using Effect since 2020 and build almost all applications and libraries I'm working on with it. Effect has come an incredibly long way and I'm super happy with it.

This page lists out some features/ideas I'd like to see in Effect. Some might be implemented in the coming months, some might never happen.

Features

  • Browser support for Effect Cluster/Workflows
  • Built-in Opentelemetry support (without the need for @opentelemetry/* packages)

Testing

  • Trace-based testing (see Tracetest)
  • Trace integration for testing (e.g. each test should have a trace)
  • Improved property-based testing
    • Easier to temporarily debug a particular parameter set
    • When testing async code with variable timing, running property based tests can sometimes cause tests to run a long time. additionally to numRuns there should be some kind of "time budget" option to e.g. say that if the tests ran without problems for e.g. 5min, the it's fine for us to stop after that
    • Running property base tests in parallel/concurrently
    • In VSC test explorer show individual prop tests as separate test runs
  • Metrics for testing (e.g. to track over time how long tests are running/regression testing)
  • Improved layer ergonomics (e.g. Vitest.describe could already provide a layer to all tests in the describe block)

Schema

  • Effect schema native sub typing checking (related to jsonsubschema)
  • AST-based stable hashes (see Github issue)
  • Support for flatbuffers/protobuf etc
  • Code generation of Effect schemas (e.g. from JSON schema)
  • AI-enhanced "self-improving" schema
    • Core idea: Schema parses data -> mismatch -> AI adjusts schema based on new data -> PR
  • Schema evolution
  • A way to serialize a schema

Misc

  • Code generation helpers
  • A graph library incl. common graph algorithms (see PR)
  • A GraphQL library (possibly even implemented from scratch without using graphql-js for better performance)
  • A Effect-native way to write, run and test GitHub workflows/actions (also locally)
  • More platform packages
    • Electron/Tauri platform packages
    • Cloudflare Workers platform package
    • Browser extensions platform package (Chrome, Safari, Edge)

Standard library

  • The "best of all worlds" of Deferred, Latch and Ref

API changes

  • Rename Effect.succeed to Effect.ok (to align with Rust's Result.ok)

Docs / examples

  • JSdocs for everything in Effect
  • Exhaustive examples

AI

  • Effect rulekit to align coding agents with Effect
  • MCP tool (or similar) to help review/refactor Effect code to make it more Effect idiomatic

Devtools

  • Effect devtools as browser extension to extend browser devtools
  • Custom, live metrics

Integration packages

For Effect to truly unlock its full potential, we need to have native integration with other tools.

Playwright

It would be great if there were Effect-native Playwright bindings.

Other ideas

Notion

I already started working on effect-notion to make it easier to build with Notion in Effect.

Painpoints

  • No true step-debugger support (due to Effect fiber system runtime)