Skip to content

Repository files navigation

Git Insights · Whole of government software atlas

Twelve visual studies of the de-identified gov-metadata data pack extracted by the Git Insights Hub: 4,041 applications, 2,182 business capabilities, and 40 domain clusters mapped from source code up to government function. Prepared by the Ministry of Technology and Innovation for the Velocity Symposium, July 28, 2026, and bundled with the data pack for third party use.

Quick start

Any static web server works. With Node.js 18 or later:

node scripts/serve.js          # serves the project at http://localhost:8123

or with Python:

python3 -m http.server 8123

Then open http://localhost:8123 in a browser. The landing page enumerates all the visuals. Opening the HTML files straight from disk will fail, because browsers block fetch of the JSON data over file://. Serve the folder, then browse.

The twelve visuals

# Page What it shows
01 visuals/01-command-dashboard.html Cross-filtered estate overview with drill in to single records (Vue)
02 visuals/02-capability-treemap.html Zoomable treemap of domains and capabilities (D3)
03 visuals/03-knowledge-graph.html Force-directed knowledge graph of all linked entities (canvas)
04 visuals/04-estate-matrix-3d.html Orbiting 3D matrix of domains × technology × risk (WebGL)
05 visuals/05-capability-tiles.html Business capability tile map with switchable metrics (Vue)
06 visuals/06-capability-sunburst.html Zoomable sunburst of government function (D3)
07 visuals/07-portfolio-flows.html Sankey from ministry portfolio to platform to disposition (D3)
08 visuals/08-risk-cost-landscape.html Risk × rebuild cost heatmap plus a 4,041 dot beeswarm (canvas)
09 visuals/09-briefing.html Four page print designed executive briefing, exportable to PDF
10 visuals/10-data-explorer.html Three linked columns that walk the joins between the JSON files (Vue)
11 visuals/11-knowledge-graph-3d.html The knowledge graph as an orbiting 3D model with re-wirable cluster links (3d-force-graph)
12 visuals/12-ministry-view.html Ministry portfolio profiles plus a cross-portfolio capability duplication matrix (Vue)

Languages

The interface is bilingual. An EN | FR switcher sits in every masthead; the choice persists in the browser and applies across all pages. The published data (domain, capability, and portfolio names, band values, UUIDs) stays exactly as extracted in both languages. To add another language, add a locale to assets/js/giv-i18n.js and a dictionary entry per page.

How it works, briefly

Every page loads the JSON in data/ at view time through a small shared layer (assets/js/giv-data.js), computes its aggregates in the browser, and renders with vendored copies of D3 v7, Vue 3, three.js, and 3d-force-graph (assets/vendor/, no build step, no external calls beyond a font import). Styling follows the Government of Alberta design system tokens (assets/css/goa-viz.css), and all text follows STYLE-GUIDE.md.

Regeneration. Replace the files in data/ with a newer extract and every visual, including the print briefing, reflects the new pack on the next page load. Nothing is precomputed into the pages. Counts shown in this README and in page subtitles that name run 3 figures live only in prose; the rendered numbers always come from the data.

Server side assets

npm install                    # installs puppeteer (the only dependency)
node scripts/export-pdf.js     # renders visuals/09-briefing.html to exports/git-insights-briefing.pdf
node scripts/capture.js        # screenshots every page into captures/ (also used as landing thumbnails)
node scripts/visual-review.js  # optional: sends captures to a vision model for design critique

Why this exists

The data pack describes what government software does, on what technology, at what scale, risk, and estimated modernization cost, so partners can propose remediation, consolidation, open source initiatives, and modernization with a shared, evidence based picture. The visuals make the shape of that evidence legible: where delivery concentrates, where the same capability is built many times, where risk and cost cluster, and how the files join by capability name and application UUID.

The data

data/ holds the four distributable files: repos.json, capabilities.json, tech_stacks.json, and provenance.json, plus DATA-README.md, which documents the extraction method, the de-identification screening (allowlisted fields, deterministic sweeps, k-anonymity at k=5, and a frontier model screen), and the caveats. Applications appear only as opaque UUIDs; security posture appears only in bands. Cite a UUID in any proposal and the issuing government can map it back internally.

Deployment

The whole atlas is static files plus a stdlib-only Node server, so it runs anywhere:

  • Cloud Run (SHELL sandbox): publish-app git-insights-vis uses the included Dockerfile (node:22-alpine, serves on $PORT).
  • GitHub Pages: serve the repository root as is. Everything is relative paths and client side fetch of data/*.json, no build step; a .nojekyll file is included. Point Pages at the root of the default branch and the landing page is index.html.
  • Anywhere else: any static file server over the project root works.

Publishing safety

scripts/screen-names.py scans every git-tracked file against the internal cross-reference of real repository names (which lives outside the repo and never ships) and fails on any match. It is wired into this working copy as pre-commit and pre-push hooks, so a leak cannot reach GitHub from the sandbox. Run it directly any time with python3 scripts/screen-names.py. Mirrors of this repository (including the public copy) inherit already-screened content; push new work from an environment that holds the cross-reference so the screen can run.

License

MIT, see LICENSE. The Alberta Signature and the Government of Alberta visual identity remain subject to the Government of Alberta identity program and are included here for authorized government use.

About

The Git Insights (anonymized) open data sample from the Velocity White Papers / Velocity Symposium 2026

Resources

Stars

1 star

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages