This repository uses Docusaurus to publish the documentation pages seen at docs.overturemaps.org
blog/: Entries for the Overture engineering blog available at docs.overturemaps.org/blogcommunity/: The community page that showcases Overture data being used in the wild.community-projects.json- source data for all community project cardsog-image-cache.json- cachedog:imageURLs for entries without an explicitimagefield (see OG Image Cache below)
docs/: The main documentation pages available at docs.overturemaps.org/. The sidebar for these pages is manually curated in thesidebars.jsfile.release-blog/: Release notes for every Overture data release. The latest release is always available at https://docs.overturemaps.org/release/latest/- Notice there is no
schema referencefolder. See below.
The Overture schema repository github/overturemaps/schema maintains the official Overture schema and the documentation surrounding the actual schema reference pages. This is to ensure that the schema, documentation, and relevant examples are always in-sync.
The script fetch_schema.sh injects the contents of the schema's documentation into docs/schema/ and copies the schema YAML files and examples to docs/_schema and docs/_examples, respectively. This script runs with every build.
Therefore, anything available at docs.overturemaps.org/schema (under the Schema Reference link in the header) comes from the Overture schema repository, not this repository. Any changes to schema will be overwritten on every build.
Docusaurus requires node. First, install the required packages:
npm installThen, start the local server:
npm startNow navigate to http://localhost:3000 to see the live preview.
npm start- Start the development servernpm run build- Build the production site (also shows locale/translation warnings and broken link checks)npm run serve- Serve the built site locallynpm run deploy- Deploy the sitenpm run fetch-og- Fetch and cacheog:imagemetadata for community project entries (see OG Image Cache below)npm run swizzle- Customize Docusaurus components by "ejecting" them for modificationnpm run write-translations- Generate translation files for internationalizationnpm run write-heading-ids- Auto-generate heading IDs for better linking
The community page displays project cards with images. Each entry in community/community-projects.json can include an optional "image" field. For entries without one, the site falls back to a cached og:image fetched from the project's URL.
The cache lives in community/og-image-cache.json and is committed to the repository so CI builds never make external HTTP requests.
When to run it: after adding or updating entries in community-projects.json.
npm run fetch-ogThe script (scripts/fetch-og-images.mjs):
- Skips entries that already have an explicit
"image"field - Re-validates any previously cached non-empty URLs via a HEAD request (
Content-Type: image/*) and clears invalid ones - Fetches the HTML for uncached entries, extracts
og:image, and validates the URL before writing it to the cache - Is idempotent - safe to re-run at any time
Cards with no image (neither explicit nor cached) display a branded gradient placeholder.
Each production build generates llmstxt.org-standard files for use with LLMs and AI tools:
| File | URL | Contents |
|---|---|---|
llms.txt |
docs.overturemaps.org/llms.txt | Index of all docs and blog posts with links |
llms-full.txt |
docs.overturemaps.org/llms-full.txt | Full content of all docs and blog posts |
llms-schema.txt |
docs.overturemaps.org/llms-schema.txt | Full schema reference only (useful for data model questions) |
These are generated by docusaurus-plugin-llms and configured in docusaurus.config.js.