# movie-select — Collaborative Movie Picker Collaborative movie selection app where groups vote on movies to watch together. ## Stack - **Frontend:** React 19, Vite, Tailwind CSS 4, TanStack Router, TanStack Query - **Backend:** Hono (Bun), Drizzle ORM, PostgreSQL - **Linting:** Biome 2.x (tabs, 80 chars, double quotes) ## Project Structure ``` src/ ├── client/ ← React SPA (routes/, components/, hooks/, lib/) ├── server/ ← Hono API (features/, shared/) └── shared/ ← isomorphic code (types, algorithms) ``` ## Local Development ```bash bun install bun run dev # frontend (Vite) bun run dev:server # backend (Bun --watch) ``` ## Deployment ```bash ./deploy.sh ``` Deploys to Uberspace (`serve.uber.space`): - Frontend → `/var/www/virtual/serve/html/movie-select/` - Backend → `~/services/movie-select/` (systemd: `movie-select.service`, port 3003) - Route: `/movie-select/api/*` → port 3003 (prefix removed) ## Environment Variables See `.env.example`: - `DATABASE_URL` — PostgreSQL connection string - `PORT` — server port (default 3003) ## Database PostgreSQL via Drizzle ORM. Migrations in `drizzle/`. ```bash bun run db:generate bun run db:migrate ```