{"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.","whenNotTopPick":"Best-of-breed auth (Clerk) + DB (Neon) preferred for scale/flexibility.","categoryIds":["cat-vector-memory","cat-auth-payments"],"depotPickProviderId":"supabase-pgvector","depotPickRationale":"dx + integration capability.","runnersUpIds":["neon","railway","clerk","planetscale"],"weights":{"capabilityFit":0.25,"pricePerformance":0.18,"latencyReliability":0.15,"developerDx":0.15,"privacyPosture":0.1,"lockInRisk":0.07,"maturity":0.1},"methodologyNotes":"dx + integration capability.","tags":["app"],"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."}},"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}}}}