CAFE names the Cloudflare, Alchemy, Foldkit and Effect stack
CAFE is a named stack. Each letter has one job.¶
Read the CAFE news and browse the project directory.¶
Maxwell Brown coined the name; Justin Bennett spread it with his template on 8 October 2026. That day, Devin Jameson, Maxwell and Sam Goodwin streamed a CAFE build, and Sebastian Lorenz wrote the explainer people share.¶
A request follows one path. The Alchemy Stack declares every box on it.¶
┌─ Alchemy Stack ──────────────────────────────────┐
│ │
│ Foldkit app (browser) │
│ │ HTTP or RPC, typed by a shared schema │
│ ▼ │
│ Worker (Effect) │
│ │ │
│ ▼ │
│ Durable Object or storage │
│ │
└──────────────────────────────────────────────────┘ The browser and the Worker60 import the same schemas. Alchemy reads the same program to deploy and to test.¶
The canonical example
Effect-TS/cafe is a chat app from the Effect organization. Its README defines CAFE. Sam Goodwin8, who wrote Alchemy, built it. Maxwell Brown also commits to it.¶
It shows these patterns:¶
@cafe/apiholds the HTTP and RPC schemas. It may import onlyeffect, so the browser can import it safely. A lint rule enforces this.¶- The Worker serves an Effect
HttpApi. PR #6 moves chat events to Effect RPC over aCloudflare.RpcDurableObject, one per chat.¶ - The frontend is a Foldkit single-page app. Side effects are
Command.definedefinitions. PR #2 streamed socket frames withSubscription.fromEvent; PR #6 later replaced the socket with RPC.¶ - Story tests check update, Messages, and Commands. Scene tests drive the rendered view. Both are pure.¶
- Live tests deploy the Stack with
Test.makefromalchemy/Test/Vitest. The end-to-end test drives Chromium through Playwright.¶ - CI deploys one stage per pull request and destroys it when the pull request closes.¶
stacks/github.tsis an Alchemy Stack that writes the CI Cloudflare credentials as repository secrets.¶- Configuration comes from
effect/Config. ItsAGENTS.mdforbidsprocess.env.¶ - The repository carries the Foldkit agent skills.¶
Other CAFE apps
- just-be-dev/effect-cloudflare-foldkit-template: A template with tooling and guardrails for Effect 4, Foldkit, and Alchemy 2 on Cloudflare.¶
- NigelThorne/foldkit-demo: Live shared sessions on Durable Objects with SQLite and hibernatable WebSockets.¶
- mwarger/corefour: A poster app with an Effect
HttpApiWorker, Foldkit server rendering9, and KV and R2 storage.¶ - Manzanita-Research/foldkit-dials: Live tuning controls for Foldkit apps. See the next section.¶
- Manzanita-Research/pleat: Typed styles for Foldkit and Effect 4. MIT.¶
- Effect-TS/slopcop: Several Effect Workers with D1 and Queues, declared in one Alchemy Stack.¶
Pleat treats a style as a value:¶
- Styles merge by fixed laws.¶
- Every rule compiles to atomic CSS when its module loads.¶
- Recipe variants are typed by Effect Schema30.¶
- A model that generates UI can choose styles, but it can never write CSS.¶
Jem at Manzanita Research builds actively in the CAFE space: Pleat, foldkit-dials, and foldkit-native.¶
foldkit-dials
Manzanita-Research/foldkit-dials gives a Foldkit app live tuning controls, after DialKit. It is MIT licensed, at version 0.1.0.¶
- The dials are an Effect Schema.¶
- Every dial edit is a Message.¶
- Foldkit DevTools records each edit.¶
- Time travel replays it.¶
- Story and Scene tests can drive it.¶
Its demo deploys with Alchemy. A stacks/github.ts Stack bootstraps its CI credentials, as in cafe.¶
foldkit-dials is a clear example of the Foldkit rule that every change is a Message. A tool that follows the rule gets recording, replay, and tests from the runtime.¶
Where rat-stack sits
rat-stack is a CAFE stack with the fence50 around it. The table compares it with cafe at rat-stack commit 3fb103b.¶
- Alchemy Worker shape:
- rat-stack: Class form:
Cloudflare.Worker<Mischief>(),Cloudflare.Workers.RpcWorker,Cloudflare.Website.Foldkit¶ - cafe:
Cloudflare.Worker,Cloudflare.RpcDurableObject,Cloudflare.Website.Foldkit¶
- rat-stack: Class form:
- Runtime tests:
- rat-stack:
alchemy/Test/Vitestwith fixture Workers inapps/site/test/*-runtime.test.ts¶ - cafe:
Test.makedeploys the whole Stack; Playwright drives Chromium¶
- rat-stack:
- API surface26:
- rat-stack: One contract projected to RPC, HTTP, MCP, and CLI by
packages/capability¶ - cafe: Hand-written
HttpApiandRpcGroup¶
- rat-stack: One contract projected to RPC, HTTP, MCP, and CLI by
- Foldkit:
- rat-stack:
Runtime.makeApplication,Command.define,@foldkit/oxlint-plugin, Story and Scene tests¶ - cafe: The same, plus the Foldkit agent skills¶
- rat-stack:
- Config:
- rat-stack: varlock
.env.schemainto EffectConfig; noprocess.envin source¶ - cafe:
effect/Config; noprocess.env¶
- rat-stack: varlock
- Pull request stages:
- rat-stack:
scripts/deploy-preview.shdeploys a Website and RpcBackend preview by hand; no live end-to-end test¶ - cafe: CI deploys one stage per pull request, runs live tests, and destroys it on close¶
- rat-stack:
- Tracing: ¶
The largest difference is the API surface26. See one capability, every surface21 and infrastructure as effects10.¶
Sources
- Effect-TS/cafe¶
- foldhub/awesome-foldkit, Foldhub’s community list for Foldkit, announced by Taras Kornichuk¶
- Foldkit¶
- Alchemy¶
- Effect¶
Sources
- Effect-TS/cafe · GitHub. GitHub Effect-TS. README, AGENTS.md, package layout, CI workflows, and commit history; used for the canonical example. Accessed 2026-10-09.
- refactor: stream socket frames with Subscription.fromEvent · Effect-TS/cafe#2. GitHub Effect-TS. Used for the Subscription.fromEvent step. Accessed 2026-10-09.
- refactor: stream chat events over Effect RPC · Effect-TS/cafe#6. GitHub Effect-TS. Used for the move to Effect RPC over a Durable Object. Accessed 2026-10-09.
- Manzanita-Research/foldkit-dials · GitHub. GitHub Manzanita-Research. README and package manifest; used for the foldkit-dials section. Accessed 2026-10-09.
- Manzanita-Research/pleat · GitHub. GitHub Manzanita-Research. README; used for the Pleat row. Accessed 2026-10-09.
- Manzanita-Research/foldkit-native · GitHub. GitHub Manzanita-Research. Repository description; used for the Manzanita Research credit. Accessed 2026-10-09.
- just-be-dev/effect-cloudflare-foldkit-template · GitHub. GitHub just-be-dev. Repository description; used for the other CAFE apps table. Accessed 2026-10-09.
- NigelThorne/foldkit-demo · GitHub. GitHub NigelThorne. Repository description; used for the other CAFE apps table. Accessed 2026-10-09.
- mwarger/corefour · GitHub. GitHub mwarger. README; used for the other CAFE apps table. Accessed 2026-10-09.
- Effect-TS/slopcop · GitHub. GitHub Effect-TS. alchemy.run.ts; used for the other CAFE apps table. Accessed 2026-10-09.
- foldhub/awesome-foldkit · GitHub. GitHub foldhub. Community list for Foldkit libraries and apps. Accessed 2026-10-09.
Last changed 2026-10-24 in c525d23. Source on GitHub. Change log.
Linked from
- A browser send follows one path to the capability. In the Foldkit docs browser, a search is a Message, then an update, then a named Command that calls the search capability over RPC on a cache miss and returns a result Message.
Foldkit is the browser UI framework in rat-stack.
- Agent guide. An Effect stack so pure (aspirational) Kit Langton will blush.
CAFE news: reviewed Cloudflare, Alchemy, Foldkit and Effect news, ranked by engagement and freshness; also an Atom feed and the listCafeNews tool
- Agent rules for rat-stack (AGENTS.md). What you may change, which commands to run, and which changes need approval.
Foldkit 0.170.0 peers on effect ~4.1.0, so no peer allowances or patches remain.
- Alchemy Domain models a business as commands, aggregates, and events. Alchemy Domain is a domain-driven design framework for Effect whose one model runs in memory for tests and on Cloudflare Durable Objects in production.
run/domain/Foldkit adapter connects a Domain Api to a Foldkit app, as the Foldkit chapter describes.¶
- Build and run rat-stack (README.md). What is in the repo, how the example works, and how to run it.
Role: Easing, tweens, springs and interpolation as dependency-free TypeScript, with an optional Foldkit adapter
- CAFE all stars. Public profiles of people and channels who build with Cloudflare, Alchemy, Foldkit and Effect, served by five read-only capabilities.
CAFE all stars lists people and channels whose public work builds with Cloudflare, Alchemy, Foldkit and Effect.
- Capabilities. Named application actions exposed through generated interfaces share one definition and one server-side implementation.
The hosted registry includes content search and graph traversal, flags, prompts, CAFE news and profiles, learning, code mode, and joinInterest.
- Change log. What changed in the files served here, newest first.
CAFE names the Cloudflare, Alchemy, Foldkit and Effect stack — new page: Initial commit from joelhooks/rat-stack template
- Dependency vendoring rules (vendor/README.md). How to pin an unpublished package and when to remove the local copy.
allowedVersions entries for Foldkit’s exact Effect 4.0.0 peers travelled with it.
- Effect + Alchemy peer patterns. Source-grounded patterns from repos on nearby Effect and Alchemy pins.
0 to satisfy Foldkit’s exact peers.
- Effect + Alchemy peers. Public repositories that share rat-stack's prerelease lines.
Why this tier: Active Oct 15; studied Foldkit catalogs and lockfile.
- Effect 4 study: September 2026. Dated Effect 4 source studies from September 2026; current versions live in pins.md.
Foldkit’s exact Effect peers and platform dependencies must share one runtime.
- Full agent guide. An Effect stack so pure (aspirational) Kit Langton will blush.
- Hosted agent interfaces. Discovery documents, HTTP, MCP, A2A, and bounded code mode expose the public reference to agents.
The hosted registry includes search, graph traversal, flags, prompts, CAFE news and profiles, learning, code mode, and joinInterest.¶
- Infrastructure as effects. Sam Goodwin relates application operations to infrastructure requirements in one typed program.
Sam relates runtime clients, business logic, infrastructure policies, and deployed resources in one typed program.
- Lint and type escape ledger (debt.md). A source-linked count of repo-owned lint and type escapes.
Reason: Vite awaits finalization after the Foldkit prerender hook.
- Motion. @rat-stack/motion gives Foldkit apps Penner and CSS easings, tweens, fixed-step springs and interpolation, held in the Model and checked by properties.
@rat-stack/motion moves values over time in a Foldkit app.
- One prompt serves people and agents. Source-owned agent prompts with typed discovery and copyable browser pages.
Foldkit Messages and Commands own clipboard interaction.
- Rat Stack lore | rat-stack. Short, source-grounded notes on the ideas and decisions behind rat-stack.
Link context
A browser send follows one path to the capability — In the Foldkit docs browser, a search is a Message, then an update, then a named Command that calls the search capability over RPC on a cache miss and returns a result Message.
- Rat Stack systems | rat-stack. The systems rat-stack ships, the standard each keeps, and how to check it.
CAFE all stars — Public profiles of people and channels who build with Cloudflare, Alchemy, Foldkit and Effect, served by five read-only capabilities.
- rat-stack. An Effect stack so pure (aspirational) Kit Langton will blush.
CAFE news and the CAFE directory: reviewed Cloudflare, Alchemy, Foldkit and Effect news and projects
- Sam Goodwin. Sam Goodwin presents Alchemy as infrastructure built from Effect programs and typed requirements.
He built cafe, the reference app for the CAFE stack.¶
- Source change history (log.md). The generated change log as Markdown.
CAFE names the Cloudflare, Alchemy, Foldkit and Effect stack — new page: Initial commit from joelhooks/rat-stack template
- test-behaviour. Pick the test shape that proves a behaviour. Use when you ask "how do I test this?", add a test, test a domain rule, a lifecycle, a retry, a session, a UI interaction, a timer, or a race, or review a test that might be tautological.
Read UI behaviour is a scene for the Foldkit UI Toast race.¶
- UI behaviour is a scene. A Foldkit Scene drives update, view, and subscriptions with input and time as plain data, then asserts on what the view shows.
A Foldkit program has a Model, Messages, an update function, and a view.
- uncomplect. Find responsibilities that a rat-stack design combines, separate them into capabilities, cartridges, machines, features, and clients, and enforce that separation through types and checks. Use when asked to simplify, review, or replace a design, "what would Rich Hickey do", "optimize for deletion", or "define this error out of existence".
Client: The Foldkit program that owns the Model, Messages, update, and named Commands.¶
- Web. The Foldkit reader renders on the server and prerenders its public pages; the browser hydrates the same view.
It is one Foldkit program.