Quick start
This guide gets you from a fresh clone to a running /api/v1/* service against the Firebase emulators in about 5 minutes.
Prerequisites
Section titled “Prerequisites”- Node.js 22+
- Firebase CLI —
npm install -g firebase-tools - (Optional) A Firebase project if you want to run against real Firebase instead of the emulators.
1. Clone and install
Section titled “1. Clone and install”git clone https://github.com/bbthorson/vox-pop-core.gitcd vox-pop-corenpm install2. Start the Firebase emulators
Section titled “2. Start the Firebase emulators”In one terminal:
npx firebase emulators:start --only auth,firestore,storage --project demo-vox-popThe demo- project prefix tells the CLI not to require credentials — the emulators run entirely locally.
3. Start core-api in emulator mode
Section titled “3. Start core-api in emulator mode”In a second terminal:
VOXPOP_USE_EMULATOR=true npm run dev -w @vox-pop/core-apiThe service listens on http://localhost:8080. Smoke test:
curl http://localhost:8080/health# → {"ok":true}
curl http://localhost:8080/# → {"service":"vox-pop-core-api", ...}4. Hit a real endpoint
Section titled “4. Hit a real endpoint”Most /api/v1/* endpoints require an authenticated bearer token. For local exploration, mint an emulator ID token via the Firebase Auth emulator UI (http://localhost:9099), then:
curl http://localhost:8080/api/v1/users/me \ -H "Authorization: Bearer $ID_TOKEN"Next steps
Section titled “Next steps”- Configure for production deploy — see Configuration.
- Browse the full endpoint surface — see API reference.