Skip to content

chore(marketing): 0.1.0 launch campaign drafts - #1074

Open
blove wants to merge 2 commits into
mainfrom
blove/v0-1-0-launch-campaign
Open

chore(marketing): 0.1.0 launch campaign drafts#1074
blove wants to merge 2 commits into
mainfrom
blove/v0-1-0-launch-campaign

Conversation

@blove

@blove blove commented Sep 8, 2026

Copy link
Copy Markdown
Contributor

Campaign drafts for the 0.1.0 announcement post, which is now live on production.

Merging this posts nothing. Every draft is review_status: awaiting-brian.

Files

File Channel Posting route
-launch-plan.md sequencing, guardrails, measurement
-x.json 8-part X thread adapter
-devto.json Dev.to article adapter
-manual-channels.md HN, r/Angular, Discord, LinkedIn, newsletter manual

Same structure as grade-a-trust, which is the only prior campaign in this directory.

The one decision worth arguing with

"We released 0.1.0" is not a story, so no channel gets that sentence. Three angles, assigned by what each channel rewards:

  • Hacker News → the versioning confession. 55 breaking changes shipped under a patch counter. A version-bump submission gets flagged as promotion; a self-critical semver post is something HN argues about for free. Title candidates avoid the version number entirely.
  • r/Angular + Dev.to → "where it stops." The proxy, the keys, the interrupt panel. Includes the correction where the homepage had wrongly claimed automatic approval holds.
  • X, Discord, LinkedIn → complete-and-free, with the paid-tier qualifier in the same breath every time.

Sequence is Day 0 X/Discord → Day 2 Dev.to → Day 4 HN + Reddit → Day 5 LinkedIn → Day 6–7 newsletters. The two-day gap before HN is so Dev.to comments can catch a wrong technical claim while correcting it is still cheap.

Two findings from reading the existing assets

  1. marketing/assets/src/brand.ts:14 defaults the card eyebrow to 'Agent UI for Angular · MIT' — retired positioning. public-copy-contract.ts does not scan marketing/, so nothing catches this. The plan requires an explicit eyebrow and shows the call. Worth fixing the default separately.
  2. The X adapter's metrics() is a stub until the API tier upgrade, so impressions are not collectable. Success is defined on referral sessions and /docs/chat/getting-started/try-without-a-backend instead.

Deliberate departure from precedent

No competitor comparisons. grade-a-trust named other frameworks because it was reporting a public leaderboard; this campaign has no such cover, and a "vs them" frame invites a fight over a story that is entirely about what we ship.

Verification

  • Both adapter drafts pass the real validateDraft() — 8 X parts all inside 280 code points, Dev.to tags matching ^[a-z0-9]+$, 4-tag limit respected.
  • Live post confirmed HTTP 200 before drafting links: title and 157-char description intact, 13-row capability table rendered (39 cells), <em> emphasis intact, featured on /blog, sampled internal links all 200.
  • All six UTM links carry utm_campaign=threadplane-0-1-0 with per-channel source and medium.

Not included

No gratitude paragraph in the source post yet — voice.md lists naming people you are thankful to as a recurring value, and a milestone is the natural place for it. Omitted rather than fabricate names; easy follow-up.

🤖 Generated with Claude Code

Adds the campaign for the 0.1.0 announcement, following the grade-a-trust
structure: a plan doc, per-adapter JSON drafts for X and Dev.to, and a
manual-channels file for Hacker News, r/Angular, Discord, LinkedIn, and
newsletter pitches.

Every draft is review_status: awaiting-brian. Merging this posts nothing.

The plan assigns a different angle per channel rather than repeating one
paragraph five times. Hacker News leads with the versioning confession —
55 breaking changes shipped under a patch counter — because a version-bump
submission reads as promotion and gets flagged, while a self-critical semver
post is something that community argues about on its own. Reddit and Dev.to
lead with the "where it stops" list. X, Discord and LinkedIn carry the
complete-and-free story, always pairing "free" with what the paid tiers
actually sell.

Two findings from reading the existing assets, both recorded in the plan:

- marketing/assets/src/brand.ts:14 defaults the card eyebrow to
  'Agent UI for Angular · MIT', which is retired positioning. The website's
  public-copy contract does not scan marketing/, so nothing catches it. The
  plan requires passing an explicit eyebrow and shows the call.
- The X adapter's metrics() is a stub until the API tier is upgraded, so
  impressions are not collectable. Success is defined on referral sessions
  and the try-without-a-backend page instead.

No competitor comparisons, unlike grade-a-trust, which named other frameworks
only because it was reporting a public leaderboard.

Verification: both adapter drafts pass the real validateDraft() — all eight X
parts inside 280 code points, Dev.to tags matching ^[a-z0-9]+$. Every UTM link
resolves against the live post, which was confirmed at HTTP 200 with its table,
emphasis and index listing rendering correctly before these drafts were committed.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
@vercel

vercel Bot commented Sep 8, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated
threadplane Ready Ready Preview Sep 8, 2026 11:31pm UTC

Request Review

@github-actions

github-actions Bot commented Sep 8, 2026

Copy link
Copy Markdown
Contributor

Claude finished @blove's task in 0s —— View job


I'll analyze this and get back to you.

@github-actions github-actions Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Automated approval: this PR received an intelligent (AI) code review. See the review comments on this PR.

…to drafts

Both drafts had Brian confessing that an earlier homepage draft wrongly
claimed destructive actions were held for approval automatically.

He never said that. The detail came from a code comment in
apps/website/src/lib/preflight-checklist.ts recording a verification pass,
and writing it up as his own admission puts words in his mouth about his own
work. docs/gtm/voice.md is explicit: never fabricate a first-person anecdote.

The "where it stops" list stands on its own without a manufactured confession
attached to it.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
@github-actions

github-actions Bot commented Sep 8, 2026

Copy link
Copy Markdown
Contributor

Claude finished @blove's task in 0s —— View job


I'll analyze this and get back to you.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant