← all updatesjune 2026

edit mode and cleaner growth loops

bangers onlywhat shipped · june 2026
✏️edit mode
paste a tweet, get sharper versions
keeps the idea and your voice
runs on the create engine
🖼️cleaner images
real meme templates
cleaner text rendering
fallbacks when image gen trips
🔁less samey
dedupes across the 4 drafts
sonnet where quality matters
fewer twin tweets
📚examples + seo
real tweets by topic
guides, tools, better links
people can actually find it
💌smarter emails
5-free-generation funnel
creator pitch at the limit
paid users get feedback emails
60 commits269 files20,581 linesall live

june was the month i stopped treating bangers only like just a generator. the generator matters, obviously, but the product around it matters too: editing, examples, onboarding, pricing, images, and the stuff that helps someone understand why they should come back.

the biggest product change is edit mode. you can paste a tweet that is almost there and ask for sharper versions. it keeps the idea instead of starting from zero, which is usually what you want. most people do not need a brand new thought every time. they need the thought they already had to land better.

image generation got less cursed too. meme cards now use real templates and cleaner text rendering, backed by a meme database that can refresh over time. when the compositor cannot handle something, the app falls back instead of making the user debug it.

i also spent time on output quality. batches now dedupe across slots so you do not get four versions of the same angle. paid generations lean on sonnet where quality matters. small detail, big difference when you are trying to pick one draft and post it.

the growth side got a lot of work. the examples library now has real tweet text, topic pages, guides, tools, better internal links, better metadata, and cleaner og images. boring SEO work, but useful. people need to find the product before they can decide if it is good.

the lifecycle emails got rebuilt around the actual free funnel too. free users get 20 credits, which is 5 generations. the product now treats that limit honestly: teach first, show features, pitch creator when someone actually hits the wall, and ask paying or cancelled users for feedback instead of yelling upgrade at everyone.

what you get

by theme

editing workflow
edit mode turns bangers only from a blank-page generator into something you can use on drafts you already care about.
better outputs
dedupe, sonnet routing, prompt cleanup, and cleaner image cards all push toward the same thing: less generic output.
findability
examples, guides, tools, metadata, sitemaps, and internal links make the product easier to discover and understand.
email lifecycle
campaigns now follow the real 5-generation free funnel instead of old credit math and vague upgrade nudges.
everything that shipped (60) →
  • · feat(images): bundle meme compositor assets
  • · test(frontend): add Jest coverage for core helpers
  • · fix(email): audit fixes across admin campaigns + lifecycle crons
  • · perf(examples): move related topics resolution to server component
  • · fix(seo): internal linking + footer links + IndexNow key
  • · fix(seo): fix non · canonical sitemap pages, title double · branding, long descriptions, 3XX redirect
  • · fix(seo): add og:image and twitter:image to all pages missing them
  • · fix(ui): fix readability across landing page
  • · fix(checkout): null · coalesce credits before comparison
  • · fix: patch four bugs from audit + checkout success flow
  • · fix(payments): remove hardcoded US billing address from checkout
  • · fix: multiline image regex in tweet intent + test patch target
  • · feat(generation): cross · slot dedupe, sonnet quality hook, meme compositor
  • · fix(prompts): ban em dashes, smart casing, quoted image labels
  • · feat(seo): add apple · icon, manifest, and fix OG image contrast
  • · docs: add five deep · dive playbooks from Bangers Only learnings
  • · fix(examples): restore em dashes in scraped quotes (verbatim)
  • · style: remove all em dashes from the repo
  • · chore: gitignore personal strategy & learning notes
  • · chore: tidy repo root — move plan docs to plans/, gitignore runtime junk
  • · docs: add SEO playbook — session summary + how to do SEO long · term
  • · fix(export): only emit tweetUrl for real 18+ digit X snowflake IDs
  • · fix(examples): strip broken tweetUrl from swipefile entries
  • · feat(corpus): import scraped naval + gregisenberg tweets into sensible_tweets
  • · feat(seo): merge swipefile corpus into 12 example pages
  • · feat(seo): swipefile → examples export script
  • · feat(examples): all 60 scraped tweets with real text + View on X link
  • · fix(examples): replace blank tweetUrl stubs with real tweet text via oEmbed
  • · feat(seo): guides hub, title tag fixes, footer internal links
  • · fix(scraper): cache user lookups to avoid redundant X API calls per topic
  • · feat(seo): complete 25 · topic examples library + scraped real tweet URLs
  • · feat(seo): add 5 more example topics + X API scraper script
  • · feat(seo): /examples + /tools architecture, 301 redirects, sitemap
  • · fix(landing): drop oversized feedback card, rebuild voice visual
  • · fix(landing): consistent feature cards + balanced showcase columns
  • · fix(landing): rework the features section
  • · feat(landing): refresh the how · it · works + under · the · hood into one flow
  • · fix(landing): bigger showcase cards, no drift clipping, tighter CTA gap
  • · feat(landing): conversion pass — risk · reversal, mid · page CTA, edit wedge
  • · feat(quality) + docs: sensible anti · sameness, README + June changelog
  • · content: full page audit — pricing math, edit copy, draft count
  • · content: update landing/pricing/how to reflect edit (remix is archived)
  • · feat(edit): standalone edit mode is now an open · ended batch on the create engine
  • · refactor(ui): navbar/footer cleanup + remove dead manual · edit code
  • · refactor(ui): clean up the tweet action row
  • · feat(voice): post · first · gen voice nudge + paywall explainer
  • · feat(edit): directed edit engine — keep the idea, fix the delivery
  • · feat(analytics): honest activation instrumentation (Phase 0)
  • · feat(email): open rate + click tracking + admin performance dashboard
  • · feat(analytics): capture business · email signal in PostHog
  • · fix(changelog): clean month list on index, card lives inside detail
  • · feat: embed the summary card as each month's header on /changelog
  • · feat: website changelog — month sections + per · month detail pages
  • · feat: monthly_blast.py — one · command changelog email pipeline
  • · feat: monthly · blast subject + daily run helper
  • · feat: monthly · update test mode + limit override
  • · feat: monthly update email blast + unsubscribe
  • · fix: image · gen UX — 2 · image cap for new users, server · driven credit deduction
  • · fix: hybrid generation engine, unblock image gen, enforce image credits
  • · feat: living meme database + monthly KYM/Gemini refresh cron