2.8 KiB
2.8 KiB
Todo3
Visually, this is an attempt at replicating lovely TUI aesthetics on the web. It isn't actually rendered in text, but everything is based around the ch unit.
Functionally, it's a real-time collaborative todo list, exclusively via WebSockets with optimistic updates. No REST here, not even for authentication. Whether or not this is a good idea remains to be seen.
Tech Stack
- Frontend: React, Vite
- Backend: Elysia, Bun, SQLite
- Real-time: WebSockets
Development
cp .env.example .env
# fill in your values
With Docker (recommended)
bun install
docker compose -f docker-compose.dev.yml up
Frontend: http://localhost:5173 Backend: http://localhost:3000
Production
docker compose up --build
Environment Variables
| Variable | Description |
|---|---|
PUBLIC_WS_URL |
WebSocket URL for frontend |
PUBLIC_BOX_DRAWING_CHARS |
The 8 characters for box drawing. The default value ─│┌┐└┘├┤ results in boxes that are a bit too nice, you can also try –|++++++ for a simpler style |
HOST |
Allowed host for Vite |
FE_PORT |
Frontend port (external) |
BE_PORT |
Backend port (external) |
JWT_SECRET |
Secret for JWT signing |
SIGNUP_SECRET |
Required for user registration |
ADMIN_EMAIL |
Contact email for signup errors |
DB_PATH |
Path to SQLite database |
