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

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

Testing

  • Checkbox unchecked Trace-based testing (see Tracetest)
  • Checkbox unchecked Trace integration for testing (e.g. each test should have a trace)
  • Checkbox unchecked Improved property-based testing
    • Checkbox unchecked Easier to temporarily debug a particular parameter set
    • Checkbox unchecked 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
    • Checkbox unchecked Running property base tests in parallel/concurrently
    • Checkbox unchecked In VSC test explorer show individual prop tests as separate test runs
  • Checkbox unchecked Metrics for testing (e.g. to track over time how long tests are running/regression testing)
  • Checkbox unchecked Improved layer ergonomics (e.g. Vitest.describe could already provide a layer to all tests in the describe block)

Schema

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

Misc

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

Standard library

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

API changes

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

Docs / examples

  • Checkbox unchecked JSdocs for everything in Effect
  • Checkbox unchecked Exhaustive examples

AI

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

Devtools

  • Checkbox unchecked Effect devtools as browser extension to extend browser devtools
  • Checkbox unchecked 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)