The Generate application portal — applications, reviews, and the hiring pipeline.
It has two parts:
backend/— Go API (Fiber + Huma) backed by Supabase Postgres.frontend/— Next.js app (App Router) using Supabase auth.
For the domain model and the full application → review → interview → selection pipeline, see info.md.
- Go 1.25+ (backend)
- Node.js 20+ and npm (frontend)
- A Supabase project (Postgres + auth)
- Optionally Docker to run the backend in a container
The Go backend connects to Supabase Postgres and can run directly on your machine or in Docker.
Copy backend/.env.example to backend/.env and set:
PORT— defaults to8080DATABASE_URL— Supabase Session Pooler URL formake runDATABASE_URL_DOCKER— same Supabase Session Pooler URL formake docker-up
From backend/:
make runFor development, make dev watches .go files and automatically rebuilds and
restarts the server on save. It uses air
(configured in backend/.air.toml) and installs it on first
run if it isn't already present.
From backend/:
make devFrom backend/:
make docker-upGET /healthz— liveness check for the app processGET /readyz— readiness check that pings Supabase PostgresGET /docs— Scalar API docs (OpenAPI at/openapi.json)
From backend/:
make dev— run with hot reload (rebuilds on file save)make fmt— format Go code and supported docsmake fmt-check— check formatting without changing filesmake lint— rungo vetandgolangci-lint(config in backend/.golangci.yml)make test— run Go testsmake build— build the backend binarymake openapi— write the OpenAPI spec tobackend/api/openapi.yaml(source for frontend codegen)make docker-down— stop the Docker Compose stack
The Next.js frontend talks to the Go backend and uses Supabase for auth.
Copy frontend/.env.example to frontend/.env and set:
NEXT_PUBLIC_API_URL— backend base URL (defaults tohttp://localhost:8080)NEXT_PUBLIC_SUPABASE_URL— your Supabase project URLNEXT_PUBLIC_SUPABASE_PUBLISHABLE_KEY— your Supabase publishable (anon) key
From frontend/:
npm install
npm run dev # start the dev server at http://localhost:3000From frontend/:
npm run dev— start the dev servernpm run build— production buildnpm run start— serve the production buildnpm run lint— run ESLintnpm run format:check— check formatting with Prettiernpm test— run unit tests (Vitest)npm run generate:api— regenerate the typed API client from the OpenAPI spec
The frontend's src/generated/ API client is generated from the backend's
OpenAPI spec with Orval. After changing the backend API,
run make openapi (backend) then npm run generate:api (frontend). See
frontend/README.md for details.
GitHub Actions run on every pull request to main:
- Backend CI — gofmt,
go vet, golangci-lint,go test,go build - Frontend CI — lint, type-check, format, test, build
See .github/ for the workflows, Dependabot config, and PR template.