No description
|
|
||
|---|---|---|
| e2e | ||
| src | ||
| static | ||
| .gitignore | ||
| .npmrc | ||
| .prettierignore | ||
| .prettierrc | ||
| convex.json | ||
| eslint.config.js | ||
| jsrepo.json | ||
| package.json | ||
| playwright.config.ts | ||
| pnpm-lock.yaml | ||
| README.md | ||
| svelte.config.js | ||
| tsconfig.json | ||
| vite.config.ts | ||
| vitest-setup-client.ts | ||
thom-chat
Clone of T3 Chat
🚀 Features
- Fast chat goes brrrr
- Self-hostable
🛠️ 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
📦 Self-hosting
TODO: test self-hosting, including Convex self-hosting perhaps TODO: add instructions
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
- Error notification central, specially for BYOK models like o3
- 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
Extra
- Web Search
- MCPs
- Chat branching
- Regenerate message
- Image generation
- Chat sharing
- 404 page/redirect
- Test link with free credits
- Cursor-like Rules (@ieedan's idea!)