Ree-Board is a collaborative retro board application for teams, built with Next.js, TypeScript, and modern full-stack tooling. It supports real-time collaboration, user authentication, and role-based access control.
- Real-time Collaboration: Updates are instantly reflected for all users via Ably.
- Authentication: Secure login with Kinde.
- Role-based Access: Owner, member, and guest roles for boards.
- Board & Post Management: Create, update, and delete boards and posts.
- Voting & Tasks: Upvote posts, assign action items, and track task status.
- Responsive UI: Built with Tailwind CSS and Shadcn/ui components.
- Error Monitoring: Integrated with Sentry.
- Frontend: Next.js (App Router), React, TypeScript, Tailwind CSS, Shadcn/ui
- Backend: Next.js API routes, Drizzle ORM, Turso (SQLite)
- Auth: Kinde
- Realtime: Ably
- Testing: Jest, ts-jest
- Other: Preact Signals, Lucide Icons
- Node.js (v18+ recommended)
- pnpm (or npm/yarn)
- Turso account (for SQLite DB)
- Kinde account (for authentication)
- Ably account (for realtime)
-
Clone the repo:
git clone https://github.com/DW225/ree-board.git cd ree-board -
Install dependencies:
pnpm install
-
Configure environment variables:
- Copy
.env.exampleto.env.localand fill in your credentials for Turso, Kinde, Ably, and Sentry.
- Copy
-
Run database migrations:
-
For local development:
# Start the local Turso DB first pnpm dev:sql # Then run local migrations pnpm push:dev
-
For production:
pnpm push
-
-
Start the development server:
pnpm dev
-
Run tests:
pnpm test
app/- Next.js app directory (pages, layouts, API routes)components/- UI and feature componentslib/- Utilities, database logic, types, and constantsdb/- Drizzle ORM schema and migration scriptspublic/- Static assetshooks/- React hooksdrizzle/- Drizzle migration metadata
pnpm dev- Start development serverpnpm build- Build for productionpnpm start- Start production serverpnpm test- Run tests
See .env.example for all required variables.