Skip to content

Repository files navigation

The Observatory

A public, interactive living map of the BC + AI, ED + AI, and Futureproof ecosystem — the organizations, projects, events, and initiatives, and how they connect.

It's a WebGL knowledge graph. The repo ships version-controlled open data in /data; production hydrates from Notion → Neon via /api/graph (Status=Public only). Live: https://official.observer · v0.6.0.

status: early

What you can do

  • Explore the ecosystem as a graph; hubs are sized by how connected they are.
  • Filter by initiative (BC + AI / ED + AI / Futureproof) and by entity type; default hub lens hides orgs until you opt in.
  • Search any org, project, event, or initiative and jump to it.
  • Click any node to see its blurb, links, and every connection — or open /e/<stableId> for a shareable page.
  • Pulse shows upcoming Public events (from Notion Next Date) plus the Futureproof countdown.
  • Download the Public graph as JSON: /api/v1/graph (CC BY 4.0). See docs/API.md.

Tech

  • Next.js 16 (App Router) + TypeScript + Tailwind v4
  • Sigma.js + graphology (WebGL graph + ForceAtlas2 layout)
  • MiniSearch for client-side search
  • Optional: Neon Postgres + Notion sync (Status=Public gate)
  • Deploys on Vercel

Run it

npm install
npm run dev      # http://localhost:3000
npm run build    # production build
npm run start    # serve the production build
npm run check:seo # verify raw HTML against a running server on localhost:3000
npm run check:www # verify www → apex redirect config (optional HTTP check)

Set SEO_CHECK_BASE_URL to run the search-discovery check against another local port. Set WWW_CHECK_BASE_URL to also hit a running server with Host: www.official.observer (or the live www host after DNS exists). Canonical host is the apex https://official.observer; www 308s there. Porkbun still needs a www CNAME before the public hostname resolves — see docs/PROJECT-NOTES.md.

Environment

.env.schema is the agent-readable contract. Keep values in ignored local files or the platform store, validate with varlock load --agent --show-all, and run secret-dependent commands through varlock run --inject vars -- <command>.

The data model

Two files drive the seed map (and remain the fallback when no DB is configured):

  • data/entities.json — nodes. Each has an id, type (org · project · event · initiative; person reserved), name, blurb, initiatives, optional region / tags / links / joinUrl / nextDate.
  • data/relationships.json — edges. Each has a source, target, type (e.g. runs, partners, produces), and optional weight.

Live production mirrors the same shape from Observatory Entities and Observatory Relationships (Public rows only; sync prefers Notion Stable ID). Curation: docs/CURATION.md. Ops truth: docs/AGENT-MEMORY.md.

Add an entity, add its relationships, reload — it's on the map.

Embed it

The live graph is embeddable via the chrome-less /embed route (framing is allowed for bc-ai.ca and futureproof.website):

<iframe
  src="https://official.observer/embed?node=initiative-bc-ai"
  width="100%" height="600"
  style="border:0;border-radius:12px"
  title="The Observatory"
  loading="lazy"
></iframe>

Query params: node=<stableId>, initiative=bc-ai|ed-ai|futureproof. To allowlist another host, PR EMBED_HOSTS in next.config.ts (see docs/API.md).

Contributing

Corrections and additions are welcome — see CONTRIBUTING.md.

License

Code is MIT. The dataset in /data is CC BY 4.0.

About

A public living map of the BC+AI, ED+AI, and Futureproof ecosystem — interactive WebGL knowledge graph.

Resources

Contributing

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages