Skip to content

Commit c3cda24

Browse files
shenxianpengclaude
andauthored
feat(landing): rebuild the home page around the promise, not the definition (#36)
## Why The home page was written for someone who had already decided to use Commit Check. Its first three screens were "One config, enforced everywhere", "Start with two commands", "Why it exists" (four paragraphs of prose), "What it checks", "What it is not" — a definition and its boundaries. Someone who has never heard of the project needs to know what it takes off their hands, and they decide that in about thirty seconds. **Please look at the deploy preview rather than the diff** — this is a visual change. ## What the page says now | | | |---|---| | **Hero** | `One config file. Every place your team commits.` beside a real transcript of the tool handing back the corrected line. Chosen over "Bad commits never reach main" (untrue: the hook is bypassable) and over the aggressive framings, because the landing page's first job is separating this from commitlint and GitHub Rulesets, and one config across hook + CI + App + MCP is the thing no competitor does. | | **Proof** | The eighteen organisations already on the page, moved up to directly under the hero where proof belongs. | | **Problem** | The four costs from "Why it exists", compressed from prose into cards you can scan: hand-written release notes, `git bisect` landing on a merge commit, a commit authored by `ec2-user`, a missing sign-off found six months late. The paragraph that ties them together is kept verbatim — it was already the best sentence on the page. | | **What the 22 rules cover** | Six cards linking into the rule groups. | | **What your team sees** | The job summary table and tree, the merge-box screenshot, and the terminal recording. | | **Start / Pick where it runs / Pricing / FAQ** | Two commands; five surfaces with one line each on when to pick it; Free vs Team with **no dollar figure** (none exists in any repository — the number lives on the Marketplace and would go stale here); eight questions people actually ask before adopting. | ## Nothing on it is unverifiable The rule count is `len(ALL_RULES)` = 22. The terminal samples are transcripts — I ran them: ``` $ echo 'Fix: add streaming support' | commit-check --message CC001 message check failed ==> Fix: add streaming support Suggest: Use "fix: add streaming support" ``` The ten AI tools are `len(ALL_KNOWN_TOOLS)`. The `Fix: feature/Add-Login` in the job-summary sample is the real `fix` field from `--format json`. No download count, star count, coverage percentage, Scorecard score or install count appears anywhere — none of those are checkable from the repositories. ## The header is deliberately untouched I had planned to override `{% block header %}` for a slim brand bar. Reading the theme bundle showed that would break navigation. Instant navigation swaps a fixed list of elements between documents: ```js for (let o of ["[data-md-component=announce]", "[data-md-component=container]", "[data-md-component=header-topic]", "[data-md-component=outdated]", "[data-md-component=logo]", "[data-md-component=skip]", ...]) { let n = ue(o), i = ue(o, e) if (n !== undefined && i !== undefined) n.replaceWith(i) } ``` `{% block header %}` renders outside `[data-md-component=container]`, so a header overridden here would follow the reader onto every docs page, and the docs header would follow them back. `landing.css` restyles the stock header instead. The same function diffs `<head>`, so the stylesheet is appended on arrival and removed on the way out — which is why it is linked from the template rather than listed in `extra_css`, and why the twenty-odd documentation pages never load it. Verified in the built output: all six swap targets are present on both the landing page and `/rules/`, `landing.css` is in the head of one and not the other, and the sidebar still renders on docs pages. ## Assets `demo.gif` is copied in from the CLI repository rather than hotlinked, so the page cannot break when another repository is reorganised. Measuring it changed where it goes: 690 frames, the first empty and the last full, so putting it in the hero would have greeted visitors with an empty terminal. It sits below the fold, lazily loaded, with frame 630 (the ink peak) shown instead under `prefers-reduced-motion`. The merge-box screenshot is the Marketplace image cropped past its padding — 35% of that file is grey border for the listing's aspect ratio — and scaled to 1200px. The other three Marketplace screenshots are not used: they show report pages, which are Markdown, and the site renders that natively in both colour schemes instead of freezing a light-mode screenshot into a PNG. ## Left for a follow-up `docs/overrides/home.html` and roughly 150 lines of home-page rules in `docs/stylesheets/extra.css` are now unused. They stay in this PR to keep it reviewable, and come out once this is confirmed in production. ## Verification - `mkdocs build --strict` clean; `pytest tests/` 10 passed. - Every anchor linked from the page checked against the built HTML (`#commit-message-rules`, `#branch-rules`, `#author-rules`, `#push-and-file-rules`, `#rule-index`, `#ai-attribution`). - `/rules/` confirmed byte-for-byte unaffected by the new stylesheet. Worth a look in both colour schemes and on a phone — the two full-bleed bands use negative margins to escape `.md-grid`, which is the part most likely to need a nudge. 🤖 Generated with [Claude Code](https://claude.com/claude-code) https://claude.ai/code/session_018xYa7m3qup5wyN5MaXFgf6 --- _Generated by [Claude Code](https://claude.ai/code/session_018xYa7m3qup5wyN5MaXFgf6)_ <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit - **Documentation** - Redesigned the Commit Check landing page with a new hero, terminal demonstration, clearer product benefits, enforcement options, pricing information, and FAQ. - Added responsive styling for the new landing-page layout, including logo grids, feature cards, pricing sections, screenshots, and accessibility-friendly motion behavior. - Updated product messaging to describe a single configuration file across CLI, pre-commit hooks, CI, and AI agents. - Replaced fixed rule-count references with wording that remains accurate as documented rules change. <!-- end of auto-generated comment: release notes by coderabbit.ai --> --------- Co-authored-by: Claude Opus 5 <noreply@anthropic.com>
1 parent 837c88a commit c3cda24

9 files changed

Lines changed: 601 additions & 267 deletions

File tree

docs/assets/demo-poster.png

66.4 KB
Loading

docs/assets/demo.gif

310 KB
Loading

docs/assets/merge-box.png

117 KB
Loading

docs/compare/tools.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ for the current state. GitHub's own rulesets are on
1616
| [commitcheck](https://github.com/marketplace/commitcheck) | A hosted App that applies one regular expression, set in its web admin | Commit message, pull request title or description, by regex | GitHub App | Free for public repositories; $25 a month for private ones |
1717
| [DCO app](https://github.com/apps/dco) and [DCO-2](https://github.com/cncf/dco2) | The sign-off check the Linux kernel and the CNCF use, with a remediation flow for missing sign-offs | `Signed-off-by` trailers | GitHub App | Free, open source |
1818
| [PRLint](https://github.com/ewolfe/prlint), [PR Title Checker](https://github.com/marketplace/actions/pr-title-checker) | Regular expressions over pull request fields | Title, body, labels, branch | App / Action | Free, open source |
19-
| **Commit Check** | One rule engine with [22 documented rules](../rules.md), run as a hook, a CLI, an Action, a hosted App or an MCP tool | Commit message, branch name, author name and email, sign-off, AI attribution, force pushes, file size and paths, tag names; the squash message of a pull request | All of the above | Free, open source; the App's private organization repositories move to a paid plan later |
19+
| **Commit Check** | One rule engine, [documented rule by rule](../rules.md), run as a hook, a CLI, an Action, a hosted App or an MCP tool | Commit message, branch name, author name and email, sign-off, AI attribution, force pushes, file size and paths, tag names; the squash message of a pull request | All of the above | Free, open source; the App's private organization repositories move to a paid plan later |
2020

2121
## What is different about Commit Check
2222

0 commit comments

Comments
 (0)