<aside> <img src="/icons/code_blue.svg" alt="/icons/code_blue.svg" width="40px" />

Configuration Management

Version control, build and release, environments, document control and problem tracking.

</aside>

Version control

<aside> <img src="/icons/code_gray.svg" alt="/icons/code_gray.svg" width="40px" />

Repository GitHub Wyco68/CulpritWeb, branch main. A mirror, culpritteam/web, serves the production deployment.

Branches One branch per feature or fix, named feat/, fix/, perf/ or chore/.

Pull requests Features and fixes reach main through pull requests (#1 to #41).

Commit messages Start with feat, fix, perf, build, refactor, docs or revert, so the history reads as a changelog.

</aside>


Build and release

Workflow Trigger What it does
Staging pipeline Every merge to main Test (lint, type check, unit tests), migrate the database, build and push the Docker image, deploy to the VPS with a 90-second health check and automatic rollback
Production release By hand Deploy the Vercel project after the change is checked on staging
Neon standby sync Every 6 hours Mirror Supabase into the Neon standby and check row counts
Keep-alive Daily, Vercel Cron Keep the free Supabase project from pausing
Spec pages Changes to the spec pages Publish the project spec pages to GitHub Pages

Environments

Environment Address Runs on Settings from
Developer machine localhost:3000 Node.js Doppler culprit/stg
Staging culprit.wyco-dev.com Docker on a VPS, behind Caddy and Cloudflare Doppler culprit/stg
Production culprits-mystery.party Vercel, behind Cloudflare Vercel project settings
Standby None Neon, database only Doppler, read by the sync job

Document and decision control

<aside> <img src="/icons/document_blue.svg" alt="/icons/document_blue.svg" width="40px" />

Documents

Follow SE-DOC-000 v3.0: Notion is the primary workspace, approved documents are archived to Google Drive, and every document carries an ID, a version and a status in the Documents register.

</aside>

<aside> <img src="/icons/checkmark_green.svg" alt="/icons/checkmark_green.svg" width="40px" />

Design decisions

Written as ADRs (ADR-001 to ADR-024) and listed in the Decisions register.

</aside>