{"jtbd":{"id":"app-backend","slug":"app-backend","name":"All-in-one app backend (DB/auth/storage)","shortName":"All-in-one app backend (DB/auth/storage)","problemStatement":"Ship agent product backend without stitching five vendors."},"pick":{"id":"supabase-pgvector","slug":"supabase-pgvector","name":"Supabase (pgvector)","tagline":"Depot default for most agent apps under ~25–50M vectors. Don't add Pinecone until Postgres actually hurts.","website":"https://supabase.com","overall":8.64,"scoreBand":{"low":8,"mid":8.6,"high":9.2,"halfWidth":0.6,"basis":"editorial_prior","display":"8.0–9.2 (editorial prior)"},"scoreLayers":{"editorialPrior":8.64,"measuredBenchmark":null,"verifiedOutcomeScore":null,"verifiedOutcomeCount":0,"accountRuntimeState":"unprobed"},"pricingLastVerifiedAt":"2026-10-27","editorialPriorAsOf":"2026-09-14","pricingNotes":"Postgres + pgvector + Auth + Storage; usage on compute/storage; free tier. Vectors hitchhike on Postgres.","scores":{"capabilityFit":8.5,"pricePerformance":9,"latencyReliability":8.6,"developerDx":9.4,"privacyPosture":8,"lockInRisk":3,"maturity":9,"overall":8.64,"kind":"curated_estimate","confidence":"high","asOf":"2026-09-14"}},"runnersUp":[{"id":"neon","slug":"neon","name":"Neon","tagline":"Excellent serverless Postgres for agent apps that want branching + pgvector without Supabase's full BaaS.","website":"https://neon.tech","overall":8.59,"scoreBand":{"low":8,"mid":8.6,"high":9.2,"halfWidth":0.6,"basis":"editorial_prior","display":"8.0–9.2 (editorial prior)"},"scoreLayers":{"editorialPrior":8.59,"measuredBenchmark":null,"verifiedOutcomeScore":null,"verifiedOutcomeCount":0,"accountRuntimeState":"unprobed"},"pricingLastVerifiedAt":"2026-10-27","editorialPriorAsOf":"2026-09-14","pricingNotes":"Serverless Postgres with branching; pgvector supported; usage-based compute/storage.","scores":{"capabilityFit":8.6,"pricePerformance":8.8,"latencyReliability":8.6,"developerDx":9.4,"privacyPosture":8.2,"lockInRisk":3,"maturity":8.5,"overall":8.59,"kind":"curated_estimate","confidence":"high","asOf":"2026-09-14"}},{"id":"railway","slug":"railway","name":"Railway","tagline":"Depot favorite for shipping agent APIs quickly. When bills climb, move steady-state to Fly/Hetzner/DO.","website":"https://railway.app","overall":8.08,"scoreBand":{"low":7.5,"mid":8.1,"high":8.7,"halfWidth":0.6,"basis":"editorial_prior","display":"7.5–8.7 (editorial prior)"},"scoreLayers":{"editorialPrior":8.08,"measuredBenchmark":null,"verifiedOutcomeScore":null,"verifiedOutcomeCount":0,"accountRuntimeState":"unprobed"},"pricingLastVerifiedAt":"2026-10-27","editorialPriorAsOf":"2026-09-14","pricingNotes":"Usage-based PaaS; services/databases; simple git deploys; hobby→pro plans.","scores":{"capabilityFit":8.2,"pricePerformance":7.8,"latencyReliability":8.4,"developerDx":9.4,"privacyPosture":7.2,"lockInRisk":4,"maturity":8.2,"overall":8.08,"kind":"curated_estimate","confidence":"high","asOf":"2026-09-14"}},{"id":"clerk","slug":"clerk","name":"Clerk","tagline":"Depot default auth for agent products with users. WorkOS when enterprise SSO is the main job.","website":"https://clerk.com","overall":8.43,"scoreBand":{"low":7.8,"mid":8.4,"high":9,"halfWidth":0.6,"basis":"editorial_prior","display":"7.8–9.0 (editorial prior)"},"scoreLayers":{"editorialPrior":8.43,"measuredBenchmark":null,"verifiedOutcomeScore":null,"verifiedOutcomeCount":0,"accountRuntimeState":"unprobed"},"pricingLastVerifiedAt":"2026-10-27","editorialPriorAsOf":"2026-10-19","pricingNotes":"Bills monthly retained users (MRU: a user who returns at least one day after signing up), not MAU (https://clerk.com/pricing, fetched 2026-10-21): Hobby free up to 50,000 MRU per app; Pro $25/mo and Business $300/mo include 50,000 MRU per app, then graduated $0.02 / $0.018 / $0.015 / $0.012 per MRU; 1 SSO connection included on paid plans, then $75 / $60 each (101+ contact us). B2B Authentication add-on $100/mo; beautiful prebuilt UIs.","scores":{"capabilityFit":9,"pricePerformance":8,"latencyReliability":9,"developerDx":9.8,"privacyPosture":8.2,"lockInRisk":6.5,"maturity":8.5,"overall":8.43,"kind":"curated_estimate","confidence":"high","asOf":"2026-10-19"}},{"id":"planetscale","slug":"planetscale","name":"PlanetScale","tagline":"Serverless DB peer when branching DX matters. Prefer Neon/Supabase for default Postgres+pgvector agents…","website":"https://planetscale.com","overall":8.23,"scoreBand":{"low":7.6,"mid":8.2,"high":8.8,"halfWidth":0.6,"basis":"editorial_prior","display":"7.6–8.8 (editorial prior)"},"scoreLayers":{"editorialPrior":8.23,"measuredBenchmark":null,"verifiedOutcomeScore":null,"verifiedOutcomeCount":0,"accountRuntimeState":"unprobed"},"pricingLastVerifiedAt":"2026-10-27","editorialPriorAsOf":"2026-09-14","pricingNotes":"As of 2026-09-14 (planetscale.com/pricing.md, AWS us-east-1): Postgres single-node from **$5/mo** (PS-5); HA 3-node from **$15/mo** (PS-5); PS-160 ARM HA $286; Vitess HA PS-10 $39+. Metal NVMe SKUs from ~$50–$60 (M-10). Storage/backups/egress/PgBouncer extra. Scaler Pro renamed Base. Machine-readable SQL catalog + region query params — re-export before commits.","scores":{"capabilityFit":8.6,"pricePerformance":7.4,"latencyReliability":8.8,"developerDx":9.2,"privacyPosture":8,"lockInRisk":4.8,"maturity":8.8,"overall":8.23,"kind":"curated_estimate","confidence":"high","asOf":"2026-09-14"}}],"scoreBand":{"low":8,"mid":8.6,"high":9.2,"halfWidth":0.6,"basis":"editorial_prior","display":"8.0–9.2 (editorial prior)"},"scoreLayers":{"editorialPrior":8.64,"measuredBenchmark":null,"verifiedOutcomeScore":null,"verifiedOutcomeCount":0,"accountRuntimeState":"unprobed"},"whyPickOverHigherScore":{"pickId":"supabase-pgvector","pickName":"Supabase (pgvector)","pickScore":8.64,"highestScoredCandidateId":"supabase-pgvector","highestScoredCandidateName":"Supabase (pgvector)","highestScore":8.64,"pickHasLowerCompositeScore":false,"delta":0,"pickLeadsOnDimensions":[],"explanation":"Supabase (pgvector) (8.64) holds both the highest composite score among ranked candidates and the editorial pick for All-in-one app backend (DB/auth/storage): dx + integration capability."},"cheapest":null,"recommendedWorkloadQuote":null,"representativeQuote":null,"estimatedTaskCost":null,"freeAlternatives":[],"referenceDocs":[],"falsification":{"jtbdId":"app-backend","jtbdName":"All-in-one app backend (DB/auth/storage)","currentPickId":"supabase-pgvector","currentPickScore":8.64,"challengerId":"neon","challengerScore":8.59,"currentScoreGap":0.05,"minVerifiedOutcomes":10,"requiredOutcomeMargin":0.2,"requiredSuccessRateDelta":0.15,"maxPickPriceIncreasePct":25,"whatWouldChangePick":["Neon (neon) outperforms Supabase (pgvector) (supabase-pgvector) by >= 0.2 outcome points (or >= 15% worked-rate delta) across >= 10 Countersign-verified production outcomes.","A verified price increase > 25% on Supabase (pgvector)'s representative SKU for app-backend without a corresponding capability gain.","Live caller rail exhaustion (?exhausted=supabase-pgvector) or sustained >= 30% degraded/failed rate in verified production outcomes."],"frozenHoldoutPolicy":{"holdoutSplit":"20% frozen benchmark holdout tasks + 80% live production outcome receipts","requireCountersignReceipt":true,"requiredEvidenceTiers":["outcome_verified","reference_checked"],"minDistinctContributors":2,"antiGamingRule":"Unverified self-reports and seed/editorial rows never mutate picks or scores."},"triggers":[{"kind":"verified_outcomes_outperformance","challengerId":"neon","minVerifiedOutcomes":10,"requiredOutcomeMargin":0.2,"requiredWorkedRateDelta":0.15},{"kind":"verified_price_increase","providerId":"supabase-pgvector","maxPriceIncreasePct":25},{"kind":"live_rail_exhaustion_or_degradation","providerId":"supabase-pgvector","immediateOverrideUrl":"/api/decide?jtbd=app-backend&exhausted=supabase-pgvector"}],"submissionSpec":{"falsifyEndpoint":"/api/falsify?jtbd=app-backend","outcomesEndpoint":"POST /api/feedback","correctionsEndpoint":"POST /api/corrections","payloadTemplate":{"agentIdentity":"agent:<your-agent-id>","jtbdId":"app-backend","providerId":"neon","outcome":"worked","detail":"Comparative production evaluation on app-backend (n>=10 tasks) with Countersign receipt.","confidence":"high","receipt":{"countersign":{"claim_id":"cs-00000000","status":"verified","evidence_tier":"outcome_verified","counts_as_verified":true}}}}},"whatWouldChangePick":["Neon (neon) outperforms Supabase (pgvector) (supabase-pgvector) by >= 0.2 outcome points (or >= 15% worked-rate delta) across >= 10 Countersign-verified production outcomes.","A verified price increase > 25% on Supabase (pgvector)'s representative SKU for app-backend without a corresponding capability gain.","Live caller rail exhaustion (?exhausted=supabase-pgvector) or sustained >= 30% degraded/failed rate in verified production outcomes."],"routePlan":{"jtbdId":"app-backend","primary":{"providerId":"supabase-pgvector","name":"Supabase (pgvector)","overall":8.64,"scoreBand":{"low":8,"mid":8.6,"high":9.2,"halfWidth":0.6,"basis":"editorial_prior","display":"8.0–9.2 (editorial prior)"},"scoreLayers":{"editorialPrior":8.64,"measuredBenchmark":null,"verifiedOutcomeScore":null,"verifiedOutcomeCount":0,"accountRuntimeState":"unprobed"},"pricingLastVerifiedAt":"2026-10-27","editorialPriorAsOf":"2026-09-14","role":"primary","reason":"Editorial Depot Pick for All-in-one app backend (DB/auth/storage); healthy/eligible under caller constraints."},"fallback":[{"providerId":"neon","name":"Neon","overall":8.59,"scoreBand":{"low":8,"mid":8.6,"high":9.2,"halfWidth":0.6,"basis":"editorial_prior","display":"8.0–9.2 (editorial prior)"},"scoreLayers":{"editorialPrior":8.59,"measuredBenchmark":null,"verifiedOutcomeScore":null,"verifiedOutcomeCount":0,"accountRuntimeState":"unprobed"},"pricingLastVerifiedAt":"2026-10-27","editorialPriorAsOf":"2026-09-14","role":"fallback","reason":"Ranked fallback route for All-in-one app backend (DB/auth/storage)."},{"providerId":"railway","name":"Railway","overall":8.08,"scoreBand":{"low":7.5,"mid":8.1,"high":8.7,"halfWidth":0.6,"basis":"editorial_prior","display":"7.5–8.7 (editorial prior)"},"scoreLayers":{"editorialPrior":8.08,"measuredBenchmark":null,"verifiedOutcomeScore":null,"verifiedOutcomeCount":0,"accountRuntimeState":"unprobed"},"pricingLastVerifiedAt":"2026-10-27","editorialPriorAsOf":"2026-09-14","role":"fallback","reason":"Ranked fallback route for All-in-one app backend (DB/auth/storage)."},{"providerId":"clerk","name":"Clerk","overall":8.43,"scoreBand":{"low":7.8,"mid":8.4,"high":9,"halfWidth":0.6,"basis":"editorial_prior","display":"7.8–9.0 (editorial prior)"},"scoreLayers":{"editorialPrior":8.43,"measuredBenchmark":null,"verifiedOutcomeScore":null,"verifiedOutcomeCount":0,"accountRuntimeState":"unprobed"},"pricingLastVerifiedAt":"2026-10-27","editorialPriorAsOf":"2026-10-19","role":"fallback","reason":"Ranked fallback route for All-in-one app backend (DB/auth/storage)."},{"providerId":"planetscale","name":"PlanetScale","overall":8.23,"scoreBand":{"low":7.6,"mid":8.2,"high":8.8,"halfWidth":0.6,"basis":"editorial_prior","display":"7.6–8.8 (editorial prior)"},"scoreLayers":{"editorialPrior":8.23,"measuredBenchmark":null,"verifiedOutcomeScore":null,"verifiedOutcomeCount":0,"accountRuntimeState":"unprobed"},"pricingLastVerifiedAt":"2026-10-27","editorialPriorAsOf":"2026-09-14","role":"fallback","reason":"Ranked fallback route for All-in-one app backend (DB/auth/storage)."}],"disqualified":[],"expectedRegret":{"scoreDeltaVsUnconstrainedPick":0,"unconstrainedPickId":"supabase-pgvector","activePrimaryId":"supabase-pgvector","summary":"0.00 score regret: unconstrained editorial pick satisfies all caller constraints."},"evidenceAgeDays":{"editorialScoreAgeDays":43,"pricingVerifiedAgeDays":0,"editorialPriorAsOf":"2026-09-14","pricingLastVerifiedAt":"2026-10-27"},"confidenceBand":{"low":8,"mid":8.6,"high":9.2,"halfWidth":0.6,"basis":"editorial_prior","display":"8.0–9.2 (editorial prior)"},"constraintsApplied":false,"constraintBundle":{"task":null,"jtbd":"app-backend","quotaExhausted":[],"degraded":[],"healthy":[],"budgetUsd":null,"maxLatencyMs":null,"region":null,"privacy":null,"exit":[],"existing":[]}},"pricingLastVerifiedAt":"2026-10-27","editorialPriorAsOf":"2026-09-14","tie":true,"scoreGap":0.05,"decidingFactor":"maturity (9 vs 8.5)","tieNote":"Scores are within 0.10 on a curated_estimate 0-10 scale (8.64 vs 8.59); treat as a statistical tie and decide on decidingFactor or whenNotTopPick.","rationale":"dx + integration capability.","whenNotTopPick":"Best-of-breed auth (Clerk) + DB (Neon) preferred for scale/flexibility.","skipTopPick":false,"skipReason":null,"matchedConstraints":[],"pricingSummary":"Postgres + pgvector + Auth + Storage; usage on compute/storage; free tier. Vectors hitchhike on Postgres.","cite":"Depot Pick for app-backend: supabase-pgvector (asOf 2026-09-14). See GET /api/jtbds/app-backend + GET /api/methodology.","nextActions":[{"step":1,"title":"Inspect full JTBD + embeds","href":"/api/jtbds/app-backend?embed=providers","why":"Confirm pick, runners-up, and methodology notes."},{"step":2,"title":"Quote sourced SKUs","href":"/api/quote?jtbd=app-backend","why":"Depot Pick SKUs plus the cheapest sourced SKU whose unit matches this job. Does not change the pick. Does not blend input and output or borrow a chat rate for a non-chat job."},{"step":3,"title":"Open provider detail","href":"/api/providers/supabase-pgvector","why":"Scores, pricingNotes, strengths/weaknesses, communitySignals (claims only)."},{"step":4,"title":"Cite methodology","href":"/api/methodology","why":"Required when publishing a Depot Pick citation."},{"step":5,"title":"Grab badge SVG","href":"/api/badge?type=depot-pick&jtbd=app-backend","why":"Embed in README / agent passport."},{"step":6,"title":"Post production insight","method":"POST","href":"/api/insights","why":"Unverified until curated; never auto-mutates official scores."}],"honesty":["Do not invent scores or benches.","Insights are claims until curated/reviewed; they never silently mutate official scores.","lockInRisk higher = more lock-in (worse).","normalizedUsdPerMillionTokens is set only for a single sourced token row. Otherwise null, with a machine-readable reason. Do not coerce GPU, minute, or per-1k search units.","Runners-up are not Depot Picks.","Depot overall is editorial_weighted, not Arena Elo and not an Artificial Analysis index."],"asOf":"2026-09-14","depth":{"whenNotToUse":{"text":"Best-of-breed auth (Clerk) + DB (Neon) preferred for scale/flexibility.","source":"editorial `whenNotTopPick` (data/jtbds.json)"},"whenNotToUseReason":null,"runnerUp":{"providerId":"neon","name":"Neon","overallForJob":8.59,"pickOverallForJob":8.64,"beatsPickOn":["capabilityFit","privacyPosture"],"source":"first resolvable entry of the job's editorially ranked `runnersUpIds`; scores are stored job-weighted scores"},"runnerUpReason":null,"lockIn":{"pickLockInRisk":3,"runnerUpLockInRisk":3,"scale":"0–10 stored curated estimate; higher = more lock-in (worse)","pickExitSignals":[],"runnerUpExitSignals":[],"pickNotes":[],"selfHostFallback":[],"migration":null,"migrationReason":"no_stored_migration_data","derivedFrom":"stored lockInRisk scores, provider tags (oss, self-host, openai-compat, open-models), free rows that list this job, and verbatim provider notes. No migration guide was invented."}},"citation":{"text":"Agent Provider Depot (v0.12.153), Depot Pick for app-backend: supabase-pgvector, scores as of 2026-09-14, retrieved 2026-10-27. https://getagentdepot.com/jtbds/app-backend","markdown":"[Agent Provider Depot](https://getagentdepot.com/jtbds/app-backend) (v0.12.153) — Depot Pick for `app-backend`: **supabase-pgvector** (scores as of 2026-09-14, retrieved 2026-10-27)","fields":{"publisher":"Agent Provider Depot","version":"0.12.153","role":"depot_pick","jtbdId":"app-backend","providerId":"supabase-pgvector","scoreAsOf":"2026-09-14","retrievedOn":"2026-10-27","page":"https://getagentdepot.com/jtbds/app-backend","api":"https://getagentdepot.com/api/decide?jtbd=app-backend"},"howToCite":"Cite Depot as an editorial, dated recommendation, not a benchmark: name the job, the Depot Pick (or runner-up), the score asOf date and the day you retrieved it, and link the job page. Format: “Agent Provider Depot (v{version}), Depot Pick for {jobId}: {providerId}, scores as of {scoreAsOf}, retrieved {retrievedOn}. {baseUrl}/jtbds/{jobId}”. Quote prices only with their own sourceUrl and asOf. If the pick's score is stale (freshness.pick.score.stale), say so."},"freshness":{"pick":{"score":{"asOf":"2026-09-14","ageDays":43,"stale":true,"staleAfterDays":30,"reason":null},"lastReviewed":{"asOf":"2026-09-14","ageDays":43,"stale":true,"staleAfterDays":30,"reason":null},"sourceCheck":{"checkedAt":"2026-10-27","sourceUrls":2,"sourcesReachable":2,"pricingRows":0,"pricingRowsReconfirmed":0,"note":"A source re-check confirms the page is reachable and, for pricing rows, that the stored amount and SKU name appear on it. It does not re-derive or change the score.","reason":null}},"scoreAsOf":"2026-09-14","editorialPriorAsOf":"2026-09-14","pricingLastVerifiedAt":"2026-10-27","pickLastReviewed":"2026-09-14","runnersUpScoreAsOf":["2026-09-14","2026-09-14","2026-10-19","2026-09-14"],"contractAsOf":"2026-10-03","pricingShape":"prose_notes_only","normalizedUsdPerMillionTokens":null,"normalizationStatus":"unavailable","normalizationReason":"no_sourced_price"},"pricingContract":{"normalizedUsdPerMillionTokens":null,"normalizationStatus":"unavailable","normalizationReason":"no_sourced_price","shape":"prose_notes_only","filterable":false,"priceSortEligible":false,"priceSortKeyUsdPerMillionInputTokens":null,"rows":[],"notesExcerpt":"Postgres + pgvector + Auth + Storage; usage on compute/storage; free tier. Vectors hitchhike on Postgres.","notesCheck":{"status":"no_known_contradiction","pairs":[],"review":null,"note":null},"lastReviewed":"2026-09-14","scoreAsOf":"2026-09-14","website":"https://supabase.com","doNotParse":"Do not parse pricingNotes. Use rows only. normalizedUsdPerMillionTokens is a single number only when this provider has exactly one sourced token row. Input/output, context tiers, and non-token units stay null at this level.","gap":"No sourced price row for this provider. pricingNotes stay prose. See research/gaps.md."},"links":{"jtbd":"/jtbds/app-backend","jtbdApi":"/api/jtbds/app-backend","leaderboard":"/api/leaderboards?jtbd=app-backend","methodology":"/api/methodology","badge":"/api/badge?type=depot-pick&jtbd=app-backend","decide":"/api/decide?jtbd=app-backend","humanPage":"/jtbds/app-backend","alternatives":"/api/alternatives?provider=supabase-pgvector","canonical":"/api/canonical","quote":"/api/quote?jtbd=app-backend","falsify":"/api/falsify?jtbd=app-backend"},"constraintBundle":{"task":null,"jtbd":"app-backend","quotaExhausted":[],"degraded":[],"healthy":[],"budgetUsd":null,"maxLatencyMs":null,"region":null,"privacy":null,"exit":[],"existing":[]},"stackContext":{"host":null,"framework":null,"repo":null,"lang":null,"existing":[],"volume":null,"sender":null,"detectedFromTask":[]},"keep":null,"contextAdvice":null,"communityFeedback":{"pickOnThisJob":{"failed":0,"degraded":0,"worked":0,"insights":0,"withVerifiedReceipt":0,"failureModes":{},"latestAt":null,"note":"Agent-reported claims (unverified unless a receipt is verified by Depot's re-check). They never change scores or picks."},"outcomes":{"job":{"n":0,"worked":0,"degraded":0,"failed":0,"failureModes":{},"verifiedReports":0,"contributors":0,"excluded":{"seed_editorial":0,"test":0,"notFeedback":0},"reason":"no_submitted_outcome_reports_yet"},"pick":{"providerId":"supabase-pgvector","n":0,"worked":0,"degraded":0,"failed":0,"failureModes":{},"evidenceTiers":{"agent_claim":0,"self_declared":0,"reference_checked":0,"outcome_verified":0},"reason":"no_submitted_outcome_reports_yet"},"scoresMutated":false,"more":"/api/outcomes?jtbd=app-backend"},"report":"POST /api/feedback {agentIdentity, outcome: failed|degraded|worked, detail, providerId, jtbdId, failureModeId?, receipt?}"}}