00 // One open-source instrument for the whole trail

Your GitHub work,
mapped clearly.

Explore a clearly labelled synthetic example, then generate your own portfolio from public GitHub evidence. CommitAtlas ships hosted SVG cards and scenes, ten static card types, an HTML project dashboard, and a credential-free GitHub Action.

This landing page uses deterministic octocat data. It does not represent your account until you run a Studio preview or generate a static snapshot.

01 // Product boundary · August 2026

What you can use today.

Public-only by design
Unknown is never green

Available now

Hosted cards + Studio

Eight public SVG routes with synthetic or live-public previews, plus an HTML dashboard with project actions.

Open Studio
Available now

Static portfolio

Ten card types, responsive Atlas companions, a project catalog, and hash manifests from one public snapshot.

View generator
Source install

Distribution

The pinned GitHub Action and repository CLI work now. The packages are not published to npm, and the Action is not listed in Marketplace.

View Action
Explainer only

Design lab

The fascia, six-state rack, and evidence drawer explain product rules. They are not selectable exports or a hosted monitoring service.

See shipped outputs

02 // From evidence to embed

One source. Several useful exits.

Preview, generate, embed
No publishing service implied

Start with a preview, then choose the distribution surface that fits the place your work has to live. Each path keeps the source and its limits visible.

  1. 01

    Preview the evidence

    Use synthetic data to explore safely, or enter a GitHub handle for a public-only preview.

    Open Studio
  2. 02

    Take the hosted exit

    Use a hosted SVG URL or copy the Studio's HTTPS Markdown after a validated preview.

    Open Atlas SVG example
  3. 03

    Generate the static exit

    The static CLI or pinned Action fetches once, stages the selected ten cards, and writes a byte/SHA-256 manifest.

    Static CLI Pinned Action
  4. 04

    Embed the committed output

    Commit the generated artifacts to a profile README or site. The manifest.json records what was actually written.

    See an example profile

Hosted: 8 SVG routes and Studio previews. Static: 10 card types, including Cadence and Releases, which are static-only.

The design lab below is optional: it explains evidence, freshness, and state vocabulary on this page; it is not an export, monitoring service, or extra card.

02 // Specimen tray · 8 card routes

See the whole toolkit.

Every preview is a real SVG response
Safe, deterministic octocat data · No GitHub calls are made to render this page

Synthetic demo: Developer atlas for octocat

CARD 00 // ATLAS · FLAGSHIPM6

ROUTE  /api/v1/cards/atlas.svg
SIZE   860×380 fixed · <30,000 UTF-8 bytes
LIMITS No script · No foreignObject · No external refs
MOTION hosted: none | subtle | ambient

Caveat printed on every atlas: longest streak is window-bounded · rhythm is not a GitHub rank
M6 — survey beam: a 70px gradient sweeps the plate left to right, 7s, linear, infinite. The card beneath never moves.

CARD 01 // ATLAS COMPACT480×570 FIXED

Synthetic demo: Developer atlas, compact for octocat

The full atlas in a 480×570 portrait plate, for a README column that has no room to run wide.

MOBILE READMEOpen SVG

CARD 02 // PROFILERESPONSIVE

Synthetic demo: Profile snapshot for octocat

Public repository, follower, contribution, and star signals at a glance.

24 REPOS · 312 FOLLOWERS · 487 STARSOpen SVG

CARD 03 // STREAKRESPONSIVE

Synthetic demo: Contribution streak for octocat

Current and longest observed streaks with an honest history boundary.

WINDOW-BOUNDED · NO GUILTOpen SVG

CARD 04 // BREAKDOWNRESPONSIVE

Synthetic demo: Contribution breakdown for octocat

Exact categorized counts when available; otherwise clearly labelled public-profile percentages.

EXACT COUNTS OR LABELLED PROFILE %Open SVG

CARD 05 // RHYTHMRESPONSIVE

Synthetic demo: Personal rhythm for octocat

Transparent personal consistency based on density and streak — not a GitHub rank.

72/100 · NOT A RANKOpen SVG

CARD 06 // ACTIVITYRESPONSIVE

Synthetic demo: Activity map for octocat

A compact calendar view of public contribution density over time.

EXACT DATE WINDOWOpen SVG

CARD 07 // LANGUAGESRESPONSIVE

Synthetic demo: Language mix for octocat

Public repository-language distribution, presented without proficiency claims.

REPOSITORY SHARE · NOT PROFICIENCYOpen SVG

CARD 08 // PROJECTSRESPONSIVE

Synthetic demo: Project signals for octocat

Declared lifecycle and project signals for Hello-World and Spoon-Knife.

SIX HEALTH STATES · UNKNOWN ≠ FINEOpen SVG

03 // Atlas × 4 card themes — paper ships for light READMEs

Synthetic demo: Developer atlas in the aurora card theme
AURORA · #09131F
Synthetic demo: Developer atlas in the midnight card theme
MIDNIGHT · #05070D
Synthetic demo: Developer atlas in the paper card theme
PAPER · #F8FAFC · ON LIMESTONE
Synthetic demo: Developer atlas in the ember card theme
EMBER · #0D1117 · DEFAULT
Hover: the plate lifts 3px · crop marks brighten · transform-only, 180ms easePlates, not cards: the page frames; the SVG is the untouched specimen
04 // Optional design labSee how CommitAtlas decides what to trust.Landing-page explainers only — these instruments are not separate cards or monitoring services.Open lab
01 // Momentum plotter · 28dM1
vs prior 28d
02 // Rhythm · 0–100M2

Evenness · not a rank
03 // Density survey · 365dM3
active days · /day
04 // Portfolio reticle · CIM4
Unknown is never green
Instrument scaleHinge #FFD166 · lives in the cardsChrome · per theme
STN A // Contribution signalsDistribution · R0

The trail, counted honestly.

Contributions
Active days
Cmt / PR / Rev / Iss

0/2 CI PASSING · 0 ATTENTION · 2 UNCONFIGURED — shown dark, never green

STN B // Distribution surfacesFour ways out · R12

The same evidence, wherever it has to live.

8SVG routes
4Card themes
0Credentials required

Observed → derived → hypothesis · every number carries its caveat

✓ Public by default   ✓ Honest freshness   ✓ Live or staticReduced motion: complete static page · nothing enters from invisible

04 // Portfolio signals · CI state rack

A dark gauge is a finding, not a failure of the page.

Live synthetic reading: CI passing · 0 attention · 2 unknown
72h freshness window · calculateCiState()

Design-lab explainer — not a separate monitoring service. Every state gets a distinct lamp shape, a distinct trace, and a printed word — colour is never the only encoding. The three “we do not know” states are deliberately the most visually interesting bays in the rack.

UNAVAILABLE—
NO SIGNAL

PROVIDER RETURNED NOTHING.
NOT ZERO — UNOBSERVED.
LAMP UNLIT · STEADY · NO PULSE

UNCONFIGURED×2

NO PROBE FITTED.
NO NAMED WORKFLOW TO WATCH.
EMPTY SOCKET · DASHED TRIM

STALE—

LAST OBSERVED >72H AGO.
WAS PASSING · NO LONGER CLAIMED.
NEEDLE FROZEN · DOTTED TRACE

PASSING—

NAMED WORKFLOW GREEN,
OBSERVED INSIDE 72H.
LAMP LIT · SOLID TRACE · ✓

FAILING—

RED RUN, FRESH EVIDENCE.
A FACT, NOT A SHAME.
DIAMOND LAMP · SPIKED TRACE

PENDING—

RUN IN FLIGHT.
ACQUIRING — THE ONLY STATE
ALLOWED TO PULSE. HALF LAMP

NO SIGNAL
M7 // Acquisition sequence — how a gauge fails honestlyM7

On load, an unavailable gauge does not snap to an error badge — the needle hunts: it rises toward a reading, stutters twice, falls back to the −90° rest stop, and the lamp never lights. The plate reads NO SIGNAL from frame zero, so the motion adds theatre, never information.

5.5s cycle · cubic-bezier(.4,0,.3,1) · transform-only · reduced motion: needle rests at −90°, plate unchanged

Six shapes: plate · socket · frozen clock · disc · diamond · half-disc — legible in greyscaleAn unknown, missing, or stale signal is never displayed as healthy

05 // Evidence layer · observed → derived → hypothesis

Facts become rates. Rates become guesses.

10 readings explained on this page
Every dotted number opens the drawer

Design-lab interaction — not an exported card. Every reading sits on one of three rungs, and every dotted number on screen answers “how do you know that”. CommitAtlas already refuses to paint an unknown signal green; this is the same rule one level up, applied to the difference between a number that was counted and a number that was inferred.

Order 1 · OBSERVED ●THIS IS IN THE DATA

contributions

Rule: contribution-total-observed

Order 2 · DERIVED ◍THIS FOLLOWS FROM THE DATA

active-day density

Rule: density-derived

Order 3 · HYPOTHESIS ○THIS IS A GUESS — LABELLED AS ONE

rhythm level

Rule: rhythm-band-hypothesis

Rung is encoded three ways: word · dot (solid / half / dashed) · border style.
Every reading sorts onto these three rungs — never a fourth.

Closed — every dotted number is a button: rhythm scorePress any dotted number: “how do you know that?”

What the drawer shows

One shared drawer rather than a popover per number: there is only ever one question being asked, and a single dialog is the only version of this that stays navigable by keyboard.

BASIS
Where the number came from, naming the window and the source.
FORMULA
Printed in mono for every derived and hypothesis reading. An observed value has none to show, and shows none.
CAVEAT
What the number cannot see. Never omitted, never softened.

M8 — drawer: slides up 12px and settles · 260ms · cubic-bezier(.2,.9,.3,1) · ESC or click outside to close · reduced motion: appears in place, fully drawn.

COVERAGE: 17 DIMENSIONS · 365-DAY PUBLIC WINDOW · "EVERY NUMBER SHOULD KNOW WHAT IT CANNOT SEE"Source: SYNTHETIC OCTOCAT

05 // Research bridge · C0 invented evidence

The baseline won. That is the finding.

Decision · reject BOCPD

An offline method trial compared Gaussian BOCPD with the retained Rolling median and MAD baseline. The evidence is an invented C0 weekly system series — not GitHub profile evidence and not production monitoring.

Detection · baseline / candidate75% / 75%Equal measured detection
False alerts / year · baseline / candidate2.97 / 4.2Lower is better; candidate is higher
Threshold viabilityBoth nonviableNeither selection cleared its gate

The candidate is rejected because both selections are nonviable and false alerts are higher. Rolling median and MAD stays as the retained fallback.

Open the public method trial

Read this as research, not a product signal. It does not establish real-repository validity, support person-level inference, promote a model, or establish online PELT performance.

Pinned from Developer Lens producer commit 425708e03e7b · run wbc1_demo · no runtime fetch

06 // Configure without guesswork

One toolkit. Every signal.

Choose live public data or a clearly marked synthetic preview, declare your own project lifecycles, then copy only the cards you want as README Markdown.

Open the Studio