Back to replicas

Replica documentation

To Build a Better Ballot

Local route /interactive-explanation/ballot/ vendors the original article, playable election modules, and sandbox with only hosting-safe metadata fixes and the shared public reference footer layered on top.

Upstream snapshot: fc9716c57467b5889eac64dd6bcf3512a4e298c3
License: CC0 1.0

Source snapshot

Vendor baseline came from the published ncase/ballot site tree. The local copy keeps the article-scale index.html, the play/ election modules, the standalone sandbox/ route, and the original media assets.

  • Live page verified against https://ncase.me/ballot/ on 2026-03-10.
  • CC0 provenance stays in docs while the public page uses only the shared reference footer.
  • Share URLs, metadata, and subpath handling were fixed before any public-surface cleanup.

Asset and source map

  • ballot/index.html preserves the long-form narrative and embeds each election module in sequence.
  • ballot/play/*.html contains the draggable voter/candidate scenes and comparison experiments.
  • ballot/play/js/ contains election logic, counting visuals, and the sandbox runtime.
  • ballot/sandbox/ preserves the standalone scenario builder and sharable model route.
  • ballot/img/, ballot/social/, and ballot/splash/ stay vendored as-is.

Known deviations

  • The public article and sandbox now use the shared footer instead of any floating provenance UI.
  • Top-level self-promo, repo, and supporter blocks were removed from the public page body.
  • Static share anchors and sandbox save links now resolve to the local replica routes instead of embedding the original host.
  • Top-of-page translation and original-site link blocks were removed so the public route stays footer-only.

Reproduction notes

  • Vendor the original article tree first, then verify each embedded election scene before cleanup edits.
  • Preserve the sandbox as a separate route so saved scenarios keep working under the local subpath.
  • Audit both the opening translation blocks and closing share markup, then run node interactive-explanation/tools/check-public-surface.mjs.

Parity checklist

Loading...
Loading parity contract...