# CAFE news

> For agents: start with the [agent guide](https://parol6.build/llms.txt). Every page is Markdown by default; add `Accept: text/html` for HTML.

News from people who build with Cloudflare, Alchemy, Foldkit and Effect. A person reviews each entry before it appears.

[Atom feed](/news.xml)

1. \[thread] [What is the aha moment for Foldkit?](https://x.com/mattpocockuk/status/2117157362700058671) (x.com)
   Asks for Foldkit's aha moment; replies cite explicit reducer transitions, agent devtools for state inspection, Scene tests, and the Elm Architecture in TypeScript.
   2026-11-02 by [@mattpocockuk](https://x.com/mattpocockuk) · [all stars profile](/all-stars/mattpocock)
   65 replies · 75 people
   - [@MichaelArnaldi](https://x.com/MichaelArnaldi): @mattpocockuk Work on it with agents, connect them to the devtools to inspect state, do scene testing, you won’t have many aha moments but you’ll have no wtf moment ([120 likes](https://x.com/MichaelArnaldi/status/2117158569607098459))
   - [@elianiva\_](https://x.com/elianiva_): @mattpocockuk the elm architecture, but with typescript and effect there's not that many aha moments, for me it's more like damn why didn't i do this sooner  it feels correctly designed for agents end to end, everything is visible to them including state transitions ([28 likes](https://x.com/elianiva_/status/2117166491376165087))
   - [@samgoodwin89](https://x.com/samgoodwin89): @mattpocockuk @MattiaManzati Story based testing is awesome for AI and human review. Let’s you pump out working features. <https://t.co/ErPYK4Abn4> ([16 likes](https://x.com/samgoodwin89/status/2117279844530835550))

2. \[release] [XState 6 beta and @xstate/effect 1.0 beta](https://stately.ai/blog/2026-11-05-xstate-v6-beta) (stately.ai)
   XState v6 enters beta: no more breaking changes planned for @public APIs; snapshot restore moves to restoreActor in xstate/persist.
   2026-11-06 by [statelyai](https://github.com/statelyai) · [all stars profile](/all-stars/statelyai)

3. \[thread] [tsrs --lint replaces Oxlint's type-aware linter, now with Effect rules](https://x.com/MattiaManzati/status/2117933990246232387) (x.com)
   tsrs --lint shipped as a drop-in replacement for Oxlint's type-aware tsgolint, and the Effect rules now run in it through a --tsrs-lint flag.
   2026-11-04 by [@MattiaManzati](https://x.com/MattiaManzati) · [all stars profile](/all-stars/mattiamanzati)
   12 replies · 15 people
   - [@MattiaManzati](https://x.com/MattiaManzati): <https://t.co/LpppVGHiuc> ([7 likes](https://x.com/MattiaManzati/status/2117934042444386481))
   - [@theopomies](https://x.com/theopomies): @MattiaManzati @EffectTS\_ i’m getting lost in the ecosystem, which tool to use, which is compatible with which, when to update what etc  all the gains are exciting, i just struggle to find the best way to benefit ([4 likes](https://x.com/theopomies/status/2117947882980696295))
   - [@MichaelArnaldi](https://x.com/MichaelArnaldi): @theopomies @MattiaManzati @EffectTS\_ They are all semantically equivalent, pick one and stick with it ([3 likes](https://x.com/MichaelArnaldi/status/2118023572673417479))

4. \[launch] [Executor 2 beta](https://github.com/UsefulSoftwareCo/executor) (github.com)
   Lets agents call OpenAPI, MCP, GraphQL and custom JavaScript functions in a secure environment; built on Effect, MIT licensed.
   2026-11-05 by [UsefulSoftwareCo](https://github.com/UsefulSoftwareCo)

5. \[thread] [16 new Effect language service rules, also in tsrs and Oxlint](https://x.com/MattiaManzati/status/2117330070842782057) (x.com)
   New rules spot Effect boilerplate and rewrite it to builtins such as mapBoth, fromResult and failSync, with quick fixes; they need type-aware linting.
   2026-11-02 by [@MattiaManzati](https://x.com/MattiaManzati) · [all stars profile](/all-stars/mattiamanzati)
   12 replies · 13 people
   - [@MattiaManzati](https://x.com/MattiaManzati): <https://t.co/gbFouQKEjE> ([12 likes](https://x.com/MattiaManzati/status/2117330174752739551))
   - [@MattiaManzati](https://x.com/MattiaManzati): <https://t.co/kqPwXoy8o8> ([11 likes](https://x.com/MattiaManzati/status/2117330119341875326))
   - [@MattiaManzati](https://x.com/MattiaManzati): <https://t.co/G2gS7S5KeV> ([7 likes](https://x.com/MattiaManzati/status/2117330213717545141))

6. \[release] [Tardigrade 0.55 on Effect 4.1](https://github.com/clavia-labs/tardigrade/releases/tag/v0.55.0) (github.com)
   Durable, event-driven actors for TypeScript; v0.54 moved to Effect 4.1 stable and v0.55 adds remote methods to the client.
   2026-11-07 by [clavia-labs](https://github.com/clavia-labs)

7. \[release] [effect@4.1.2 released](https://github.com/Effect-TS/effect/releases/tag/effect%404.1.2) (github.com)
   Patch fixes ByteSize decimal units, cluster workflow engine shard and retry faults, McpServer middleware and failure encoding, and cookie selection with HttpApiClient baseUrl.
   2026-11-02 by github.com · [all stars profile](/all-stars/effect-ts)

8. \[thread] [kabuki brings a Foldkit-style API to React on Effect](https://x.com/pkishorez/status/2118009748310438072) (x.com)
   kabuki 0.0.5 maps React components to actors, useReducer to model, message and update, and useEffect to declarative workers; React still renders.
   2026-11-04 by [pkishorez](https://github.com/pkishorez)
   6 replies · 7 people
   - [@pkishorez](https://x.com/pkishorez): I released (v0.0.5). And I am already happy about the results. Feedback very welcome.  Docs: <https://t.co/dzBm58zw2T> Repo: <https://t.co/Cefmnf8KkH> (packages/kabuki) ([3 likes](https://x.com/pkishorez/status/2118009755612643538))
   - [@pkishorez](https://x.com/pkishorez): Incrementally adoptable. Can migrate a single component / whole app with it!  The entire <https://t.co/3A0eJPX02G> is built on kabuki start framework! End to end kabuki. With static rendering! ([3 likes](https://x.com/pkishorez/status/2118009753020612982))
   - [@pkishorez](https://x.com/pkishorez): @HANGxue257306 Yes! Everything in kabuki is declarative. A worker can live for the lifetime of entire actor, a state or even a specific condition! We do not start anything imperatively. That is what make it so easy to work with. ([2 likes](https://x.com/pkishorez/status/2118185493716422659))

9. \[post] [Silk: What If Effect Were a Low-Level Language?](https://silklang.org) (silklang.org)
   A low-level language with Effect-style typed failures, service requirements and lazy effects, affine ownership, and LLVM output for native and WebAssembly targets.
   2026-11-02 by [julia-script](https://github.com/julia-script) · [all stars profile](/all-stars/julia-script)

10. \[release] [Alchemy 2.0.0-beta.85 moves to Effect 4.1](https://github.com/alchemy-run/alchemy/releases/tag/v2.0.0-beta.85) (github.com)
    Breaking: Cloudflare.state takes workerName only, DynamoDB becomes the default AWS state, and the state store deploys through direct API calls.
    2026-11-02 by github.com · [all stars profile](/all-stars/alchemy-run)

11. \[video] [Cause & Effect 10: software engineering in the AI era](https://www.youtube.com/watch?v=rAE_2kiEfvA) ([www.youtube.com](http://www.youtube.com))
    A clip from Effect's Cause & Effect podcast, episode 10, with John De Goes on software engineering in the AI era.
    2026-11-01 by [www.youtube.com](http://www.youtube.com)

12. \[launch] [tailnet-do](https://github.com/littledivy/tailnet-do) (github.com)
    Puts a Cloudflare Durable Object on a Tailscale tailnet as a device with its own address, using Tailscale's userspace client compiled to WebAssembly.
    2026-11-07 by [littledivy](https://github.com/littledivy)

13. \[video] [Effect Office Hours 51: McpTask for long-running tools](https://www.youtube.com/watch?v=ugEBQBL1TtA) ([www.youtube.com](http://www.youtube.com))
    Office Hours clip: a community review of adding McpTask to Effect's MCP support for long-running tools.
    2026-11-02 by [www.youtube.com](http://www.youtube.com)

14. \[launch] [effect-discord-perms](https://github.com/RhysSullivan/effect-discord-perms) (github.com)
    A typed layer over dfx on Effect v4: missing permissions, payload rules and intents become compile errors, each rule checked against live Discord.
    2026-11-06 by [RhysSullivan](https://github.com/RhysSullivan) · [all stars profile](/all-stars/rhyssullivan)

15. \[release] [rat-stack aligns its tsrs checker pins](https://www.npmjs.com/package/@yielded/effect-tsrs/v/0.2.2) ([www.npmjs.com](http://www.npmjs.com))
    rat-stack uses effect-tsrs 0.2.2 with --strict --type-check for TypeScript and Effect diagnostics. Plain tsrs 0.20.0 targets TypeScript 7.1 beta. Patched tsc checks parity on checker bumps. effect-tsrs 0.2.2 needs `--type-check` to report ordinary TypeScript errors.
    2026-10-26 by [joelhooks](https://github.com/joelhooks) · [all stars profile](/all-stars/joelhooks)

16. \[post] [Hillclimbing distilled](https://alchemy.run/blog/2026-10-24-optimizing-distilled/) (alchemy.run)
    An agent optimized distilled, Alchemy's Effect cloud SDKs: 33% smaller bundles, 79% less latency per call and 74% less memory on import.
    2026-10-24 by [@alchemy\_run](https://x.com/alchemy_run) · [all stars profile](/all-stars/alchemy-run)

17. \[launch] [VibeLang alpha spec](https://github.com/smithersai/vibelang) (github.com)
    A v0 language for writing Effect programs in TypeScript syntax, with typed errors and services the compiler checks; alpha spec final, release pending.
    2026-11-04 by [smithersai](https://github.com/smithersai)

18. \[release] [tsrs joins the stack as the fast typecheck](https://blog.cloudflare.com/typescript-rust-port/) (blog.cloudflare.com)
    rat-stack adds tsrs for fast typechecks. It does not run Effect diagnostics, so patched tsc stays in the gate.
    2026-10-24 by [joelhooks](https://github.com/joelhooks) · [all stars profile](/all-stars/joelhooks)

19. \[launch] [ns-foldkit runs Foldkit on iOS and Android](https://github.com/nstudio/ns-foldkit) (github.com)
    Runs Foldkit apps unmodified on iOS and Android with real native views through NativeScript, replacing only the DOM layer with a native bridge.
    2026-11-06 by [nstudio](https://github.com/nstudio)

20. \[release] [effect-tsrs runs Effect diagnostics on tsrs](https://www.npmjs.com/package/@yielded/effect-tsrs/v/0.2.0) ([www.npmjs.com](http://www.npmjs.com))
    rat-stack type-checks with effect-tsrs 0.2.0 in strict mode, so Effect warnings fail. Patched tsc remains a separate CI backstop.
    2026-10-24 by [joelhooks](https://github.com/joelhooks) · [all stars profile](/all-stars/joelhooks)

21. \[release] [Foldkit 0.170.0 moves to Effect 4.1](https://github.com/foldkit/foldkit/releases/tag/foldkit%400.170.0) (github.com)
    Foldkit and its companion packages move to Effect 4.1, using effect/crypto SecureRandom for UUIDs; the Node adapter and Vite plugin need Node 22.19.
    2026-10-29 by github.com · [all stars profile](/all-stars/foldkit)

22. \[launch] [Maple Alchemy provider](https://maple.dev/docs/iac/alchemy/) (maple.dev)
    Maple, an open source OpenTelemetry platform built on Effect, ships Alchemy resources for telemetry collection, alerts and dashboards.
    2026-10-14 by [MapleTechLabs](https://github.com/MapleTechLabs) · [all stars profile](/all-stars/makisuo)

23. \[launch] [alchemy-turbo-cache](https://github.com/joelhooks/alchemy-turbo-cache) (github.com)
    A Turbo remote cache on Cloudflare Workers and R2, declared by an Alchemy Stack: one call declares the Worker, an expiring bucket and per-team tokens.
    2026-11-05 by [joelhooks](https://github.com/joelhooks) · [all stars profile](/all-stars/joelhooks)

24. \[post] [Alchemy 2.0.0-beta.83: the Cloudflare Birthday Week release](https://alchemy.run/blog/2026-10-12-beta-83/) (alchemy.run)
    Adds DO containers, K2 streams, Basin and KV Instant. Needs Node 24.11.1+. One-way: once deployed, Durable Object stacks can't use older Alchemy.
    2026-10-12 by [alchemy-run](https://github.com/alchemy-run) · [all stars profile](/all-stars/alchemy-run)

25. \[release] [mutant-cafe 0.1.2: mutation testing for Effect TypeScript](https://github.com/joelhooks/mutant-cafe) (github.com)
    Type-directed mutants for Effect code, including one per tagged error that swallows just that error; inspired by cargo-mutants. Install with npm i -D mutant-cafe.
    2026-11-03 by [joelhooks](https://github.com/joelhooks) · [all stars profile](/all-stars/joelhooks)

26. \[launch] [Munch Manor](https://github.com/Tanner-Scadden/munch-manor) (github.com)
    Open-source pixel zombie shooter built with Foldkit and Effect on Cloudflare: seed-replayable games, server-run co-op on Durable Objects, art drawn in code.
    2026-10-31 by [Tanner-Scadden](https://github.com/Tanner-Scadden) · [all stars profile](/all-stars/tanner-scadden)

27. \[post] [A Foldkit Scene test for the Foldkit UI Toast](https://x.com/devinjameson/status/2108710271417999544) (x.com)
    Walks through a Scene that swipes a toast a short way and checks it settles back instead of dismissing.
    2026-10-10 by [devinjameson](https://github.com/devinjameson) · [all stars profile](/all-stars/devinjameson)

28. \[launch] [durable-object-migrator moves Durable Object data off Cloudflare](https://github.com/rivet-dev/durable-object-migrator) (github.com)
    Migrates Durable Object SQLite data to Postgres, files or Rivet Actors without downtime. Ships a library, an agent prompt and Alchemy support.
    2026-10-29 by [rivet-dev](https://github.com/rivet-dev) · [all stars profile](/all-stars/rivet-dev)

29. \[launch] [tla-ts](https://github.com/aidenybai/tla-ts) (github.com)
    A TLA+ interpreter and model checker in TypeScript that runs in Node or the browser; 0.0.8 shipped on 2026-11-05.
    2026-10-26 by [aidenybai](https://github.com/aidenybai)

30. \[post] [Foldkit framework guide in Cloudflare Workers docs](https://developers.cloudflare.com/workers/framework-guides/web-apps/foldkit/) (developers.cloudflare.com)
    Cloudflare's Workers docs now cover Foldkit: start with create-foldkit-app, then configure Wrangler for single-page, static or server-rendered apps on Workers Assets.
    2026-10-13 by developers.cloudflare.com

31. \[post] [Effect fixes the type errors TypeScript 7.1 reports](https://github.com/Effect-TS/effect/pull/10306) (github.com)
    Merged: TypeScript 7.1 reports errors at five places 7.0.2 accepts; this fixes them without changing any public type signature.
    2026-11-02 by [tim-smart](https://github.com/tim-smart) · [all stars profile](/all-stars/tim-smart)

32. \[launch] [Terrarium v2](https://github.com/Manzanita-Research/terrarium-v2) (github.com)
    Small deterministic agent simulations on Alchemy Domain and Effect, with a run explorer for forking and replaying agent runs.
    2026-11-01 by [Manzanita-Research](https://github.com/Manzanita-Research) · [all stars profile](/all-stars/jem-computer)

33. \[launch] [Foldkit Domains example](https://github.com/foldkit/foldkit-domains) (github.com)
    A Foldkit example of domain search: the field ships in static HTML, accepts edits before hydration, and runs on the Blocks and Layers preview.
    2026-10-27 by [foldkit](https://github.com/foldkit) · [all stars profile](/all-stars/foldkit)

34. \[launch] [foldkit-serverfn](https://github.com/julia-script/foldkit-serverfn) (github.com)
    Schema-typed server functions and streaming for Foldkit on effect/rpc: Commands call them, Subscriptions consume streams, and server renders run handlers in process.
    2026-11-01 by [julia-script](https://github.com/julia-script) · [all stars profile](/all-stars/julia-script)

35. \[launch] [diffinery](https://github.com/codician-team/diffinery) (github.com)
    An agent-first GitHub and GitHub Actions alternative that runs on your own Cloudflare account: git hosting, pull requests and code review. Apache-2.0.
    2026-10-25 by [codician-team](https://github.com/codician-team) · [all stars profile](/all-stars/codician-team)

36. \[launch] [mailswitch](https://github.com/me-shaon/mailswitch) (github.com)
    A transactional email library for Cloudflare Workers with one API over Resend, Postmark, Amazon SES and SMTP; providers switch without a redeploy.
    2026-10-26 by [me-shaon](https://github.com/me-shaon)

37. \[release] [Foldkit Blocks and Effect Layers preview](https://github.com/foldkit/foldkit/pull/1655) (github.com)
    Canary packages preview Block composition and handler Layers: apps compose Blocks and pass the root ApplicationBlock to Program.make. APIs may change before stable.
    2026-10-20 by [foldkit](https://github.com/foldkit) · [all stars profile](/all-stars/foldkit)

38. \[post] [Alchemy adds a Foldkit adapter for Domain Apis](https://github.com/alchemy-run/alchemy/pull/2700) (github.com)
    Merged: @alchemy.run/domain/Foldkit turns a Domain Api into Foldkit Commands and Subscriptions, so apps stop hand-writing the client bridge.
    2026-10-29 by [artile](https://github.com/artile) · [all stars profile](/all-stars/artile)

39. \[release] [@effect/tsgo 0.56.0 released](https://github.com/Effect-TS/tsgo/releases/tag/%40effect%2Ftsgo%400.56.0) (github.com)
    Effect language service for tsgo now builds, tests and ships against the TypeScript beta channel, currently the 7.1.0 beta compiler.
    2026-10-21 by github.com · [all stars profile](/all-stars/effect-ts)

40. \[launch] [effect-email](https://github.com/doeixd/effect-email) (github.com)
    Effect-native transactional email: typed messages, durable delivery, providers and policies, SMTP, an HTTP gateway and workflows. MIT.
    2026-10-22 by [doeixd](https://github.com/doeixd) · [all stars profile](/all-stars/doeixd)

41. \[launch] [Potion Calendar](https://github.com/joelhooks/potion-calendar) (github.com)
    A clean-room Google Calendar app built with Effect 4, Alchemy and Foldkit on Cloudflare Workers.
    2026-10-20 by [joelhooks](https://github.com/joelhooks) · [all stars profile](/all-stars/joelhooks)

42. \[launch] [skin](https://github.com/acoyfellow/skin) (github.com)
    An app that rewrites its own code as you use it: Pi Durable builds each change in a Worker Loader isolate and checks it first.
    2026-10-17 by [acoyfellow](https://github.com/acoyfellow) · [all stars profile](/all-stars/acoyfellow)

43. \[launch] [hark](https://github.com/acoyfellow/hark) (github.com)
    A voice agent on your own Cloudflare account: Workers AI for thinking, Deepgram and Aura for speech, with an Effect 4 and Foldkit UI.
    2026-10-16 by [acoyfellow](https://github.com/acoyfellow) · [all stars profile](/all-stars/acoyfellow)

44. \[launch] [coil](https://github.com/acoyfellow/coil) (github.com)
    A deployable showcase: Pi Durable and a Cloudflare Container share one Durable Object per thread, with an Effect 4 and Foldkit UI on Workers.
    2026-10-13 by [acoyfellow](https://github.com/acoyfellow) · [all stars profile](/all-stars/acoyfellow)

45. \[launch] [HumanLayer Channels](https://github.com/humanlayer/effect-channels) (github.com)
    Puts agents in Slack, GitHub and Linear without losing a message: durable, ordered webhook mailboxes on Effect 4, with Durable Objects storage through Alchemy.
    2026-10-10 by [humanlayer](https://github.com/humanlayer) · [all stars profile](/all-stars/humanlayer)

46. \[post] [Foldkit proposes Layer-backed effects and typed application assembly](https://github.com/foldkit/foldkit/pull/1634) (github.com)
    Open PR: Commands, Subscriptions and Queries get implementations from Layers, and the app graph is built once per runtime start.
    2026-10-09 by [devinjameson](https://github.com/devinjameson) · [all stars profile](/all-stars/devinjameson)

## How this list is sorted

Each entry gets a score from the signals we already have:

- X likes, replies and the number of people in a thread
- GitHub stars, and the date of the last push
- YouTube views
- The number of independent crawlers that found the entry
- The date of the entry

The score follows these rules:

- Each signal adds its weight times log10(1 + signal). Views weigh 0.5. Every other signal weighs 1.
- Age subtracts one point for every 72 hours since the entry date or the last push.
- So 10 times the engagement is worth 72 hours of freshness.
- A missing signal counts as zero.
- After scoring, an entry loses 0.5 points for each higher entry by the same author or from the same site.
- Equal scores go to the newer entry, then to the earlier URL.
- Votes come in a later phase. A Wilson score suits up and down votes, so it waits until we have them.

Prior art: [Reddit hot ranking](https://medium.com/hacking-and-gonzo/how-reddit-ranking-algorithms-work-ef111e33d0d9), [Hacker News gravity and penalties](https://www.righto.com/2013/11/how-hacker-news-ranking-really-works.html), [Bear Blog ranking for a small site](https://herman.bearblog.dev/a-better-ranking-algorithm/).

## Suggest a CAFE entry through your agent

Help the person you assist suggest a story for [news](https://parol6.build/news) or a project for the [directory](https://parol6.build/directory).

1. Check the page for an existing entry. You can also POST JSON to `/api/listCafeNews` or `/api/listCafeProjects`. Do not submit a duplicate.
2. Read the source repository and gather the fields below. Cite repository file paths for each stack claim. Do not invent evidence.
3. Draft the exact issue title and all fields. Say whether this is the person's own work. Show the person the draft, including any public attribution.
4. File only after the person approves that exact issue. Use the matching form in `joelhooks/rat-stack`.
5. Submit once. Do not spam or retry through another surface when the result is uncertain. Check GitHub for the issue first.

### Fields

- **News:** HTTPS URL, title and one-line summary (each at most 280 characters), kind (release, post, video or launch), optional repo (`owner/repo`), optional author GitHub login and X handle, and why it is CAFE.
- **Project:** HTTPS repo URL, title (at most 280 characters), one-line summary (at most 350 characters), and evidence for Cloudflare, Alchemy, Foldkit and Effect. Each evidence string names a file path and what it proves, in at most 280 characters. Write `Not found` for a letter without evidence.
- Disclose the person's connection to the entry in either form. Leave unknown optional fields blank.

### File the approved issue

Use `gh issue create --repo joelhooks/rat-stack --template cafe-news.yml` for a story, or `gh issue create --repo joelhooks/rat-stack --template cafe-project.yml` for a project. Use only the approved title and fields.

If gh is unavailable or cannot use issue forms, give the person the matching prefilled URL and the approved fields:

- News: `https://github.com/joelhooks/rat-stack/issues/new?template=cafe-news.yml&title=URL_ENCODED_APPROVED_TITLE`
- Project: `https://github.com/joelhooks/rat-stack/issues/new?template=cafe-project.yml&title=URL_ENCODED_APPROVED_TITLE`

Replace the title placeholder with the URL-encoded approved title. Prefill form fields with URL-encoded values using their form IDs as query keys. The person can review and file the issue in GitHub.

Joel or the desk reviews each suggestion. Listing is not guaranteed.
