
The shell around a chat: workspace switcher, new chat, search, thread history grouped by recency with pinned threads on top, and an account menu at the foot. Renaming, pinning, sharing and deleting all work, on demo data you swap for your own backend. Not a generic app shell: everything in it exists for a chat product, and chat-1 is what mounts in the middle. It assumes no router, so it drops into the app you already have.
@shadcncraft
lib/demo-threads.ts is the file to delete. Implement ThreadStore's four methods against your own backend, pass the result as store, and the optimistic updates in lib/threads-store.tsx keep working unchanged.






















