# api-company Roadmap Cross-repo milestones. Per-API phases live in each API repo's ROADMAP.md. > **As of 2026-05-30, a 4th API (VIN Decoder) has been added. Per-API phases also live in `leeworks-agents/vin-decoder`.** ## Phase 0 — Orientation (one-time) - [x] Audit cluster: nodes, namespaces, ingress, Flux state → `docs/cluster-audit.md` (issue #36 — closed ✅) - [ ] Add Flux GitRepository + Kustomization watching `leeworks-agents/api-company` — issue #218 (fork PR #399 merged to leeworks-agents/Talos; awaiting operator merge of 0xWheatyz/Talos PR #14) - [ ] Deploy `gitea-act-runner` in cluster via Flux HelmRelease (`flux/gitea-runner/`) — issue #3 - [ ] Stand up `registry.leeworks.dev` (container registry) — required before any API CI works — issue #4 - [ ] Validate ESO HelmRelease deployment and ExternalSecret sync for all 4 API namespaces — issue #178 - [ ] Extend full-stack Flux validation checklist to cover VIN Decoder — issue #179 (extends #66) ## Phase 1 — API Contracts Each API repo writes its `openapi.yaml` first and lints it. Spec is the source of truth. - See: `leeworks-agents/zip-enrichment`, `holidays`, `air-quality`, `vin-decoder` ## Phase 2 — Data Per-API: pull free public data sources, cache locally (SQLite or in-memory), schedule monthly re-seed. - [x] VIN Decoder: NHTSA vPIC as data source — SQLite cache seeded on demand (issue #120 — closed ✅) ## Phase 3 — Servers Per-API: implement Fastify/FastAPI service matching `openapi.yaml` exactly. RapidAPI proxy-secret middleware on every route. - [x] VIN Decoder: Fastify server implementation (issue #121 — closed ✅) ## Phase 4 — Monitoring - [ ] Prometheus + Grafana via Flux HelmRelease (`flux/monitoring/`) — issue #7 - [ ] Gatus public status page at `status.leeworks.dev` — issue #8 - [x] Instrument every API with `api_requests_total`, `api_response_duration_seconds`, `api_data_freshness_seconds` (issue #27 — closed ✅) - [x] Add Prometheus metrics endpoint to holidays service (issue #180 — closed ✅) - [ ] Verify VIN Decoder metrics endpoint and ServiceMonitor scrape config — issue #231 - [x] VIN Decoder metrics instrumentation + Grafana dashboard (issue #129 — closed ✅) - [x] VIN Decoder Gatus health check (issue #134 — closed ✅) - [x] Enable Alertmanager in kube-prometheus-stack + configure Slack receiver for SLO alerts (issue #210 — closed ✅) ## Phase 5 — Documentation site - [x] `docs-site/` Astro + Redoc skeleton (issue #28 — closed ✅) - [x] Gitea Actions pipeline that copies per-API `openapi.yaml` files at build time (issues #29 ✅, #38 ✅, #85 ✅) - [ ] Deploy to `docs.leeworks.dev` via Flux — issue #30 - [x] One SEO blog post per API minimum (issues #39 ✅ — ZIP/Holidays/AirQuality, #124 ✅ — VIN Decoder) - [x] VIN Decoder docs page (issue #123 — closed ✅) - [x] VIN Decoder SEO blog post (issue #124 — closed ✅) ## Phase 6 — Pre-launch - [x] `docs/legal/terms-of-service.md` (issue #40 — closed ✅) - [x] `docs/legal/privacy-policy.md` (issue #40 — closed ✅) - [x] `docs/legal/acceptable-use-policy.md` (issues #40 ✅, #89 ✅) - [ ] DNS: `zip.leeworks.dev`, `holidays.leeworks.dev`, `aqi.leeworks.dev`, `docs.`, `status.`, `registry.` — issues #33, #106, #150 - [x] VIN Decoder DNS `vin.leeworks.dev` (issue #130 — closed ✅) - [x] VIN Decoder RapidAPI listing (issue #131 — closed ✅ as tracker; operator action required) - [ ] PayPal linked to RapidAPI (manual, on 18th birthday) — issue #19 - [ ] Paid tiers enabled on RapidAPI listings (manual) — issues #44 (original 3), #151 (VIN Decoder) - [ ] Execute pre-launch checklist before go-live — issue #166 - [ ] Publish launch announcement (HN, Reddit, Twitter, Dev.to) — issue #167 ## Revenue target $100/mo **net** ≈ $136/mo gross after RapidAPI 25% + PayPal ~2%. | Plan baseline | Subs needed for net $100/mo | |---|---| | 15 Basic @ $9 | $122 net | | 7 Pro @ $19 | $97 net | | 3 Ultra @ $49 | $107 net | (Per-API rough math; mix-and-match across all 4 APIs — ZIP Enrichment, Holidays, Air Quality, VIN Decoder.)