bigger batches and better SEO
pro: ~500 batches/month on 200 credits
more output, no price change
less repetition across a single run
tweets actually sound different from each other
no more dead accounts
come back, try again
witty error for the offenders
real users only from here
real tweet embeds throughout
homepage crawlable, orphan pages fixed
draft counters corrected site-wide (0/4, not 0/6)
stale variable refs cleaned up
may started with one clear goal: make the core generation loop better. the 3-tweets-per-batch number was arbitrary and a little stingy. i bumped it to 4 and reworked the credit math. pro users now get 200 credits a month, which lands at roughly 500 batches. that's a real number you can build a content habit around.
the other generation change that matters more than it sounds: archetype diversity. before, a single batch could pull from the same archetype repeatedly and you'd get four tweets with the same energy and structure. now the logic actively varies it. the output range inside a single batch is noticeably better.
free tier got a small but meaningful fix. credits now refresh monthly. previously, once you burned through your free credits, the account was basically dead. now it resets. if you signed up, poked around once, and left, you have a reason to come back.
i blocked disposable email domains at signup. this is one of those unglamorous things you do when you look at your user list and realise a chunk of it is noise. fake accounts don't pay, don't tweet, and inflate every metric i use to make decisions. the block happens at the clerk sync step so it never gets further than that.
the site got a serious SEO pass. comparison pages, four new guides, eight new audience pages, six new topic pages, real tweet embeds on all of them, a proper sitemap, and a fixed homepage that google can actually crawl. the programmatic pages were also orphaned before, meaning nothing linked to them. that's fixed. this is the boring work that compounds.
i also cleaned up a bunch of small product embarrassments: error messages that made no sense, draft counters showing 0/6 when the limit is 4, stale copy left over from old feature iterations. none of these are exciting but they're the kind of thing that makes the product feel unfinished. it feels a bit more finished now.
june will go deeper on the generation quality side. the infrastructure is in better shape now, which means i can actually focus on the thing that matters: tweets that are worth posting.
what you get
- Batches now generate 4 tweets instead of 3. each generation run produces 4 tweets, and pro users get 200 credits a month. that works out to ~500 batches. more output, same price.
- Archetype diversity is now baked into generation. i added logic to vary the archetype used across a batch so you're not getting four tweets that all sound identical. the range is better.
- Free credits refresh monthly now. 20 free credits reset each month. if you've been sitting on a dead account, it's worth checking again.
- Disposable email addresses are blocked at signup. fake accounts were padding my user numbers and wasting credits. i block them at the clerk sync step now. real users only.
- Error messages are actually readable now. i rewrote the error messages you see when generation fails. they tell you what went wrong instead of surfacing a raw exception.
- The site is a lot more findable. i added comparison pages, 4 new guides, 8 new audience pages, 6 new topics, real tweet embeds, and fixed the homepage so google can actually crawl it. programmatic SEO expansion, basically.
by theme
everything that shipped (22) →
- · fix(seo): make homepage crawlable + de-orphan programmatic pages
- · feat: attribution + monetization tracking · UTMs, paywall_viewed, image-card fix
- · fix: harden campaign users + user-transactions to never error
- · fix: fix JSX syntax errors in admin analytics section
- · fix: admin panel hardening · resilient sections, safe data access
- · fix: admin panel · generation counts, campaign queries, user expansion
- · feat: reimagine admin analytics panel with live charts and user health
- · fix: banger error messages + fix stale style variable in generation
- · fix: remove stale 'style' variable refs in generate_single_tweet
- · fix: writing drafts counter 0/6 → 0/4
- · chore: witty error message for blocked email domains
- · feat: block disposable email domains at clerk sync
- · fix: complete copy audit · all stale 5/6 draft/variation counts → 4
- · feat: archetype diversity in generation + monthly free credit refresh
- · fix: ~333 → ~500 batches/mo on pro plan (200 credits ÷ 4)
- · feat: 4 tweets/batch, 20 free credits, DB-driven generation, admin session auth
- · refactor: overhaul email campaigns, remove promo code system, fix admin panel
- · docs: update changelog, fix deprecated gemini-2.0-flash in input analysis
- · docs: remove stale intelligence levels section, update model info
- · feat: X algorithm guide + xAI commentary + sitemap updates
- · cleanup: remove all em dashes, delete ModelSelector dead code, add real tweet URLs for all topics
- · feat: programmatic SEO expansion · comparison pages, 4 new guides, 8 new audience pages, 6 new topics, real tweet embeds, SEO footer