{"id":51973422,"url":"https://github.com/ek33450505/compute-atlas","last_synced_at":"2026-07-30T02:00:25.395Z","repository":{"id":370791808,"uuid":"1290468900","full_name":"ek33450505/compute-atlas","owner":"ek33450505","description":"An open, source-cited map of grid-scale compute infrastructure across the United States — and their civic footprint: energy, water, subsidies, jobs, and community.","archived":false,"fork":false,"pushed_at":"2026-07-27T01:54:39.000Z","size":2167,"stargazers_count":2,"open_issues_count":1,"forks_count":1,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-07-27T03:07:16.448Z","etag":null,"topics":["ai","artificial-intelligence","civic-tech","cryptocurrency","data-centers","data-journalism","datacenter","dataset","energy","infrastructure","maplibre","mapping","nextjs","open-data","openstreetmap","react","typescript"],"latest_commit_sha":null,"homepage":"https://www.compute-atlas.com","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ek33450505.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null},"funding":{"github":["ek33450505"]}},"created_at":"2026-07-06T01:18:16.000Z","updated_at":"2026-07-26T02:53:37.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/ek33450505/compute-atlas","commit_stats":null,"previous_names":["ek33450505/compute-atlas"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/ek33450505/compute-atlas","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ek33450505%2Fcompute-atlas","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ek33450505%2Fcompute-atlas/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ek33450505%2Fcompute-atlas/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ek33450505%2Fcompute-atlas/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ek33450505","download_url":"https://codeload.github.com/ek33450505/compute-atlas/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ek33450505%2Fcompute-atlas/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":36056276,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-07-20T02:08:10.276Z","status":"online","status_checked_at":"2026-07-30T02:00:05.956Z","response_time":106,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["ai","artificial-intelligence","civic-tech","cryptocurrency","data-centers","data-journalism","datacenter","dataset","energy","infrastructure","maplibre","mapping","nextjs","open-data","openstreetmap","react","typescript"],"created_at":"2026-07-30T02:00:18.701Z","updated_at":"2026-07-30T02:00:25.389Z","avatar_url":"https://github.com/ek33450505.png","language":"TypeScript","funding_links":["https://github.com/sponsors/ek33450505"],"categories":[],"sub_categories":[],"readme":"# Compute Atlas\n\n[![Compute Atlas — an interactive, source-cited map of U.S. grid-scale compute infrastructure](docs/media/map.png)](https://www.compute-atlas.com)\n\n[![CI](https://github.com/ek33450505/compute-atlas/actions/workflows/ci.yml/badge.svg)](https://github.com/ek33450505/compute-atlas/actions/workflows/ci.yml)\n[![facilities](https://img.shields.io/badge/dynamic/json?url=https%3A%2F%2Fwww.compute-atlas.com%2Fapi%2Fstats\u0026query=%24.count\u0026label=facilities\u0026color=3F5B43\u0026style=flat)](https://www.compute-atlas.com/api/stats)\n[![states](https://img.shields.io/badge/dynamic/json?url=https%3A%2F%2Fwww.compute-atlas.com%2Fapi%2Fstats\u0026query=%24.states\u0026label=states\u0026color=3F5B43\u0026style=flat)](https://www.compute-atlas.com/api/stats)\n[![code: MIT](https://img.shields.io/badge/code-MIT-informational?style=flat)](LICENSE)\n[![data: CC BY 4.0](https://img.shields.io/badge/data-CC%20BY%204.0-informational?style=flat)](LICENSE-DATA)\n\nAn open, source-cited dataset of data centers across the United States — from proposed and permitted to under construction and operational — with a public source behind every record.\n\n**Live site → [www.compute-atlas.com](https://www.compute-atlas.com)**\n\n## What it is\n\nThere is no national registry of data centers. \"Data center\" spans a wide range of facility types — Compute Atlas curates a provenance-first dataset covering traditional and hyperscale compute, AI/ML-specific campuses, and crypto-mining operations, drawn from public permit filings, utility interconnection queues, company announcements, and subsidy disclosures. Every record carries a confidence level and links its sources.\n\nThe project also tracks the civic footprint of these facilities — energy, water, subsidies, jobs, and community impact — because that information is public but scattered across county records, water-authority applications, and local reporting, and assembling it is genuinely hard. That's the gap the atlas tries to close.\n\nIntended audience: journalists, researchers, local officials, and residents.\n\n## The numbers\n\nThe live facility and state counts are shown in the badges above (read live from the public **[`/api/stats`](https://www.compute-atlas.com/api/stats)** endpoint, so they never drift). For the full, always-current breakdown — status, states, operators, capacity, and reported water use — see the live **[Statistics page](https://www.compute-atlas.com/stats)**, or read the raw data in [`data/facilities.json`](data/facilities.json). Figures are intentionally not hardcoded in this README so they never drift from the data.\n\n## How the data is built\n\nCompute Atlas is compiled by hand from primary sources, with a deliberate bias against fabrication:\n\n- **A source for every record.** Each facility cites at least one public source with a URL, a label, a source `kind`, and a retrieval date. Nothing is recorded without provenance.\n- **Honest confidence.** Records are marked `confirmed`, `reported`, or `rumored`, and data-center facilities with a discernible AI angle are additionally classified `confirmed`, `likely`, or `mixed_use`. Uncertainty is surfaced, not hidden.\n- **Numbers only when firm.** Ranges, ceilings, and modeled projections go in a record's notes — never into a numeric field. Multi-year subsidy totals are described in the program label rather than asserted as a single dollar amount. Statutory *eligibility* for an incentive is not recorded as a confirmed award.\n- **Independent verification.** Consequential claims (capacity, investment, subsidies) are checked against the underlying filing or announcement before they enter the dataset.\n- **Additive and correctable.** Coverage grows over time; corrections are welcome and expected. See [CONTRIBUTING.md](CONTRIBUTING.md).\n\nFor the full methodology — the discovery channels (county planning portals, SEC filings, ISO/RTO queues), the sourcing and verification standard, and how to read a record's sources — see [docs/methodology.md](docs/methodology.md).\n\n### The intake pipeline\n\n```mermaid\ngraph LR\n    A[\"Public sources\u003cbr/\u003e(permits, SEC, utilities)\"] --\u003e P[\"Pending\u003cbr/\u003esubmission\"]\n    B[\"Discovery pipeline\u003cbr/\u003e(scheduled research)\"] --\u003e P\n    C[\"/contribute form\u003cbr/\u003e(public intake)\"] --\u003e P\n    P --\u003e G[\"Human review\u003cbr/\u003eapprove/reject\"]\n    G --\u003e |approved| L[\"Live facility\u003cbr/\u003eNeon Postgres\"]\n    L --\u003e D[\"Site · API · JSON export\"]\n```\n\nNothing becomes a live facility without human approval—the core invariant of the project.\n\n## API\n\nCompute Atlas exposes a public JSON API for programmatic access to the dataset. Full API documentation is available at [`/api`](https://www.compute-atlas.com/api) on the live site.\n\n**Public read endpoints** (CORS-open, no auth required):\n\n- `GET /api/facilities` — List all facilities, optionally filtered by `?state`, `?type`, `?operator`, `?status`, or `?q` (free-text search). Returns `{ count, facilities }`.\n- `GET /api/facilities/{id}` — Fetch a single facility by ID.\n- `GET /api/stats` — Aggregate dataset figures: total facility count, number of states, and operational / planned / under-construction capacity (MW).\n- `GET /api/schema` — JSON Schema export of the facility data model (derived from Zod schema).\n\n**Rate limiting and caching:** Public endpoints are rate-limited to 60 requests per minute per IP; requests over the limit receive a `429` response with a `Retry-After` header. Responses are CDN-cached and carry `Cache-Control` headers; repeat reads are edge-served. All responses include attribution headers: `X-License: CC-BY-4.0`, `Link: \u003chttps://creativecommons.org/licenses/by/4.0/\u003e; rel=\"license\"`, and `X-API-Version: 1`.\n\n**Admin-only write endpoints** (require `Authorization: Bearer \u003cAPI_ADMIN_TOKEN\u003e` header):\n\n- `POST /api/facilities` — Create a new facility (201 on success).\n- `PATCH /api/facilities/{id}` — Update an existing facility.\n- `DELETE /api/facilities/{id}` — Remove a facility.\n- `GET /api/submissions` — List staged submissions (optionally filter by `?status`).\n- `POST /api/submissions` — Stage a new submission (create or update candidate).\n\nThe submission flow is human-gated: new candidates are staged, reviewed, and approved before merging into the live dataset. This ensures accuracy over volume.\n\n## Data \u0026 database\n\nCompute Atlas data is backed by **Neon Postgres** (via **Drizzle ORM**). The authoritative source is the database; the published `data/facilities.json` is a read-only **CC-BY snapshot** exported from the DB and remains the forkable artifact for users.\n\n**Data flow discipline:**\n- **File → DB:** `npm run db:seed` loads initial data from `data/facilities.json` into Postgres.\n- **DB → File:** `npm run db:export` generates a fresh `data/facilities.json` snapshot from the live database (used before each release).\n\nThis one-directional flow prevents divergence between the source of truth (DB) and the published export.\n\n## Releases and versioning\n\nCompute Atlas follows [Semantic Versioning](https://semver.org). Releases are published via [GitHub Releases](https://github.com/ek33450505/compute-atlas/releases) and automated with release-please; see [CHANGELOG.md](CHANGELOG.md) for changes. Each release exports a versioned snapshot: `data/facilities.json` carries an `asOf` timestamp so consumers can track data currency.\n\n**Database scripts** (all require `DATABASE_URL` in `.env.local`):\n\n- `npm run db:generate` — Generate Drizzle schema migrations.\n- `npm run db:migrate` — Run pending migrations against the database.\n- `npm run db:push` — Sync schema to the database (dev shortcut; use `migrate` for production).\n- `npm run db:seed` — Populate the database from `data/facilities.json`.\n- `npm run db:export` — Write the live database to `data/facilities.json`.\n\nRequired environment variables (see `.env.example`):\n\n- `DATABASE_URL` — Neon Postgres pooled connection string.\n- `API_ADMIN_TOKEN` — Bearer token for admin write API access.\n\n## Data model\n\nFacility records are validated against the Zod schema in `lib/schema.ts`.\n\nKey fields per facility:\n\n| Field | Description |\n|---|---|\n| `id` | Lowercase kebab slug (e.g. `xai-colossus-memphis-tn`) |\n| `name` | Facility name |\n| `operator` | Operating company |\n| `status` | `proposed` / `permitted` / `under_construction` / `operational` / `cancelled` |\n| `aiClassification` | `confirmed` / `likely` / `mixed_use` |\n| `confidence` | `confirmed` / `reported` / `rumored` |\n| `location` | `lat`, `lon`, `city?`, `county?`, `state` (2-letter) |\n| `capacityMw` | `planned?` and/or `operational?` in megawatts |\n| `statusHistory` | Ordered list of status transitions with dates and source references |\n| `sources` | At least one source with `url`, `label`, `kind`, and `retrievedAt` |\n| `lastUpdated` | ISO date string (YYYY or YYYY-MM or YYYY-MM-DD) |\n\n## Contributing and corrections\n\nContributions and corrections are welcome — every submission needs a public source URL. See **[CONTRIBUTING.md](CONTRIBUTING.md)** for how to propose a new facility or a correction, and the standard the data is held to. Participation is governed by our [Code of Conduct](CODE_OF_CONDUCT.md).\n\n**New to the project?** Start with the [good first issues](https://github.com/ek33450505/compute-atlas/issues?q=is%3Aissue+is%3Aopen+label%3A%22good+first+issue%22) or the [New Facility form](https://github.com/ek33450505/compute-atlas/issues/new/choose) to add a facility you know about — no code required. Questions or ideas? Post in [Discussions](https://github.com/ek33450505/compute-atlas/discussions). Security concerns should be reported privately; see [SECURITY.md](SECURITY.md).\n\n## Tech stack\n\n- **Next.js 16** (App Router, React Server Components, incremental static regeneration) with **React 19**\n- **Neon Postgres** + **Drizzle ORM** for the data layer\n- **TypeScript** + **Zod** for runtime-validated data and JSON Schema export\n- **MapLibre GL** + **react-map-gl** for the interactive map\n- **Tailwind CSS v4** + **shadcn/ui** components\n- **Vitest** + **React Testing Library** for a comprehensive unit-test suite\n- **Playwright** for end-to-end tests\n\n## Local development\n\n```bash\nnpm install\nnpm run dev        # start dev server at http://localhost:3000\nnpm run test       # run unit tests (Vitest)\nnpm run test:e2e   # run E2E tests (Playwright — requires npm run build first)\nnpm run build      # production build (validates all records against the schema)\nnpm run lint       # ESLint\nnpm run typecheck  # TypeScript type check\n```\n\nThe build fails loudly if any facility record is missing a required field or violates the schema, so a green build is also a data-integrity check.\n\n## Accessibility\n\nCompute Atlas targets **WCAG 2.2 AA**. The data table is a first-class alternative to the map — all facilities are reachable and filterable without pointer interaction. Focus indicators, a skip-to-content link, and semantic HTML are used throughout, and the end-to-end suite runs automated accessibility audits on every major route.\n\n## Accuracy, neutrality, and disclaimer\n\nCompute Atlas is non-partisan and takes no position for or against any facility or operator; it aims only to make public information findable and verifiable. The dataset is compiled from public sources and is necessarily incomplete and subject to revision — which is why every record carries an explicit confidence level and cites its sources. It is provided \"as is,\" without warranty of any kind, and is **not** legal, financial, investment, or professional advice. If you spot an error, please [open a correction](CONTRIBUTING.md) with a source.\n\n## License\n\nThis project is dual-licensed:\n\n- **Source code** — [MIT License](LICENSE).\n- **Data** (`data/`) — [Creative Commons Attribution 4.0 International (CC BY 4.0)](LICENSE-DATA). Reuse freely, including commercially; please attribute.\n\nThird-party data keeps its own terms: the map basemap is © OpenStreetMap contributors (ODbL) via OpenFreeMap, and any figures attributed to Epoch AI are CC BY 4.0.\n\n## Attribution\n\nCompute Atlas is an independent project by **Edward Kubiak**.\n\nSuggested citation:\n\n\u003e Data center data from Compute Atlas by Edward Kubiak, licensed under CC BY 4.0 — https://github.com/ek33450505/compute-atlas\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fek33450505%2Fcompute-atlas","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fek33450505%2Fcompute-atlas","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fek33450505%2Fcompute-atlas/lists"}