Replace closed issue references (#2, #187) on the Phase 0 Flux GitRepository entry with the current active tracker #218, which awaits operator merge of 0xWheatyz/Talos PR #14 to activate Flux GitOps. Closes leeworks-agents/api-company#227
4.0 KiB
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)
- 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-runnerin 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.
- 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.
- 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 - Instrument every API with
api_requests_total,api_response_duration_seconds,api_data_freshness_seconds(issue #27 — closed ✅) - Add Prometheus metrics endpoint to holidays service (issue #180 — closed ✅)
- Verify VIN Decoder metrics endpoint and ServiceMonitor scrape config — issue #174
- VIN Decoder metrics instrumentation + Grafana dashboard (issue #129 — closed ✅)
- VIN Decoder Gatus health check (issue #134 — closed ✅)
- Enable Alertmanager in kube-prometheus-stack + configure Slack receiver for SLO alerts (issue #210 — closed ✅)
Phase 5 — Documentation site
docs-site/Astro + Redoc skeleton (issue #28 — closed ✅)- Gitea Actions pipeline that copies per-API
openapi.yamlfiles at build time (issues #29 ✅, #38 ✅, #85 ✅) - Deploy to
docs.leeworks.devvia Flux — issue #30 - One SEO blog post per API minimum (issues #39 ✅ — ZIP/Holidays/AirQuality, #124 ✅ — VIN Decoder)
- VIN Decoder docs page (issue #123 — closed ✅)
- VIN Decoder SEO blog post (issue #124 — closed ✅)
Phase 6 — Pre-launch
-
docs/legal/terms-of-service.md(issue #40 — closed ✅) -
docs/legal/privacy-policy.md(issue #40 — closed ✅) -
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 -
VIN Decoder DNS
vin.leeworks.dev(issue #130 — closed ✅) -
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.)