A minimal chat interface for exploring Retrieval-Augmented Generation (RAG) with LLM streaming responses.
Learning project — Built to learn RAG systems, Svelte 5, and LLM integration from scratch. Not intended for production use.
Pulsar Chat is the frontend part of a two-repo learning project:
- pulsar-chat (this repo) — SvelteKit chat interface with streaming responses
- pulsar-api — FastAPI backend with RAG pipeline and LLM integration
The goal is to understand RAG end-to-end by building it, not by reading about it.
| Layer | Technology |
|---|---|
| Framework | SvelteKit + Svelte 5 (runes) |
| Language | TypeScript (strict) |
| Styling | Tailwind CSS 4 |
| Runtime | Bun |
| Testing | Vitest + Playwright |
| Container | Docker (multi-stage) |
# Prerequisites: Bun (https://bun.sh)
curl -fsSL https://bun.sh/install | bash
# Clone and install
git clone https://github.com/zurek11/pulsar-chat.git
cd pulsar-chat
bun install
# Configure
cp .env.example .env
# Start dev server
bun devdocker build -t pulsar-chat .
docker run -p 3000:3000 pulsar-chatMake sure pulsar-api is running on http://localhost:8000.
- 💬 Chat interface with streaming LLM responses
- 🗑️ Clear chat history
- ⚡ Real-time token streaming via SSE
- 📱 Responsive design
- 🐳 Dockerized with multi-stage build
bun dev # Start dev server (port 5173)
bun test:unit # Run unit tests
bun test:e2e # Run e2e tests
bun run check # Type checking
bun run lint # Linting
bun run format # Code formattingThis section will be updated as the project progresses.
- SvelteKit project setup with Bun
- Svelte 5 runes ($state, $derived, $effect)
- Streaming API responses (SSE / ReadableStream)
- Tailwind CSS 4 theming
- Vitest + Playwright testing
- Claude Code workflow (CLAUDE.md, skills, settings)
- Docker multi-stage builds
- RAG fundamentals (chunking, embeddings, retrieval)
MIT