79 lines
1.8 KiB
Markdown
79 lines
1.8 KiB
Markdown
# thom-chat
|
|
|
|
Clone of [T3 Chat](https://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
|
|
|
|
## 🛠️ 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
|
|
|
|
1. Clone the repo
|
|
2. Install dependencies with `pnpm install`
|
|
3. Copy `.env.example` to `.env` and fill in the values
|
|
4. Run `pnpm dev`
|
|
5. Open [http://localhost:5173](http://localhost:5173)
|
|
|
|
## TODO
|
|
|
|
- [x] Login & Auth
|
|
- [x] useCachedQuery
|
|
- [x] Convex schemas for chats
|
|
- [x] Actual fucking UI for chat
|
|
- [x] Providers (BYOK)
|
|
- [x] Openrouter
|
|
- ~[ ] HuggingFace~
|
|
- ~[ ] OpenAI~
|
|
- [x] File upload
|
|
- [x] Ensure responsiveness
|
|
- [x] Streams on the server (Resumable streams)
|
|
- [x] Syntax highlighting with Shiki/markdown renderer
|
|
- [ ] Eliminate FOUC
|
|
- [x] Cascade deletes
|
|
- [ ] Google Auth
|
|
- [ ] Fix light mode (urgh)
|
|
- [x] Privacy mode
|
|
|
|
### Chat
|
|
|
|
- [x] loading state
|
|
- [x] deal with error states, both on creation attempt and message generation failure
|
|
- [x] delete conversations option
|
|
- [x] conversation title generation
|
|
- [x] kbd powered popover model picker
|
|
- [x] autosize
|
|
- [x] AbortController for message generation
|
|
- [ ] Per route msg persistance
|
|
|
|
### Extra
|
|
|
|
- [x] Web Search
|
|
- [ ] Chat branching
|
|
- [ ] Regenerate message
|
|
- ~[ ] Image generation~
|
|
- [x] Chat sharing
|
|
- [ ] 404 page/redirect
|
|
- ~[ ] Test link with free credits~
|
|
- [x] Cursor-like Rules (@ieedan's idea!)
|
|
- [x] Full-text search
|