Ballad
Product · Product marketing

You ship the release. Ballad ships the launch.

The product marketer you haven't hired, working from what you ship. Connect a repository and each release becomes a changelog entry, and the big ones a launch. Give Ballad your URL and it drafts the positioning every piece is written from. Name a competitor and a battlecard is drafted from their own site and re-checked every week. Customer proof arrives with the customer's consent attached to every quote.

The job

What a product marketer would own, done while you ship.

  • Release notes

    Reads your commits, drops what customers never see, and drafts changelog entries that name only what shipped.

  • Launches

    Proposes a launch week for a big release or a big article, every piece on its day in the right voice, measured as one launch.

  • Positioning and messaging

    Drafts the one-liner, the statement and who you sell to from your site, writes every piece from them, and proposes a change when your buyers move.

  • Competitive intelligence

    A battlecard per competitor, drafted from their own site the moment they're added and checked every week for changes.

  • Customer proof

    Asks the right customers for a story, keeps their consent on every answer, and turns the answers into case studies and proof points.

01 · Release notes

Release notes from your commits.

Connect your repository and Ballad reads what you merge. On a daily or weekly cadence it drops the refactors and test fixes, groups the rest into changes a customer would notice, sizes the release, and drafts the entry for your changelog.

  • Four ways in. A GitHub push or release webhook, a signed request from your own tooling, an agent, or a dialog when you'd rather say it yourself.
  • Names only what shipped. Entries are written from the release itself. No invented feature names, no founder anecdote about a launch that didn't happen.
  • History, back-dated. Backfill turns months of commits into one entry per period, each published at the date it happened.
See our own changelog
app.balladlabs.com/content
This week's release
From 41 commits on main · drafted Friday 09:00
Major
Commits3 customer-facing
Replay any failed job for 7 days
Bump pg driver to 8.13
Show the replay button on the job detail
Refactor advisory lock helper
Email the queue owner when a job is replayed
Fix flaky retry snapshot test
Changelog entry · in review
Jobs you can replay

A job failed at 3am? For 7 days after a run you can replay it with the same arguments, or edit them first. Whoever owns the queue gets an email when it runs again.

driftwood.dev/changelognames only what shipped
Approve & publishEdit
02 · Launches

A launch week, approved once.

A major release, an article worth pushing, or something you're running becomes a proposed launch week: founder posts on each network, a thread, a brand post, the newsletter issue, a Show HN and an image card. Trim what you don't want, pick the start, and run it. Every one lives on its own tab, Campaigns.

  • Planned from what you use. Only the channels and formats you've turned on, each piece pinned to its day and written by the voice that should say it.
  • Or from a paragraph of yours. Office hours, a webinar, a price change: name it, say what it's about in your own words, and the week is planned from that. The pieces can only say what you wrote.
  • Measured as one launch. Reach, clicks and signups rolled up across every piece of the week, not scattered across five dashboards.
app.balladlabs.com/campaigns
Launch week: job replay
Proposed from Friday's major release · 6 of 7 pieces kept
Launches
TueChangelog entryDriftwood
TueFounder post · LinkedInMaya
TueThread · XMaya
WedShow HNMaya
WedImage cardDriftwood
ThuFounder post · BlueskyMaya
FriNewsletter issueDriftwood
Why this week

Failed jobs are what prospects ask about most. A launch that leads with replay answers the question before the demo does.

StartsTue 16 Sep · 08:30
Run the weekNot now
each piece still comes to you for review
Measured as one launch
reach · clicks · signups
03 · Positioning

Positioning that everything is written from.

Positioning usually lives in a slide nobody opens. In Ballad it's the plan: a one-liner you can say out loud, the statement behind it, and the segments you sell to. Every post, launch, bio and brief is written from it, so changing it changes what goes out.

  • Drafted from your site. Give Ballad your URL and a short interview, and it drafts the positioning and the competitors it found before you've written a word.
  • It notices drift. When the one-liner, the statement and the people actually signing up stop agreeing, Ballad proposes a rewording as a diff you can apply or skip.
  • Your product, named properly. Products, their features and their docs are part of the plan, so a launch or a comparison never invents a feature name.
app.balladlabs.com/strategy
Where we stand
Written from your site and a 10-minute interview · every draft starts here
Confidence 78
In one sentence
Background jobs a founder can set up in ten minutes, without running Redis or babysitting a cron box.
Who it's for
SaaS teams of 5–15 engineersoutgrowing their cron boxno Redis in the stack
Proposed plan changefrom this week's signups
Your buyers got bigger. The one-liner didn't.
−SaaS teams of 5–15 engineers
+platform leads at 15–50 engineer teams
61% of signups since Aug have 15+ engineersposts, launches, hub bio follow
ApplySkip
04 · Battlecards

Battlecards that notice when they're wrong.

The trouble with battlecards isn't writing them, it's that they go stale the week a competitor changes their pricing page. Ballad drafts one for every competitor as soon as it's added, whether you named it, onboarding found it or a market review suggested it, from their own site and your positioning. Then it checks the pages it read every week and proposes an update when they change.

  • Where each side wins. Their positioning, audience and pricing, where you win and where they do, and the objections you'll hear with the answer, written against your actual product.
  • Landmines from AI answers. The buyer questions to raise on a call, where AI answers name you and not them, and the ones to steer away from. Kept live, never stale.
  • Take it anywhere. Copy any card as Markdown for your sales deck, your wiki, or the founder about to take a call.
app.balladlabs.com/strategy/battlecards/halyard
Halyard Queue
Drafted by Ballad when Halyard was added · read from 6 of their pages · checked Monday
Copy as Markdown
Their pricing page changedUpdate proposed
Price per million jobs dropped from $12 to $9, and a free tier for small queues appeared.
Apply updateKeep current
Where we win
Replay a failed job for 7 days; Halyard needs a support ticket
Runs in your own Postgres, no Redis
Objection you'll hear
“Halyard is cheaper now.” Lead with the cost of a job that runs twice.
Landmine · from AI answers
Claude names Halyard for “job queue for Node” in 3 of 4 answers. We're in none.
Proof

We moved off Halyard after a job ran twice and charged customers twice. That was a week of refunds.

Staff Engineer, 30-person SaaS company
05 · Customer proof

Case studies, with consent built in.

Ballad watches People for customers who came through your content and converted, and suggests who to ask. You send them a link; they answer six questions and choose, answer by answer, what may be quoted and how they're named.

  • You send the link. Ballad never messages your customers. It hands you a private link to send however you already talk to them.
  • Consent on every answer. Quotable or private, by name, by role, or anonymous. Everything made from the answers honours that, mechanically.
  • One interview, three uses. A case study drafted into your blog, a proof line on the right battlecard, and their words added to what Ballad knows your buyers say.
app.balladlabs.com
A customer answered
Staff Engineer · Fieldstone · came from your cron mistakes article
Quote by role
What were you using before, and what made you switch?quotable
Halyard. A job ran twice in March and we spent a week on refunds.
What changed after the first month?quotable
Failed jobs went from a Friday afternoon of log-diving to one click, and nobody's been paged for the queue since.
Anything you'd warn someone about?private
Moving our old cron schedules over took longer than I expected.
Make from it
Case study in the Driftwood Blog
Proof on the Halyard Queue battlecard
Draft itprivate answers never leave this card
The rest of the loop

One system, not a stack of tools.

What one job learns, the others use: the calendar writes from the positioning, the launches measure through the same signals, and the analysis changes the plan.

Ship on Friday. Launch on Tuesday.

Connect your repository and your channels, and the next release arrives as a changelog entry and a launch week waiting for your yes.