One repo for the backend, the chat interface, and the public site.

Shaman now has a clean separation: Express + tRPC for server work, Svelte for the live app, and Astro for the marketing and publishing surface.

What ships now

Typed backend

tRPC handles app RPC and Express owns the streaming chat endpoint.

Modern chat client

The old standalone HTML prototype is now implemented in the Svelte app shell.

Blog-ready site

Astro content collections provide a simple publishing surface from the first pass.