No description
Find a file
2025-06-18 08:30:12 -07:00
e2e init 2025-06-13 14:14:24 +01:00
src privacy mode (#22) 2025-06-18 08:30:12 -07:00
static init 2025-06-13 14:14:24 +01:00
.gitignore init convex (#1) 2025-06-13 07:19:15 -07:00
.npmrc init 2025-06-13 14:14:24 +01:00
.prettierignore mobile stuff 2025-06-16 07:07:37 -05:00
.prettierrc api keys (#3) 2025-06-14 04:40:01 -07:00
convex.json togglable sidebar 2025-06-16 07:01:15 -05:00
eslint.config.js add more icons 2025-06-18 11:05:28 +01:00
jsrepo.json enable/disable mutation 2025-06-14 09:28:12 -05:00
package.json Merge branch 'main' into model-picker 2025-06-18 08:43:56 -05:00
playwright.config.ts api keys (#3) 2025-06-14 04:40:01 -07:00
pnpm-lock.yaml Merge branch 'main' into model-picker 2025-06-18 08:43:56 -05:00
README.md update readme 2025-06-18 15:31:02 +01:00
svelte.config.js api keys (#3) 2025-06-14 04:40:01 -07:00
tsconfig.json Merge branch 'main' into model-list 2025-06-16 13:37:19 -05:00
vite.config.ts change lucide to unplugin 2025-06-15 22:37:30 +01:00
vitest-setup-client.ts api keys (#3) 2025-06-14 04:40:01 -07:00

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
  • 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!)