import type { Metadata } from "next"; import Link from "next/link"; import { LogoMark } from "@/components/brand/logo"; import { Page, PageHeader, Section } from "@/components/ui/card"; import { routes } from "@/lib/routes"; export const metadata: Metadata = { title: "About", description: "What DataCenterIndex is, how it is built, who makes it and where the data comes from.", alternates: { canonical: "/about" }, }; const LICENSES = [ { name: "PeeringDB", what: "Facilities, internet exchanges, networks and their presence.", license: "PeeringDB data licence (CC0-like, attribution requested)", url: "https://www.peeringdb.com" }, { name: "OpenStreetMap", what: "Building footprints, addresses and coordinates for geocoding.", license: "© OpenStreetMap contributors — ODbL 1.0", url: "https://www.openstreetmap.org/copyright" }, { name: "Wikidata", what: "Operator identities, aliases, parent companies, external identifiers.", license: "CC0 1.0", url: "https://www.wikidata.org" }, { name: "World Bank", what: "Country population, GDP and electricity indicators.", license: "CC BY 4.0", url: "https://data.worldbank.org" }, { name: "Operator and government sources", what: "Facility pages, press releases, planning filings, utility and regulator publications.", license: "Facts only; each value links to its source page and licence recorded per source.", url: routes.sources() }, ]; export default function AboutPage() { return (

Facilities, campuses, operators, cloud regions, metros, countries, projects, internet exchanges, power and connectivity, linked into one graph. Every field — a capacity in MW, an opening date, a coordinate, a status — carries its provenance: the source, the URL, when it was first and last observed, how it was extracted, and a confidence level. When a source changes, the change is detected, versioned and published to the{" "} live feed .

We never invent data. Totals are lower bounds computed from known figures only; estimates are flagged ≈; city-level coordinates are labelled as such and drawn as hollow rings on the map.

A homemade connector platform follows a fixed pipeline: discover → fetch → archive → extract → normalize → reconcile → validate → version → detect changes → publish. Crawling is polite and legal: robots.txt is respected, hosts are rate-limited, unchanged pages are never refetched, no paywall or CAPTCHA is bypassed. Entity resolution merges records across sources only above a strict similarity threshold; ambiguous matches are reviewed by a human.

Read the methodology {" "} for confidence scoring, ranking rules and coverage caveats, or browse the{" "} source registry .

    {LICENSES.map((l) => (
  • {l.name}
    {l.what}
    {l.license}
  • ))}

Map tiles: OpenFreeMap · © OpenMapTiles · © OpenStreetMap contributors.

Built and maintained by Simon-Pierre Boucher. Questions, corrections, data partnerships or API access:{" "} contact@spboucher.ai .

Hosted on{" "} MacLustr (www.maclustr.io) , a distributed Apple-silicon compute cluster, with dedicated servers for the data and crawl tiers.

Public API: /api/v1/docs — same envelope, same provenance as the site.

); }