← all updatesfebruary 2026

voice sync, leaner tweets, live credits

bangers onlywhat shipped · february 2026
🧠voice profile sync
saved to supabase now
works across all your devices
set it once, done
✂️sensible mode fixed
no more 500-char essays
natural length variety
tweets that read like tweets
live credit updates
balance updates instantly
no stale numbers anywhere
real-time across all components
📧plain text emails
switched from html
better deliverability
cleaner inbox experience
🔖bookmarks + feedback
save tweets you like
regenerate with feedback
more meme variety too
🔀smarter model routing
pro model for generation
flash for utility calls
better output, same price
45 commits106 files11,703 linesall live

february had a clear theme once i looked back at it: things that should have been working properly, now working properly. that sounds anticlimactic but some of these were real paper cuts.

the biggest one is voice profiles. before this month, your voice profile lived in local storage. which meant it was tied to one browser on one machine. if you switched devices you were starting from scratch. i moved it all to supabase. it follows your account now. log in anywhere, your voice is already there.

sensible mode was producing slop. not bad ideas, just badly sized ones. everything was drifting toward 400-500 characters because the model was implicitly rewarded for being thorough. i reworked the prompts to enforce actual tweet-length output with natural variation. some tweets are short now. some are medium. none of them read like linkedin posts.

credits were updating on a delay. you'd generate a tweet, the number would sit there, you'd wonder if it registered. annoying. i fixed the state sync so it updates live across every component the moment a generation completes.

on the email side: i switched everything from html to plain text. html emails look nice in your design preview and then get clipped by gmail or caught by filters. plain text isn't glamorous but it lands. i also fixed the from address, added reply-to, and sorted out a bug where new users were getting 200 credits instead of 50.

model routing got a quiet upgrade. generation calls now go to the pro model. flash handles the lighter utility work. users shouldn't notice anything except slightly better tweet quality.

smaller but worth noting: bookmarks are in, feedback-based regeneration is in, reaction images and memes are more varied. the admin panel got a full overhaul including per-user transaction history and analytics. and i patched a payment flow bug that was silently breaking checkout for some users. not a flashy month, but a solid one.

what you get

by theme

sync and persistence
voice profiles now live in supabase instead of local storage. this was the most-requested thing i hadn't gotten to yet. it just works across devices now.
tweet quality
sensible mode was writing long-form content and calling it tweets. fixed the prompts, added natural length variation, routed generation to the pro model. the output is noticeably tighter.
real-time ui
credits, generation state, result panels. a bunch of places where the ui was lying to you by showing stale data. all fixed to update live.
email and deliverability
rewrote all transactional emails in plain text. fixed from address, reply-to, and a credit bug for new signups. emails now actually arrive and look like they're from a person.
reliability and payments
patched the checkout and webhook proxy routes that were silently breaking for some users. fixed admin auth, removed a 100-user cap on the admin panel, cleaned up a handful of production bugs.
everything that shipped (45) →
  • · polish email copy: remove em dashes, first person only
  • · georgia font + ascii box footer in all emails
  • · fix email preview iframe background
  • · fix preview with iframe, change hey, to hey!
  • · tasteful minimal html emails · system font, white bg, bold headers, plain links
  • · fix campaign preview to render plain text instead of html
  • · switch all emails to plain text for better deliverability
  • · fix campaign tracking: show all failed emails, add result panel
  • · fix email from address and add reply_to
  • · fix new users getting 200 credits via email/twitter auth paths
  • · fix new users getting 200 credits instead of 50
  • · fix admin login 404 in local dev
  • · add product update email campaign + resources section on /how
  • · fix sensible mode generating long-form slop
  • · docs: add CLAUDE.md with detailed project context for AI sessions
  • · docs: update README and CHANGELOG for Feb 28 release
  • · update model routing: pro for generation, flash for utility calls
  • · feat: varied tweet lengths for meaty ideas in sensible mode
  • · fix: stop AI from bloating every tweet to 500+ characters
  • · fix: credits update in real-time across all components
  • · feat: persist voice profile to Supabase (follows user across devices)
  • · feat: voice profiles, per-tweet credits, model updates, SEO pages
  • · Hide footer for unauthenticated users (landing CTA already has link)
  • · Polish landing page: fix auth flash, update copy, add drift animation and rotating placeholder
  • · Add analytics dashboard and per-user transaction history to admin panel
  • · Docs: Update changelog with payment fix, fix X handle in README
  • · Move support links to how page and main footer
  • · Add support contact links: email + X profile
  • · Fix payment flow: add missing proxy routes for checkout and webhook
  • · WIP: Landing page with dynamic stats, visual feature cards, and /how page copy refresh
  • · Fix admin panel: remove 100-user limit, responsive header, add Vercel Analytics
  • · Docs: Slim down README, replace SVGs with mermaid diagrams
  • · Remove broken CI workflow · Vercel handles builds/deploys
  • · Docs: Update README and CHANGELOG for Feb 7 features
  • · Feature: Sensible mode variety, reaction images & meme diversity
  • · Feature: Bookmarks, Feedback Regeneration & Reliability
  • · Feature: Add welcome email for new signups + admin campaign support
  • · Fix: Add missing /api/auth/clerk/sync proxy route
  • · Fix: Credits proxy calling wrong backend endpoint
  • · Refactor: Remove code duplication and fix production bugs
  • · Fix: Use dynamic backend URL for admin-auth routes in production
  • · Fix: Route admin-auth API to Next.js instead of Python backend
  • · Fix: Rename admin auth routes to avoid backend conflict
  • · Fix: Allow admin API routes through Clerk middleware
  • · Security: Replace admin secret with httpOnly cookie sessions