Keep a public record of
everything you ship.

Turn your commits into release notes, automatically. Built for indie hackers and small teams. Add one command to your deploy, then a little glue code puts the release notes on your website, so visitors see your product getting better with every release.

$npx helleze init

Run and follow the prompts. See how it works

commits → release notes
zsh — git log
$git log --oneline
25d73a9 Distribution eval harness reproduces the taste-judge convergence
2d1ebc6 Leter state core: D1 schema and models for file-backed memory
e5cfaa0 Remote MCP server with eight person-tokened tools
3a696e5 X publish worker and DO-alarm scheduler
f6bede0 Server-rendered web queue with traffic-light verdicts
fdca491 Login form preserves the destination through manual sign-in
7a39c24 Leter skill v0: `draft`, `refine`, `teach`, `posted`, `status`, `reset`
ce21385 `/leter scene` capture command (C1): propose, iterate, screenshot, upload
1052c9b Hosted captures: R2 store, upload and manifest routes, immutable serve
2773c7b `/leter audience` community sweep across HN, Reddit, and X
f40fec3 Marketing landing page rewritten
de12ce8 Changelog section labels carry their category as a CSS class
b0dd94e Leter product spec, discovery record, and planning docs consolidated
fe8f864 Changelog prompt updated with inline markup rules for identifiers
886af45 Wrangler types regenerated
helleze.com/changelog
Release notes

This release ships the core leter product: a D1-backed state layer, a remote MCP server with eight tools, an X publish worker with DO-alarm scheduling, a server-rendered web queue, and a scene capture command that proposes narratives and uploads screenshots to R2. It also adds an audience community-sweep command, a distribution eval harness that reproduces the taste-judge convergence, and a rewritten marketing landing page. Product specs, memory files, and planning docs are consolidated in the repo.

New

  • Leter state core: D1 schema and models for file-backed memoryMigration 0005_leter_state.sql introduces the full leter schema: people, voice_rules, profiles, moments, slots, versions, judgments, channels, queue, and ledger. Models follow the src/models pattern; tests cover CAS conflict, hold/publish flow, and streak semantics. 2d1ebc6
  • Remote MCP server with eight person-tokened toolsPOST /mcp speaks stateless JSON-RPC over HTTP — onboarding is claude mcp add --transport http. Eight tools are wired to the state core: slot_open, slot_get, draft_revise, judgment_post, queue_list, memory_get, memory_teach, and brief_get. Every call authenticates a person via hashed bearer token so judgments and edits land attributed. e5cfaa0 dcecd9b d9b20be
  • X publish worker and DO-alarm schedulerPOST /v1/leter/queue/:id/publish posts text-native with a trailing URL split into a reply; POST /schedule sets publish_at and arms the PublishScheduler Durable Object alarm, which publishes due items and re-arms for the next. Held and already-published items are refused; the route returns 503 without credentials. 3a696e5
  • Server-rendered web queue with traffic-light verdictsA Hono page at /leter shows first sentences with amber/green/red dots for your verdict, ready, and held states. Clicking a post opens keep/edit/kill controls with a note field; queued items support lift-hold and send-back (which reopens the slot and logs the retraction as taste data). Auth uses the same personal token as MCP, set once as a cookie at /leter/login. f6bede0 fdca491
  • Leter skill v0: draft, refine, teach, posted, status, resetThe skill/ directory ships the first leter skill bundle — six commands documented in skill/reference/ and routed through skill/SKILL.md. Every product onboards through the setup flow; human input is interview answers and judgments, never file edits. 7a39c24 05f5f32 bf830e0 1457623
  • /leter scene capture command (C1): propose, iterate, screenshot, uploadThe scene skill command mines the codebase and leter's product memory to propose a narrative, iterates until agreement, then captures screenshots and uploads changed PNGs to R2 when a project key is configured. The flow stops at mine checkpoint, interview, and judgment gates — capture refuses to run with empty interview or judgments. The agreed one-line story persists in scenes.json. ce21385 a27add8 f8fb7bb 25fc114 927f7ce 72f47ea 27d6d10 196b436
  • Hosted captures: R2 store, upload and manifest routes, immutable serveMigration 0007_captures.sql adds content-addressed capture history in R2 and D1. Project-key-authed PNG upload includes two-level dedup (unchanged slot is a no-op; known bytes under a new slot skip the R2 put), a latest-per-slot manifest for the CLI's prior-hash diff, and public immutable serving at /c/:sha. 1052c9b
  • /leter audience community sweep across HN, Reddit, and XThe audience command sweeps Hacker News, Reddit, and X for relevant community signals and returns ranked, cited findings. It started as a POC and is now a first-class leter skill command, with the engine bundled in skill/scripts/audience/ and documented at skill/reference/audience.md. 2773c7b 624dfe0

Improved

  • Marketing landing page rewrittenThe landing page copy and layout in src/views/landing.tsx and src/views/layout.tsx have been rewritten based on a new brief and page spec in marketing/helleze/. The RSS feed link is preserved and the apex test tracks the updated copy. f40fec3 e8e8479
  • Changelog section labels carry their category as a CSS classEach section label in the changelog view now includes its category as a CSS class (issue #12), making it easier to style or filter entries by type. de12ce8

Fixed

  • Login form preserves the destination through manual sign-inThe /leter/login form now carries the intended destination so users land where they were headed after authenticating, rather than at a fixed post-login page. fdca491

Dogfooding in public. This is our real release notes page.

You ship like never before, while your website sits frozen in a coma.

That page is your pulse to the outside world, and right now it reads flat.

From commit to release notes, automatically.

Set it up once, then ship like always. The release notes keep themselves current.

Set it up

  1. Wire it into your deploy.

    Run helleze init, follow the prompts, then add helleze release to your deploy.

    $npx helleze init
    $npx helleze release
  2. Put it on your website.

    A few lines of glue render /changelog in your own layout.

    // your /changelog page
    const notes = await fetch(
      "https://helleze.com/acme/app/changelog.embed.html"
    ).then((r) => r.text());

Then, on every deploy

  • Reads every commit, and the diff when the message is thin.
  • Sorts changes into added, fixed, and breaking, and never buries a breaking one.
  • Writes every line in plain language, for the people who use your product.
  • Ties every line to the commits it came from.
  • Keeps internal work like refactors and dependency bumps off the public page.

With your own key, your code never leaves your machine. Only the finished release notes reach us.

Skip the build. Skip the upkeep.

No signup, no dashboard, one command to start. You could vibecode this yourself, but then you're maintaining another app instead of focusing on yours.

A real history from day one.

It starts with everything you've already shipped, not just your next release. Your first visitor sees a product with a track record.

Try it free on one public repo. Pay to cover everything you ship.

Free runs on your own key. Pro runs on yours or ours.

Free
$0forever
Start free
  • One public repository
  • Bring your own key
  • The hosted page and the formats you add to your website
  • Light helleze branding
Pro
$9/ month
or $90 / year, two months free
Go Pro
  • Every repo in your account, public or private
  • Bring your own key, or we run the model for you
  • No branding

Nothing made up. Each note backtracks to real commits in your history.

Start free in one command.

$npx helleze init

One public repo, free. Bring your own key.