Agatha.AI: Remix demo
A ChatGPT-style chat UI I built as a portfolio and learning project. Replies are mock lorem ipsum (no live LLM), so demos stay cheap and the real work stays on product engineering: auth, routing, data shape, and tests.
- Demo: agatha.ai.wencano.com
- Source: github.com/wencano/agatha.ai
Problem
A chat product needs more than a textarea. You want accounts, sessions, a conversation layout, and tests in place before you wire a real model.
Solution
Full-stack Remix app with TypeScript, Tailwind, Postgres, and Docker for local setup. Vitest covers units; Cypress covers the critical paths. The chat shell is written so a future LLM adapter can replace the mock generator without rewriting the UI.
Impact
- Shows the full path from schema and API boundaries through E2E flows.
- Mock replies keep screenshots and demos stable for reviewers.
Lessons learned
- Keep message rendering and streaming hooks abstract early so you can swap the model later.
- Unit and E2E tests catch different bugs: React trees vs server loaders.
- Dockerized Postgres removes a lot of “works on my machine” friction.
Tech stack
- Framework: Remix, React, TypeScript
- Styling: Tailwind CSS
- Database: PostgreSQL
- DevOps: Docker
- Testing: Vitest, Cypress
Screenshots
Login

Signup

Home

Chat detail
