{ "phase": "production-live", "version": "0.3.0", "staging": { "status": "running", "namespace": "snapapi-staging", "replicas": 1, "image": "docker.io/library/snapapi:v0.3.0", "healthCheck": "passing" }, "production": { "status": "running", "namespace": "snapapi", "replicas": 2, "image": "docker.io/library/snapapi:v0.3.0", "healthCheck": "passing", "domain": "https://snapapi.eu", "tls": "Let's Encrypt (valid until 2026-05-20)" }, "blockers": [ "Stripe billing not yet integrated — paid plans show 'Coming Soon'", "CI/CD pipeline blocked on git push access" ], "completed": [ "Core screenshot API (POST /v1/screenshot)", "Playground endpoint (POST /v1/playground) — no auth, IP rate limited (5/hr), watermarked", "Watermark service — overlays 'snapapi.eu — upgrade for clean screenshots' on playground output", "Health check (GET /health)", "SSRF protection (blocks private IPs, metadata, K8s services)", "Browser pool with auto-recycling", "PostgreSQL DB integration (api_keys + usage tables)", "Usage tracking with per-key limits", "REDESIGNED landing page — playground as hero demo, no free tier, paid-only pricing", "Swagger/OpenAPI interactive docs at /docs", "OpenAPI 3.0.3 spec at /openapi.json (updated for v0.3.0)", "Production deployment (2 replicas, HA, anti-affinity)", "Production TLS (Let's Encrypt) on snapapi.eu", "Staging deployment (1 replica)", "Cache-aside key lookup (multi-replica fix)", "Mobile-responsive design", "Per-route CSP", "Removed free signup flow (v0.3.0)", "Closed BUG-002 and BUG-003 (no longer applicable — no free tier)" ], "notDone": [ "Stripe billing integration", "Paid tier management", "CI/CD pipeline (blocked on git push access)", "Staging TLS (blocked on DNS)", "Status page", "Uptime monitoring" ], "lastSession": "2026-02-19T12:30:00Z" }