Files
movie-select/CLAUDE.md

1.2 KiB

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

bun install
bun run dev            # frontend (Vite)
bun run dev:server     # backend (Bun --watch)

Deployment

./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/.

bun run db:generate
bun run db:migrate