CLI (Go)
Prerequisites
- Go 1.26+
gitmakeavailable in your shell
Clone repository
Bootstrap tools and modules
Daily development loop
Run the CLI locally
Install local binary
Key code locations
apps/cli/cmd/: Cobra commands, flags, and CLI output behaviorpkg/i18nconfig/:i18n.ymlandi18n.jsoncparsing and validationapps/cli/internal/i18n/runsvc/:runplanning and execution flowapps/cli/internal/i18n/syncsvc/: sync orchestration and conflict logicinternal/i18n/storage/: adapter contracts and provider integrations
Before opening a PR
Go Lambda workers
Queue-backed Go Lambdas underapps/*-lambda deploy to production through the Lambda Deploy GitHub Actions workflow on prod. Path filters decide which functions build on each push; concurrency is scoped per deploy job so unrelated merges do not cancel another function’s deploy.
See Lambda deployment for filters, concurrency rules, and adding a worker.
Platform web app
The Next.js app lives inapps/hyperlocalise-web. See apps/hyperlocalise-web/README.md for setup, .env, Postgres, and vp run dev.
Contributor conventions (Hono routes, Drizzle migrations, API envelopes, E2E) are in apps/hyperlocalise-web/AGENTS.md.
Canva app OAuth (Developer Portal URLs, CANVA_OAUTH_* env): Canva app OAuth.
Prerequisites
- Docker for PostgreSQL (
docker compose up -dfrom the repo root) vpwithvp env setupmake bootstrapfrom the repository root
Daily loop
Fromapps/hyperlocalise-web:
go-svc sidecar
apps/go-svc hosts segment validation, native CRUD APIs (dictionaries, glossaries, translation memory, teams, native projects, native job reads), personal access token management, public PAT/agent job reads, public translation download, Domains research, Search Console proxies, and Hyperlab OFREP evaluate routes.
The web app uses two call paths:
Job creation (
POST /api/v1/jobs on the web app) and the Platform Jobs UI still use Hono /api/orgs/.../jobs. Session-authenticated native job reads are also implemented on go-svc at /v1/orgs/{slug}/projects/{id}/jobs... and /v1/orgs/{slug}/jobs... (see apps/go-svc/README.md). Public PAT/agent job reads (GET /v1/jobs/latest, /v1/jobs/{jobId}, /v1/jobs/{jobId}/status) are go-svc only on https://api.hyperlocalise.com — do not re-add them to Hono.
For local development, start Postgres and Valkey (docker compose up -d), run migrations, then run go-svc with matching WORKOS_*, WORKOS_COOKIE_PASSWORD, and VALKEY_URL=redis://localhost:6379. Set both GO_SVC_URL=http://127.0.0.1:8080 and NEXT_PUBLIC_API_BASE_URL=http://127.0.0.1:8080 in apps/hyperlocalise-web/.env, plus GO_SVC_CORS_ORIGINS=http://localhost:3000 on go-svc. Domains research also needs DATAFORSEO_API_KEY on go-svc. Full steps: apps/go-svc/README.md#local-development.
Design notes: docs/adr/2026-09-22-web-go-svc-api-client-design.md and docs/adr/2026-09-20-go-svc-workos-access-token-design.md.
Before opening a web PR
Runvp check --fix and vp test in apps/hyperlocalise-web. Go changes in the monorepo still need make fmt, make lint, and make test from the root when touched.
