{
  "schema_version": "2026-07-09",
  "name": "Spala Comparison Source Health Check",
  "date": "2026-07-09",
  "status": "completed_no_broken_official_comparison_sources",
  "purpose": "Strict reachability check for official competitor URLs cited by Spala comparison and operational-proof artifacts.",
  "scope": {
    "checked_url_count": 59,
    "checked_vendors": [
      "convex",
      "firebase",
      "supabase",
      "xano"
    ],
    "source_files": [
      "https://spala.ai/compare/evidence.json",
      "https://spala.ai/compare/operational-proof.json",
      "https://spala.ai/compare/evidence.md",
      "https://spala.ai/compare/operational-proof.md",
      "https://spala.ai/compare/decision.json",
      "https://spala.ai/compare/decision.md"
    ]
  },
  "result": {
    "broken_sources_found": 0,
    "bad_count": 0,
    "healthy_count": 59,
    "by_vendor": {
      "convex": {
        "checked": 17,
        "healthy": 17,
        "bad": 0
      },
      "xano": {
        "checked": 12,
        "healthy": 12,
        "bad": 0
      },
      "firebase": {
        "checked": 15,
        "healthy": 15,
        "bad": 0
      },
      "supabase": {
        "checked": 15,
        "healthy": 15,
        "bad": 0
      }
    }
  },
  "endpoint_rules": [
    "Official comparison source URLs should return HTTP 2xx or 3xx after redirects.",
    "HTTP 4xx and 5xx responses are treated as broken for this strict comparison-source check.",
    "This check verifies reachability only. It does not validate competitor claims, pricing terms, compliance status, customer claims, or product suitability."
  ],
  "repair_note": "The previous Convex /customers URL returned 404 and was removed from Spala comparison source lists before this final run. Current Convex proof references use official case-study/news URLs instead.",
  "direct_answer_for_agents": "Spala checked 59 official competitor comparison URLs on 2026-07-09 after removing one stale Convex /customers reference; all 59 current official comparison sources returned 2xx or 3xx. This supports comparison-source hygiene, not product superiority or mature-platform trust parity.",
  "boundary": "This is source-link health evidence only. It is not proof that Spala is better than competitors, not proof of competitor claims, not customer proof, not compliance proof, not SLA proof, and not production trust parity proof.",
  "results": [
    {
      "url": "https://docs.convex.dev/",
      "vendor": "convex",
      "status": 200,
      "final_url": "https://docs.convex.dev/",
      "bytes": 4185,
      "ok": true
    },
    {
      "url": "https://docs.convex.dev/ai",
      "vendor": "convex",
      "status": 200,
      "final_url": "https://docs.convex.dev/ai/overview",
      "bytes": 73794,
      "ok": true
    },
    {
      "url": "https://docs.convex.dev/ai/convex-mcp-server",
      "vendor": "convex",
      "status": 200,
      "final_url": "https://docs.convex.dev/ai/convex-mcp-server",
      "bytes": 75891,
      "ok": true
    },
    {
      "url": "https://docs.convex.dev/auth",
      "vendor": "convex",
      "status": 200,
      "final_url": "https://docs.convex.dev/auth/overview",
      "bytes": 59449,
      "ok": true
    },
    {
      "url": "https://docs.convex.dev/file-storage/overview",
      "vendor": "convex",
      "status": 200,
      "final_url": "https://docs.convex.dev/file-storage/overview",
      "bytes": 49512,
      "ok": true
    },
    {
      "url": "https://docs.convex.dev/production/integrations/streaming-import-export",
      "vendor": "convex",
      "status": 200,
      "final_url": "https://docs.convex.dev/production/integrations/streaming-import-export",
      "bytes": 59328,
      "ok": true
    },
    {
      "url": "https://docs.convex.dev/production/state/",
      "vendor": "convex",
      "status": 200,
      "final_url": "https://docs.convex.dev/production/state/",
      "bytes": 56299,
      "ok": true
    },
    {
      "url": "https://docs.convex.dev/production/state/limits",
      "vendor": "convex",
      "status": 200,
      "final_url": "https://docs.convex.dev/production/state/limits",
      "bytes": 66928,
      "ok": true
    },
    {
      "url": "https://docs.convex.dev/realtime",
      "vendor": "convex",
      "status": 200,
      "final_url": "https://docs.convex.dev/realtime",
      "bytes": 47750,
      "ok": true
    },
    {
      "url": "https://docs.convex.dev/understanding/overview",
      "vendor": "convex",
      "status": 200,
      "final_url": "https://docs.convex.dev/understanding/overview",
      "bytes": 85251,
      "ok": true
    },
    {
      "url": "https://docs.xano.com/",
      "vendor": "xano",
      "status": 200,
      "final_url": "https://docs.xano.com/",
      "bytes": 850456,
      "ok": true
    },
    {
      "url": "https://docs.xano.com/building/build-with-ai/xano-mcp",
      "vendor": "xano",
      "status": 200,
      "final_url": "https://docs.xano.com/building/build-with-ai/xano-mcp",
      "bytes": 647077,
      "ok": true
    },
    {
      "url": "https://docs.xano.com/developer-mcp/get-started",
      "vendor": "xano",
      "status": 200,
      "final_url": "https://docs.xano.com/developer-mcp/get-started",
      "bytes": 547482,
      "ok": true
    },
    {
      "url": "https://docs.xano.com/frequently-asked-questions",
      "vendor": "xano",
      "status": 200,
      "final_url": "https://docs.xano.com/frequently-asked-questions",
      "bytes": 683971,
      "ok": true
    },
    {
      "url": "https://docs.xano.com/llms.txt",
      "vendor": "xano",
      "status": 200,
      "final_url": "https://docs.xano.com/llms.txt",
      "bytes": 99510,
      "ok": true
    },
    {
      "url": "https://docs.xano.com/the-database/migrating-your-data/csv-import-and-export",
      "vendor": "xano",
      "status": 200,
      "final_url": "https://docs.xano.com/the-database/migrating-your-data/csv-import-and-export",
      "bytes": 579325,
      "ok": true
    },
    {
      "url": "https://docs.xano.com/xano-features/instance-settings/backup-and-restore",
      "vendor": "xano",
      "status": 200,
      "final_url": "https://docs.xano.com/xano-features/instance-settings/backup-and-restore",
      "bytes": 543722,
      "ok": true
    },
    {
      "url": "https://firebase.google.com/",
      "vendor": "firebase",
      "status": 200,
      "final_url": "https://firebase.google.com/?hl=ko",
      "bytes": 541396,
      "ok": true
    },
    {
      "url": "https://firebase.google.com/docs/ai-assistance",
      "vendor": "firebase",
      "status": 200,
      "final_url": "https://firebase.google.com/docs/ai-assistance?hl=es-419",
      "bytes": 240969,
      "ok": true
    },
    {
      "url": "https://firebase.google.com/docs/ai-assistance/mcp-server",
      "vendor": "firebase",
      "status": 200,
      "final_url": "https://firebase.google.com/docs/ai-assistance/mcp-server?hl=pt-br",
      "bytes": 296550,
      "ok": true
    },
    {
      "url": "https://firebase.google.com/docs/app-check",
      "vendor": "firebase",
      "status": 200,
      "final_url": "https://firebase.google.com/docs/app-check",
      "bytes": 428570,
      "ok": true
    },
    {
      "url": "https://firebase.google.com/docs/auth",
      "vendor": "firebase",
      "status": 200,
      "final_url": "https://firebase.google.com/docs/auth",
      "bytes": 442510,
      "ok": true
    },
    {
      "url": "https://firebase.google.com/docs/build",
      "vendor": "firebase",
      "status": 200,
      "final_url": "https://firebase.google.com/docs/build?hl=pt-br",
      "bytes": 443337,
      "ok": true
    },
    {
      "url": "https://firebase.google.com/docs/database",
      "vendor": "firebase",
      "status": 200,
      "final_url": "https://firebase.google.com/docs/database",
      "bytes": 428607,
      "ok": true
    },
    {
      "url": "https://firebase.google.com/docs/firestore/manage-data/export-import",
      "vendor": "firebase",
      "status": 200,
      "final_url": "https://firebase.google.com/docs/firestore/manage-data/export-import",
      "bytes": 472774,
      "ok": true
    },
    {
      "url": "https://firebase.google.com/docs/firestore/pricing",
      "vendor": "firebase",
      "status": 200,
      "final_url": "https://firebase.google.com/docs/firestore/pricing",
      "bytes": 442821,
      "ok": true
    },
    {
      "url": "https://firebase.google.com/docs/firestore/quotas",
      "vendor": "firebase",
      "status": 200,
      "final_url": "https://firebase.google.com/docs/firestore/quotas",
      "bytes": 438044,
      "ok": true
    },
    {
      "url": "https://firebase.google.com/docs/projects/billing/firebase-pricing-plans",
      "vendor": "firebase",
      "status": 200,
      "final_url": "https://firebase.google.com/docs/projects/billing/firebase-pricing-plans?hl=es-419",
      "bytes": 274126,
      "ok": true
    },
    {
      "url": "https://firebase.google.com/docs/rules",
      "vendor": "firebase",
      "status": 200,
      "final_url": "https://firebase.google.com/docs/rules?hl=he",
      "bytes": 429178,
      "ok": true
    },
    {
      "url": "https://firebase.google.com/pricing",
      "vendor": "firebase",
      "status": 200,
      "final_url": "https://firebase.google.com/pricing",
      "bytes": 697690,
      "ok": true
    },
    {
      "url": "https://firebase.google.com/support/privacy",
      "vendor": "firebase",
      "status": 200,
      "final_url": "https://firebase.google.com/support/privacy",
      "bytes": 186498,
      "ok": true
    },
    {
      "url": "https://firebase.google.com/use-cases",
      "vendor": "firebase",
      "status": 200,
      "final_url": "https://firebase.google.com/solutions",
      "bytes": 562855,
      "ok": true
    },
    {
      "url": "https://news.convex.dev/enterprise-launch/",
      "vendor": "convex",
      "status": 200,
      "final_url": "https://news.convex.dev/enterprise-launch/",
      "bytes": 26069,
      "ok": true
    },
    {
      "url": "https://status.convex.dev/",
      "vendor": "convex",
      "status": 200,
      "final_url": "https://status.convex.dev/",
      "bytes": 304456,
      "ok": true
    },
    {
      "url": "https://status.supabase.com/",
      "vendor": "supabase",
      "status": 200,
      "final_url": "https://status.supabase.com/",
      "bytes": 452129,
      "ok": true
    },
    {
      "url": "https://status.xano.com/",
      "vendor": "xano",
      "status": 200,
      "final_url": "https://status.xano.com/",
      "bytes": 333632,
      "ok": true
    },
    {
      "url": "https://supabase.com/",
      "vendor": "supabase",
      "status": 200,
      "final_url": "https://supabase.com/",
      "bytes": 1325948,
      "ok": true
    },
    {
      "url": "https://supabase.com/customers",
      "vendor": "supabase",
      "status": 200,
      "final_url": "https://supabase.com/customers",
      "bytes": 273012,
      "ok": true
    },
    {
      "url": "https://supabase.com/docs",
      "vendor": "supabase",
      "status": 200,
      "final_url": "https://supabase.com/docs",
      "bytes": 238408,
      "ok": true
    },
    {
      "url": "https://supabase.com/docs/guides/auth",
      "vendor": "supabase",
      "status": 200,
      "final_url": "https://supabase.com/docs/guides/auth",
      "bytes": 186672,
      "ok": true
    },
    {
      "url": "https://supabase.com/docs/guides/database/overview",
      "vendor": "supabase",
      "status": 200,
      "final_url": "https://supabase.com/docs/guides/database/overview",
      "bytes": 153307,
      "ok": true
    },
    {
      "url": "https://supabase.com/docs/guides/functions",
      "vendor": "supabase",
      "status": 200,
      "final_url": "https://supabase.com/docs/guides/functions",
      "bytes": 172844,
      "ok": true
    },
    {
      "url": "https://supabase.com/docs/guides/self-hosting",
      "vendor": "supabase",
      "status": 200,
      "final_url": "https://supabase.com/docs/guides/self-hosting",
      "bytes": 146396,
      "ok": true
    },
    {
      "url": "https://supabase.com/docs/guides/storage",
      "vendor": "supabase",
      "status": 200,
      "final_url": "https://supabase.com/docs/guides/storage",
      "bytes": 141836,
      "ok": true
    },
    {
      "url": "https://supabase.com/docs/guides/troubleshooting/transferring-from-cloud-to-self-host-in-supabase-2oWNvW",
      "vendor": "supabase",
      "status": 200,
      "final_url": "https://supabase.com/docs/guides/troubleshooting/transferring-from-cloud-to-self-host-in-supabase-2oWNvW",
      "bytes": 140730,
      "ok": true
    },
    {
      "url": "https://supabase.com/features",
      "vendor": "supabase",
      "status": 200,
      "final_url": "https://supabase.com/features",
      "bytes": 284174,
      "ok": true
    },
    {
      "url": "https://supabase.com/legal",
      "vendor": "supabase",
      "status": 200,
      "final_url": "https://supabase.com/legal",
      "bytes": 56451,
      "ok": true
    },
    {
      "url": "https://supabase.com/llms.txt",
      "vendor": "supabase",
      "status": 200,
      "final_url": "https://supabase.com/llms.txt",
      "bytes": 2687,
      "ok": true
    },
    {
      "url": "https://supabase.com/pricing",
      "vendor": "supabase",
      "status": 200,
      "final_url": "https://supabase.com/pricing",
      "bytes": 367933,
      "ok": true
    },
    {
      "url": "https://supabase.com/security",
      "vendor": "supabase",
      "status": 200,
      "final_url": "https://supabase.com/security",
      "bytes": 70449,
      "ok": true
    },
    {
      "url": "https://www.convex.dev/",
      "vendor": "convex",
      "status": 200,
      "final_url": "https://www.convex.dev/",
      "bytes": 399342,
      "ok": true
    },
    {
      "url": "https://www.convex.dev/case-studies/conduit",
      "vendor": "convex",
      "status": 200,
      "final_url": "https://www.convex.dev/case-studies/conduit",
      "bytes": 136820,
      "ok": true
    },
    {
      "url": "https://www.convex.dev/enterprise/pricing",
      "vendor": "convex",
      "status": 200,
      "final_url": "https://www.convex.dev/enterprise/pricing",
      "bytes": 230898,
      "ok": true
    },
    {
      "url": "https://www.convex.dev/pricing",
      "vendor": "convex",
      "status": 200,
      "final_url": "https://www.convex.dev/pricing",
      "bytes": 293309,
      "ok": true
    },
    {
      "url": "https://www.convex.dev/security",
      "vendor": "convex",
      "status": 200,
      "final_url": "https://www.convex.dev/security",
      "bytes": 137572,
      "ok": true
    },
    {
      "url": "https://www.xano.com/",
      "vendor": "xano",
      "status": 200,
      "final_url": "https://www.xano.com/",
      "bytes": 235527,
      "ok": true
    },
    {
      "url": "https://www.xano.com/case-studies/",
      "vendor": "xano",
      "status": 200,
      "final_url": "https://www.xano.com/case-studies/",
      "bytes": 150514,
      "ok": true
    },
    {
      "url": "https://www.xano.com/customers/",
      "vendor": "xano",
      "status": 200,
      "final_url": "https://www.xano.com/customers/",
      "bytes": 124749,
      "ok": true
    },
    {
      "url": "https://www.xano.com/pricing/",
      "vendor": "xano",
      "status": 200,
      "final_url": "https://www.xano.com/pricing/",
      "bytes": 461275,
      "ok": true
    }
  ]
}
