2 KiB
2 KiB
thom.chat
Clone of T3 Chat
🚀 Features
- Cached query for fast chat loading
- Openrouter provider for access to 400+ models
- File uploads
- Web search
- Full-text search over your chat history
- Cursor-like rules
- Privacy mode for streams and screen-sharing
- Markdown rendered messages with syntax highlighting
- Chat sharing
- Keyboard shortcuts
🛠️ Tech Stack
- Framework: SvelteKit
- Language: TypeScript
- Styling: Tailwind
- Backend: Convex
- Auth: BetterAuth + Convex
- Components: Melt UI (next-gen)
- Testing: Humans
- Package Manager: pnpm
- Linting: ESLint
- Formatting: Prettier
📦 Running locally
- Clone the repo
- Install dependencies with
pnpm install - Copy
.env.exampleto.envand fill in the values - Run
pnpm dev - Open http://localhost:5173
TODO
- Login & Auth
- useCachedQuery
- Convex schemas for chats
- Actual fucking UI for chat
- Providers (BYOK)
- Openrouter
[ ] HuggingFace[ ] OpenAI
- File upload
- Ensure responsiveness
- Streams on the server (Resumable streams)
- Syntax highlighting with Shiki/markdown renderer
- Eliminate FOUC
- Cascade deletes
- Google Auth
- Fix light mode (urgh)
- Privacy mode
Chat
- loading state
- deal with error states, both on creation attempt and message generation failure
- delete conversations option
- conversation title generation
- kbd powered popover model picker
- autosize
- AbortController for message generation
- Per route msg persistance
Extra
- Web Search
- Chat branching
- Regenerate message
[ ] Image generation- Chat sharing
- 404 page/redirect
[ ] Test link with free credits- Cursor-like Rules (@ieedan's idea!)
- Full-text search