CAFE all stars
What it does
CAFE all stars lists people and channels whose public work builds with Cloudflare, Alchemy, Foldkit21 and Effect29. A channel is a YouTube channel, a GitHub org or a blog.ΒΆ
Each entry lives in .brain/data/cafe/people.json, beside the CAFE news file.
The content build decodes it with the CafePerson schema25 in packages/core/src/cafe.ts.
A bad entry fails the build with its index and field, the same way a bad news row does.ΒΆ
Five read-only capabilities answer every question about the data:ΒΆ
listPeoplelists every entry, andlistChannelslists only the channels.ΒΆreadPersonreads one profile by its stable id: a GitHub login, or the handle of an org or channel.ΒΆsearchPeoplematches words against names, handles, topics, packages, repos, bios and videos.ΒΆpeopleForreturns the entries whose topics or repo packages cover every term, with the evidence for each term.ΒΆ
The /all-stars index and each /all-stars/<id> page are built from listPeople and readPerson answers.
They are Markdown by default and HTML for a browser. llms.txt lists the index and every profile, and /all-stars.xml is an Atom feed of the entries and their activity.ΒΆ
A news row joins a profile when its GitHub login or X handle matches one of the profileβs handles. A row with no author joins the profile that owns its repo. The profile lists those rows newest first, and the row on /news links back to the profile.ΒΆ
The standard
- Every fact carries its
sourceURL and theverifieddate it was checked, so an agent can cite it.ΒΆ - A bio holds two or three sentences about CAFE work only, each quoted or linked from its source.ΒΆ
- An avatar is a file committed under
apps/site/content/avatars. Pages never load an image from another site.ΒΆ - A profile never includes location, employer guesses, family, follower counts, private messages, or anything the person did not post publicly about their work.ΒΆ
- Each page ends with a removal line that opens an issue in
joelhooks/rat-stack.ΒΆ
To remove a profile, delete its entry from people.json and its avatar file, then rebuild.
Nothing else stores the profile.ΒΆ
How to check
Run the core tests:ΒΆ
pnpm --filter @rat-stack/core exec vitest run test/cafe-people.test.ts They check that a generated news row lands on exactly the profile that authored it, newest first. They also answer three agent questions from the seed data through the capabilities alone.ΒΆ
Then call a capability27 on a running site:ΒΆ
curl --request POST 'https://ratstack.sh/api/peopleFor' \
--header 'content-type: application/json' \
--data '{"terms":["foldkit"]}'Sources
- rat-stack/packages/core/src at main Β· joelhooks/rat-stack Β· GitHub. GitHub joelhooks/rat-stack. The people schema in cafe.ts, the capabilities in cafe-directory.ts, and the join in cafe-people.ts. Accessed 2026-11-02.
Last changed 2026-11-02 in ffd1233. Source on GitHub. Change log.
Linked from
- Agent guide. An Effect stack so pure (aspirational) Kit Langton will blush.
CAFE all stars β Public profiles of people and channels who build with Cloudflare, Alchemy, Foldkit and Effect, served by five read-only capabilities.
- Change log. What changed in the files served here, newest first.
CAFE all stars β new page: feat(all-stars): CAFE people and channels as capabilities and pages
- Full agent guide. An Effect stack so pure (aspirational) Kit Langton will blush.
- 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.
- Source change history (log.md). The generated change log as Markdown.
CAFE all stars β new page: feat(all-stars): CAFE people and channels as capabilities and pages