[ use case · blog & changelog ]

The launch post is already half-written.

Every merged PR is a candidate for a changelog entry. The biggest ones become blog posts. Quill reads the diff, drafts the copy, and queues both for your approval — so "we shipped a thing" never slips into "we shipped a thing two months ago and never wrote about it."

[ how it works ]

PR → tiered draft → your queue → published.

Quill grades every merged PR by impact. Tier 1 lands as a draft launch post. Tier 2 lands as a changelog entry. Tier 3 is silent (most PRs should be — internal refactors don't need a launch). You can override the tier from the queue with one click.

1

PR merges to main.

Webhook fires. Quill reads the diff, the PR title, the description, the linked issues, and the files touched. If a feature flag flipped from off to on, that signals "launch." If a route file changed, that signals "API change."

2

Tier scoring runs.

Quill assigns a tier based on diff size, files touched, feature-flag state, and any "Launch:" / "Changelog:" labels you've taught it to respect. The score is editable per-PR if you want to demote a noisy one or promote a quiet one.

3

Drafts queue for review.

Tier 1 PRs become draft blog posts with a headline, summary, screenshots from the relevant UI change, and a CTA. Tier 2 PRs become draft changelog entries — single paragraph, version-tagged, dated to the merge time.

4

You publish — or you don't.

One click publishes. Edit the headline first if you want. Reject if the timing is wrong (we'll re-queue for the next release). Nothing goes live without an approver — but the approver is one click, not an afternoon at the keyboard.

[ two formats, one source ]

The blog and the changelog speak to different audiences.

Blog posts for narrative

Tier 1 launches get the full treatment: headline, hero image, context (what existed before), the change (what's new), why it matters (the user-facing reason), and a clear CTA. Quill drafts; you bring the editorial voice.

Changelog for specifics

Tier 2 entries are factual and short. Date, version (if you version), one-sentence summary, optional code diff. Released under semver-friendly headings so customers can pin to a version and read forward.

Linked to the diff

Every published post links back to the merged PR. No "we ship a thing!" without the specifics — readers can click through to the actual code that ships the feature. Transparency without effort.

Distribution included

RSS feed, OpenGraph cards, Twitter/X meta, sitemap entries — all auto-generated. Send your in-product changelog announcement straight from the queue. Subscribers get notified without you toggling a switch.

[ what teams notice first ]

The marketing team stopped asking "did anything ship this week?" Within a month they were asking "can we slow down the changelog? We can't keep up with the launches."

— PM, growth-stage developer tools
[ what it stops happening ]

The three failure modes Quill removes.

"We shipped it but never told anyone."

The most common failure mode. Quill makes the announcement the path of least resistance — it's literally already drafted, you just have to click approve.

"Our changelog hasn't been updated since March."

Changelogs decay in inverse proportion to how hard they are to update. Quill makes the update automatic — the entries are already in your queue, dated correctly, written in the right voice.

"We launched without a blog post."

The launch ships, you tell yourself "we'll write the post tomorrow," tomorrow is six weeks from now. Quill writes the draft as the merge happens. You're not starting from zero on Friday afternoon.

Make shipping the announcement, too.

Connect a repo. Push a PR. See the draft post Quill writes from it. Decide whether you'd publish it.