{
  "status": "slow",
  "checkedAt": "2026-10-26T03:40:41.244Z",
  "stale": false,
  "intervalSeconds": 300,
  "checks": [
    {
      "id": "listing",
      "name": "Individual listings",
      "state": "operational",
      "checkedAt": "2026-10-26T03:40:35.630Z",
      "responseMs": 230,
      "detail": "Responding normally."
    },
    {
      "id": "projects",
      "name": "Project search and lists",
      "state": "slow",
      "checkedAt": "2026-10-26T03:40:38.563Z",
      "responseMs": 3162,
      "detail": "Responding slowly."
    },
    {
      "id": "trending",
      "name": "Trending projects",
      "state": "slow",
      "checkedAt": "2026-10-26T03:40:39.210Z",
      "responseMs": 3580,
      "detail": "Responding slowly."
    },
    {
      "id": "feed",
      "name": "RSS feed",
      "state": "operational",
      "checkedAt": "2026-10-26T03:40:38.790Z",
      "responseMs": 227,
      "detail": "Responding normally."
    },
    {
      "id": "mcp",
      "name": "AI connector (MCP)",
      "state": "operational",
      "checkedAt": "2026-10-26T03:40:41.244Z",
      "responseMs": 2454,
      "detail": "Responding normally."
    }
  ],
  "monitoring": {
    "storage": "shared",
    "detail": "Reading scheduled observations from database-backed shared monitoring storage."
  },
  "routing": {
    "preference": "automatic",
    "currentSource": "neon",
    "coordinationAvailable": true,
    "nodes": [
      {
        "name": "atlas",
        "configured": true,
        "status": "working",
        "checkedAt": "2026-10-26T03:37:45.171Z",
        "lastSuccessAt": "2026-10-26T03:37:45.171Z",
        "replicaAsOf": null,
        "ageSeconds": null
      },
      {
        "name": "neon",
        "configured": true,
        "status": "working",
        "checkedAt": "2026-10-26T03:40:36.664Z",
        "lastSuccessAt": "2026-10-26T03:40:36.664Z",
        "replicaAsOf": "2026-10-26T03:37:45.219Z",
        "ageSeconds": 236
      },
      {
        "name": "convex",
        "configured": true,
        "status": "working",
        "checkedAt": "2026-10-26T03:41:38.803Z",
        "lastSuccessAt": "2026-10-26T03:41:38.803Z",
        "replicaAsOf": "2026-10-26T03:37:45.219Z",
        "ageSeconds": 236
      }
    ]
  },
  "incidents": [
    {
      "id": "2026-10-25-project-reads",
      "title": "Project discovery reads timing out",
      "state": "resolved",
      "openedAt": "2026-10-25T13:46:36Z",
      "affected": [
        "projects",
        "trending",
        "feed",
        "mcp"
      ],
      "updates": [
        {
          "at": "2026-10-26T01:51:03Z",
          "text": "Required routing coordination, monitoring and request admission now use the authenticated database control plane. Redis caching is disabled after the monthly command allowance approached its cap. Atlas remains authoritative; Neon and Convex serve validated public read replicas. Automated checks continue to report current availability and latency separately."
        },
        {
          "at": "2026-10-26T01:16:00Z",
          "text": "Project discovery is responding again after deploying bounded directory reads, the existing shared Redis cache, and validated Neon and Convex read replicas. Live checks confirm project lists, trending, RSS with 50 items, sitemap and MCP search are returning results; the homepage contains listing links again. Isolated failure tests verified reads from each replica when the other sources were unavailable. Monitoring continues, including latency checks. Atlas remains authoritative for writes and private operations."
        },
        {
          "at": "2026-10-26T00:38:00Z",
          "text": "Vercel logs confirm MongoDB read timeouts affecting project lists, trending, the sitemap and AI project search. RSS may return an empty feed and directory pages may show no listings. Individual listing reads still respond in spot checks. The cause is under investigation; this entry does not indicate a confirmed data-loss event. Earlier logs show the same error at 9:46 AM Eastern on October 25."
        }
      ]
    }
  ],
  "statusPage": "/status",
  "healthEndpoint": "/api/health"
}