No description
Find a file
2025-06-18 15:40:37 -07:00
e2e init 2025-06-13 14:14:24 +01:00
src feat: Display open router key usage (#27) 2025-06-18 15:40:37 -07:00
static fix copy 2025-06-18 19:48:39 +01:00
.env.example g auth 2025-06-18 18:59:54 +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 copy btn 2025-06-18 19:40:10 +01:00
playwright.config.ts api keys (#3) 2025-06-14 04:40:01 -07:00
pnpm-lock.yaml copy btn 2025-06-18 19:40:10 +01:00
README.md update readme (pls its just the readme todo list) 2025-06-18 20:07:59 +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

  • 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

  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

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 (kinda)
  • 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