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
- Components: Melt UI (next-gen)
- Testing: Humans
- Package Manager: pnpm
- Linting: ESLint
- Formatting: Prettier
Discussion
- Vercel SDK?
- Nah, too limited
📦 Self-hosting
IDK, calm down
TODO
- Login & Auth
- useCachedQuery
- Convex schemas for chats
- Actual fucking UI for chat
- Providers (BYOK)
- Openrouter
- HuggingFace
- OpenAI
- File upload
- Test link with free credits
- Ensure responsiveness
- File support
- Streams on the server
- Syntax highlighting with Shiki/markdown renderer
- Eliminate FOUC
- Cascade deletes and shit in Convex
- Error notification central, specially for BYOK models like o3
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
Extra
- Web Search
- MCPs
- Chat branching
- Image generation
- Chat sharing
- 404 page/redirect