Skip to content

MVP Scope at a Glance

What ships at launch versus what is deferred. Detailed tiering lives in §39 (MVP-blocking §39.1, pre-launch-blocking §39.2, post-MVP/seed §39.3) and §15.10.

In MVP

Area What
Login SSO via GitHub + Google (dashboard auth only)
Deploy GitHub App + webhooks; Railpack (primary) / Dockerfile (fallback) via Depot; zero-downtime rolling deploys + one-click rollback
Service types Web, worker
Config Health check path + timeout (rendered as startup/readiness/liveness probes; TCP default) · build overrides incl. pre-deploy command (migrations)
Managed data Postgres + Valkey per environment, at customer-chosen DB tiers: Mininova = containerized throwaway ("not for production") · Micronova+ = dedicated DO Managed, single-node (Managed Databases)
Env/secrets Var Groups (attachable, env-scoped, per-Var-Group K8s Secret)
Permissions Two-tier RBAC (workspace + project roles) + environment protection
Observability Logs (ClickHouse) with live streaming; 7 customer metrics (latency, RPS, throughput, error rate, CPU, memory, network); platform self-monitoring (Grafana Cloud)
Autoscaling HPA on CPU/memory (metrics-server); node capacity added manually / by Shipyard (no DOKS autoscaler on Talos)
Isolation gVisor sandbox for customer code + hardened PodSpec (Kubernetes Runtime)
Domains Per-service hostnames on starform.app (proxied per-hostname records; wildcard 404 catch-all — DNS & Domains)
Billing Per-minute pod snapshots, plan credits, Stripe

Deferred (post-MVP / seed — §39.3 unless noted):

Area Status
Customer auth primitive (JWKS, gateway SecurityPolicy, claim-to-header) Seed-stage — distinct from MVP SSO login
Email primitive Seed-stage
Queue primitive Seed-stage
Object storage primitive (Tigris buckets, per environment) Post-MVP (§39.3 #16)
ClickHouse billing audit trail (MVP = raw snapshots in Postgres) Post-MVP (§39.3 #71)
CLI tool Post-MVP
Cron services Post-MVP (§39.3 #48)
DB promote-to-dedicated (Mininova→Micronova migration) Post-MVP (§39.3 #49)
Managed-DB HA standby toggle Post-MVP (§39.3 #50)
Best-effort throwaway-DB backups (pg_dump → DO Spaces) Post-MVP (§39.3 #51)
Preview environments Decision pending (launch vs seed)
Scale-to-zero Post-MVP
Custom domains (Cloudflare for SaaS — no cert-manager) Post-MVP (§39.3 #27)
Volumes / persistent storage Post-MVP (§39.3 #7)
Autoscaling on RPS/latency Deferred (needs prometheus-adapter; §39.1 #9)
Per-tier metric retention Deferred (MVP = global 90d; FR-051)
Distributed tracing Out of MVP scope
Audit logs, API tokens, status page, GDPR, rate limiting Pre-launch-blocking (§39.2)
Custom roles, SSO/SAML (Enterprise), per-user env overrides Post-MVP (§15.10)
BYOC (bring-your-own-cloud) Out of scope — not offered (§37)

Preview environments — Decision pending

Whether preview/ephemeral environments ship at launch or seed-stage is still open. They are identified by the is_ephemeral flag, not name-matching. See §39.

Pre-launch-blocking (§39.2)

Audit logs, API tokens, status page, GDPR, and rate limiting are pre-launch-blocking — not in the initial MVP cut, but required before public launch.

Out of scope — not offered (§37)

BYOC (bring-your-own-cloud) is explicitly not offered. See §37.


Cross-references

Full open-work tiering → §39 · RBAC build-vs-defer → §15.10 · the normative "done" definition → Functional Requirements / Success Criteria. Canonical map: Canonical Sources.