A real-time collaborative retrospective tool with Python/FastAPI backend, React frontend, WebSocket sync, and SQLite storage.
- Boards with customizable columns
- Sticky note cards with drag-and-drop
- Real-time voting
- Card grouping
- Discussion timer
- Pre-built templates (Start/Stop/Continue, Mad/Sad/Glad, 4Ls, Sailboat, etc.)
- Export to PDF/CSV/JSON
- Real-time collaboration via WebSockets
- Python 3.11+
- Node.js 18+ and npm
cd backend
# Create virtual environment (use Python 3.11 for best compatibility)
python3.11 -m venv venv
source venv/bin/activate # On Windows: venv\Scripts\activate
# Install dependencies
pip install -r requirements.txt
# Start the server
uvicorn app.main:app --reloadThe backend will be available at http://localhost:8000
cd frontend
# Install dependencies
npm install
# Start development server
npm run devThe frontend will be available at http://localhost:5173
- Open http://localhost:5173 in your browser
- Create a new board by entering a title and selecting a template
- Share the board URL with your team
- Add cards, vote, drag-and-drop to organize
- Use the timer for timeboxed discussions
- Export results in JSON, CSV, or PDF format
POST /api/boards- Create board (optionally from template)GET /api/boards/{slug}- Get full board statePATCH /api/boards/{slug}- Update board settingsPOST /api/boards/{slug}/columns- Create columnPOST /api/boards/{slug}/columns/{id}/cards- Create cardPOST /api/boards/{slug}/cards/{id}/vote- Toggle votePOST /api/boards/{slug}/timer/start|stop|reset- Timer controlGET /api/boards/{slug}/export/csv|pdf|json- ExportGET /api/templates- List templates
Connect: ws://localhost:8000/ws/{board_slug}?session_id={uuid}
Events:
card:create,card:update,card:move,card:deletevote:togglegroup:create,group:dissolvetimer:start,timer:stop,timer:reset
- Start/Stop/Continue - Classic retrospective format
- Mad/Sad/Glad - Focus on team emotions
- 4Ls - Liked, Learned, Lacked, Longed For
- Sailboat - Wind, Anchor, Rocks, Island metaphor
- What Went Well / What Didn't - Simple two-column format
- KALM - Keep, Add, Less, More
- FastAPI
- SQLAlchemy (async)
- SQLite with aiosqlite
- WebSockets
- ReportLab (PDF generation)
- React 18
- TypeScript
- Vite
- Tailwind CSS
- @hello-pangea/dnd (drag-and-drop)
- Zustand (state management)
- Radix UI (accessible components)
- Lucide React (icons)