← ClaudeAtlas

build-fountain-applisted

Build an application on top of the Fountain API — a browser app, a bot, an internal tool, anything that hires agents, sends them prompts and renders what they do. Use whenever the user says "build an app on Fountain", "a client for Fountain", "another fountain-team / workbench / demo app", "Sign in with Fountain", or wants to ship something that talks to /api from its own origin. Covers the published TypeScript SDK (@agentshit/fountain-sdk), the shape (static SPA on the SDK, or a small server in front), auth (OAuth code + PKCE, tokens are API keys), streaming, the server-side registration an app needs (API_CORS_ORIGINS, OAUTH_CLIENTS), a hosting recipe for any static host or container, and the traps every previous app hit.
BinaryBourbon/fountain · ★ 14 · AI & Automation · score 70
Install: claude install-skill BinaryBourbon/fountain
# Build an app on Fountain Fountain's own UI is a console. Every product surface that talks to a person is a separate app on `/api`, on its own origin, with no privileged access. Three of them are the reference implementations — clone their shape rather than inventing one: | Example | Shape | Study it for | |---|---|---| | [fountain-team](https://github.com/jhgaylor/fountain-team) | static SPA, raw `fetch` (predates the SDK) | roster + thread + queue, team stream, PKCE sign-in (`src/lib/oauth.ts`) | | [fountain-workbench](https://github.com/BinaryBourbon/fountain-workbench) | SPA **plus a Bun server** (`server/`) | when an app needs its own backend: shared projects, a member never holds the owner's key, project-scoped proxy of `/api`, an MCP surface for the agent | | [fountain-demos](https://github.com/jhgaylor/fountain-demos), an index of [briefing-room](https://github.com/jhgaylor/briefing-room), [table-talk](https://github.com/jhgaylor/table-talk), [repo-sage](https://github.com/jhgaylor/repo-sage), [mission-control](https://github.com/jhgaylor/mission-control), [watchtower](https://github.com/jhgaylor/watchtower), [arena](https://github.com/jhgaylor/arena), [mend](https://github.com/jhgaylor/mend), [rounds](https://github.com/jhgaylor/rounds) | one static app per repo, all cloned from [dns-desk](https://github.com/jhgaylor/dns-desk); Mend and Rounds add a Bun `server/` because a GitHub App private key cannot live in a browser | a container recipe (Dockerfile + nginx + b