ffef3b14a12507cf1716ab78c405a355879f78d4
Evoke
SvelteKit 5 + Bun + shadcn-svelte + PocketBase.
Setup
bun install
cp .env.example .env # optional: override PocketBase URL
bun run dev
- Dev: http://localhost:5173
- PocketBase: https://pocketbase.ccllc.pro (set
PUBLIC_POCKETBASE_URLin.envto override)
Stack
- SvelteKit 5 – app framework
- Bun – package manager & runtime
- shadcn-svelte – UI components (Tailwind,
$lib/components/ui) - PocketBase – API at
https://pocketbase.ccllc.pro
Chat (Voxer-style)
- Channels: Sign in, then go to Open channels or
/channels. Create a channel or open one. - Channel view: Unified feed of voice, text, image, and video messages with realtime updates.
- Voice (PTT): Hold the “Hold to talk” button (or Space) to record; release to send. Uses
audio/webm;codecs=opus. - Text: Type in the composer and click Send.
- Photo/Video: Use the “Photo / Video” button to attach and send.
- PocketBase setup: Create the
channelsandmessagescollections in the PocketBase Admin. See docs/POCKETBASE_SETUP.md for fields and API rules.
PocketBase
- Server: Use
event.locals.pbinhooks.server.ts, load functions, and form actions. Auth is synced via cookies. - Client: Use
createPocketBase()from$lib/pocketbasefor a client-side instance (e.g. inonMountor component logic). - Health check:
GET /api/health– reports app and PocketBase reachability.
Add more shadcn components
bunx shadcn-svelte@latest add card
bunx shadcn-svelte@latest add input
Scripts
| Command | Description |
|---|---|
bun run dev |
Start dev server |
bun run build |
Production build |
bun run preview |
Preview production build |
Description
Languages
Svelte
62.4%
TypeScript
28.4%
JavaScript
5.5%
CSS
2.9%
HTML
0.8%