Simulated Redis: every round trip takes 400ms.
const name = yield* redis.set("{user:42}:name", "Ada");
const visits = yield* redis.incr("{user:42}:visits");
const plan = yield* redis.get("{user:42}:plan");
Documentation for agents: an index at /llms.txt, every docs page in one file at /llms-full.txt, and Markdown for any docs page by adding .md to its URL.
Redis and Emails are live
The infrastructure your app depends on, as Effect services: Layers you can swap and typed errors you can match on.
01The kit
Every package is its own install with its own Layers, so your app only carries what it uses.
Redis for Effect v4. A native client with typed commands and scoped connections.
One Email API across 16 providers, with React templates and bounded batches.
Object storage for Effect. Put, scoped get, head, delete and paginated listing.
It doesn't replace anything in your Effect application. It adds services, typed errors and Layers that slot into the program you already have.
02Playground
Real Effect programs against a simulated backend. Press play, change a control, break things.
Simulated Redis: every round trip takes 400ms.
const name = yield* redis.set("{user:42}:name", "Ada");
const visits = yield* redis.incr("{user:42}:visits");
const plan = yield* redis.get("{user:42}:plan");
Inspired by Kit Langton's Visual Effect
Start here
Install a package, provide its Layer next to the ones you already have, and yield the service where you need it. Nothing else in the program moves.