edit mode and cleaner growth loops
keeps the idea and your voice
runs on the create engine
cleaner text rendering
fallbacks when image gen trips
sonnet where quality matters
fewer twin tweets
guides, tools, better links
people can actually find it
creator pitch at the limit
paid users get feedback emails
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
- edit mode is real now. paste a tweet that is close and tell it what to change. it keeps the idea, fixes the delivery, and gives you a batch of sharper versions.
- image cards stopped being weird. meme images now use real templates and cleaner text instead of fake ai lettering. if something breaks, it falls back quietly.
- batches repeat themselves less. i added cross-slot dedupe so the 4 drafts do not all circle the same joke. paid generations also lean harder on sonnet where quality matters.
- the site explains itself better. the landing page, pricing, examples, guides, and internal links got cleaned up. less guessing what the product does before you try it.
- email campaigns match the product now. free users get 5 real generations, creator is the pitch at the limit, and paying or cancelled users get feedback emails instead of random upgrade pressure.
by theme
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