The package is real.
The npm registry serves effect@4.0.0 with provenance metadata and no runtime dependencies. A clean temporary project installed that exact package and ran Effect.runPromise(Effect.succeed(...)) on Node 22.[3]
That smoke check proves the published core package installs and one basic effect runs on one host. It does not test an Effect 3 application, a platform adapter, a database driver, a schema migration, or production behavior.
Lockstep versions fix the shopping problem.
Effect 3 used independent versions for the core package and companion packages. Effect 4 gives the ecosystem one version number and releases those packages together. If the application uses effect@4.0.0, the matching PostgreSQL driver is @effect/sql-pg@4.0.0.[2]
Many old packages also moved into the core package. RPC, cluster, CLI, AI, SQL, workflow, and other modules now use imports under effect/*. Platform, SQL driver, AI provider, telemetry, test, and framework bindings remain separate packages.[2]
A shared version number is a coupling map. Treat it as a migration constraint, not a green light.
The stability label still controls risk.
Effect 4 has a long-term support policy. The project promises bug and security fixes through September 2029, or longer if Effect 5 ships late enough. The stable API follows major-version compatibility rules.[1]
The same promise does not apply to every module. APIs marked unstable can break in a minor release. Experimental APIs can break in a patch. Imports such as effect/http, effect/rpc, and effect/workflow no longer contain an unstable path segment, but the shorter path does not change their status.[2]
Migrate the contract, then replay behavior.
- List every
effectand@effect/*package in the lockfile. - Move every companion package to the same exact version.
- Apply the published import and API rename maps.
- Record every unstable or experimental API your application uses.
- Run type checks, unit tests, integration tests, and failure-path replay against one pinned revision.
The package coupler below builds that review card. It does not inspect your repository, edit imports, run a type checker, or test an application.