Skip to content
Ship log

What shipped

Last 90 days, by Edward Ilin. One founder, shipping every week.

  1. NewFeature

    War Room: see the highest-leverage conversations and reply in one tap

    A new War Room tab continuously ranks the posts worth responding to right now, drafts an on-message reply grounded in your positions, and shows it with a verification report (facts, on-message, risk) so you can approve, edit, or reject from your phone. Nothing publishes without your tap.

  2. BetterOpportunities

    Opportunities now shows the real post text and images, not search snippets

    We pull the actual content of each post (and its images, with click-to-preview) instead of a thin search summary, so you can read the full context. When you generate a reply, the assistant now reads the post's image too, so the draft is grounded in what the post actually shows.

  3. NewSkills

    Skills you can build right into your chat

    Create your own skill-agents, or install ready-made ones from the catalog (including a new campaign pack), and they connect straight into your chat as slash commands. Skills automatically ground in your brand's positions and voice, and your new-chat page now shows the skills you have connected.

  4. BetterUI

    Every empty page now starts itself with one click

    War Room, Analytics, and the daily plan now share the same clean starting screen with a single button that runs the full AI setup for that surface, so an empty page becomes a working one in one tap instead of a dead end.

  5. FixedFix

    Your brand template now applies on the very first generation

    Previously, the first set of social images for a brand-new project could come out with the wrong logo position, background, and text placement because the saved brand template wasn't being read until later. The template is now applied from the first generation on every channel.

  6. BetterPerformance

    Typing in the ASO console and brand-template editor no longer lags

    On longer fields in the ASO setup and the brand-template editor, every keystroke was triggering a re-render of the entire surrounding panel β€” fine on a fast laptop, but on iPad you could feel keys trail behind your typing. We now buffer keystrokes locally and only push the value up after a 200ms pause or when you leave the field, the same fix already in place for the social editor caption. Typing is instant on iPad again.

  7. BetterUI

    Loading states across the social editor now look the same and speak your language

    When you generate or regenerate an image, video, or apply branding inside the social editor, the loading overlay used to look different on every tab (Instagram, LinkedIn, etc.) and the labels on Instagram were always in English even if you used the site in Hebrew or another language. Everything is unified now: same spinner, same wording, and all labels translate into your selected language across every tab.

  8. FixedVideo

    Video generation no longer fails when our upstream provider has a brief hiccup

    When the AI video provider (Kling) was returning a brief gateway error (502, 504, etc.) β€” usually a Cloudflare edge issue lasting a few seconds β€” the entire Generate Video click would fail and the credit would be wasted. We now automatically retry up to three times with exponential backoff for transient errors, both when creating the task and when checking its status. Real failures still fail fast; only transient ones get the retry treatment.

  9. BetterVideo

    Generated videos now have audio that actually matches the post

    When you Generate Video on a post, the clip used to come out with audio that just read the post title out loud β€” generic and off-putting. Now we send the post's topic and platform to an AI sound director that returns a one-line music brief (genre, instruments, mood, tempo) tailored to the content, and the video engine builds purely instrumental audio against that brief. A snappy product post sounds punchy; a calm guide sounds reflective; nothing is ever narrated.

  10. BetterSEO

    The sitemap no longer leaks customer articles to search engines

    Our sitemap tells search engines which pages on the site are worth indexing. It now strictly lists only articles from Brainpercent's own blog projects, and skips anything generated for customer accounts. One customer article had been silently leaking through; that's gone now.

  11. BetterSEO

    Smoother routing across languages, fewer dead links, cleaner search-engine signals

    Cleaned up where every language URL goes. The blog pages in each language used to redirect back to the English blog by mistake; they now serve their own language directly. The newsletter and several other English-only pages now redirect cleanly from any language URL instead of returning a 404. The sign-in flow no longer sends a conflicting signal to search engines. Together this clears around three quarters of the indexing warnings we had pending.

  12. BetterSEO

    Translated articles only show up at their own language URL

    If a Spanish article is shared somewhere with the English URL, the site now sends the reader straight to the Spanish version of the article instead of serving the same article at both URLs. Same for every supported language. Google was treating these as duplicate pages, which hurt how often any version showed up in search; now there is exactly one canonical URL per article.

  13. FixedUI

    Hebrew login card no longer hides behind the sidebar, no more white flash on dark mode

    Two annoying glitches gone. First, when you opened the sign-in card on the Hebrew site, it was anchored to the same side as the sidebar and got hidden behind it. The card now always opens on the opposite side from the sidebar, so it is fully visible. Second, opening the chat in dark mode used to flash white for a moment before turning dark. The theme is now baked into the very first frame the browser paints, so there is no flash at all.

  14. BetterSEO

    Search engines now see the full site in every language

    The site map sent to Google was missing the features page, every language version of the features page, and the Hebrew about, contact, and white-label pages. Newsletter issue pages were also pointing at a slightly different domain than every other page on the site, which made Google treat them as duplicates. Both are fixed. We also cleaned up an unused Ukrainian language code that was sitting in the routing config without a real page behind it. None of this changes anything you see, but it should improve how the site is discovered in search.

  15. Fixedi18n

    Hebrew and other-language CTAs no longer hit a 404

    The 'Try free' button in the Hebrew header used to land on a page-not-found because the onboarding flow only existed at the English URL. The site now serves the same onboarding page under every supported language URL, in that language, so a Hebrew visitor stays in Hebrew end to end. The same fix covers the roadmap and use-cases pages for every language. No more dead links from the language version of the site.

  16. FixedEditor

    Generated posts now arrive clean, branding is your call

    When you generate from a trending story, the image now comes out clean, with no logo or headline baked on. If you want your branding, you click Brand and it stitches in one step, exactly like in the editor. Before, generation could auto-apply your saved template the moment it finished, so you were stuck with a branded version you never asked for. Now branding is always a deliberate choice.

  17. BetterContent

    Replies now answer from your side, not the other side's

    When you draft a reply to a post in Opportunities, it now argues from your business's goals and positions. If the post is from a competitor or pushes a view you oppose, the reply counters it from your stance instead of politely agreeing. On X, a reply from your own account now speaks in your voice and takes a clear position, while still keeping it sharp rather than abusive.

  18. BetterContent

    Trending now only surfaces stories you can actually use

    Trending picks are now judged against your real agenda and your audience, not just whether a headline mentions your keywords. A story that name-drops your topic but is really about something off-mission (a markets or lifestyle outlet covering your subject for a different angle) is dropped, even if it is a huge story. You will see fewer picks sometimes, but every one is something you can post about authentically. It is better to surface three stories that fit than ten that don't.

  19. BetterContent

    Your content is always on your side now

    When you generate from a story, the writer no longer just summarizes it in your voice. It reacts to it from your goals and your positions, using your business memory as the source of truth. If the source pushes a rival or argues the opposite of what you stand for, your post rebuts it instead of repeating it. A final safety check catches anything that slipped through and rewrites it from your side. The result: every post works to grow your business, never the competition's.

  20. FixedContent

    X posts now break into clean, readable lines

    Posts for X and the other platforms now come out with real line breaks and white space between thoughts, instead of one long wall of text. They read the way a person actually writes on the timeline, and they are far easier to scan on a phone.

  21. BetterDashboard

    Read the full post behind any opportunity, in one click

    In Opportunities you can now open any conversation and read the full post, who wrote it, where, and when, without leaving Brainpercent. A Show more button loads older items, the day filters (Today, Yesterday, This week) line up with the real dates, and you can now follow X sources alongside the rest.

  22. NewContent

    Turn any post into a real X thread

    On X you can now publish a real multi-post thread, not just a single tweet. When you generate from a trending story you get a Single or Thread choice, and every post in the editor has the same switch, so you can flip between a single post and a full thread anytime. Thread mode drafts a hook-first thread grounded in the entire source article: one idea per post, each post opening a loop into the next, and a closing post that invites a reply instead of ending on a plug. It publishes as a native X thread through your connected account, and if you set a first comment it rides along as the final reply.

  23. FixedContent

    Posts now stay true to the source article

    When you generate posts from a trending story or a link, the writer now reads the actual article and stays faithful to it. Numbers, names, dates, and claims have to come from the source, never invented. It cannot contradict the story or turn a vague 'soon' into a hard 'next week'. It still brings a sharp angle and real emotion, just grounded in what the source actually says. When there is no article to read, it writes about the topic from your business context without making up specifics.

  24. BetterVideo

    Editor videos now have sound and stay clean

    Generate Video in the post editor now animates the clean image, never the branded one, so your headline text no longer bleeds into the video. Every clip also comes with native AI audio (ambient sound and music) so it doesn't feel flat. Branding a video is still a separate one-click step if you want it.

  25. BetterEditor

    Generated posts now come out clean, so branding is your choice

    When you generate a post or carousel, the image now arrives clean, with no branding baked on. If you want your logo, colors, and headline on it, click Brand (or Brand All for a whole carousel) and it stitches in one step. This applies across the editor and the posts created from Trending, PR, and your Daily tasks. Before, carousels were branded automatically the moment they finished, so there was no clean version to work from.

  26. FixedDashboard

    Opportunities: working day filters, a real Fetch button, and a tidier feed

    Today, Yesterday, and This week now filter correctly in Opportunities. They were keyed to when a post was originally written, so freshly found posts could stay hidden. They now follow when a post enters your feed, which is what you expect. A Fetch all button at the top pulls the latest from every source you follow and tells you how many new posts it found, instead of looking empty for no reason. We also decluttered both Opportunities and Trending: the standalone Add channel and Custom feed buttons are gone. Your Store and the chat input at the bottom cover both.

  27. NewVideo

    Turn any image into a video in one click, now faster and true to the picture

    Click an image in your Media library (or say "animate this" in chat) and it becomes a short video. Three upgrades landed. Single-image animation now uses Kling, which is much faster than before. It animates the exact image you picked instead of guessing at a different one. And it actually looks at the picture first, so the motion matches what is in it (an ocean shot gets rolling waves and a slow push-in, a portrait gets gentle drift) rather than inventing an unrelated scene. The video also renders at the image's own shape, so a square or landscape image is no longer forced into a vertical crop. It animates the clean image so any branding text stays crisp.

  28. NewDashboard

    Trending and Opportunities: one-click setup from your business

    Both tabs now have a single Set up button that configures everything from your project's business profile, with no typing and no picking from a generic list. On Trending, one click follows the news feeds that match your niche and audience. On Opportunities, one click finds the communities where your audience asks questions and sets them up for you. The empty state was cleaned up too: one clear primary action instead of a wall of buttons and irrelevant suggestions.

  29. NewDashboard

    Analysis: a one-click business intelligence console

    The Analysis tab (right below Daily tasks) is rebuilt to match the Daily tasks walkthrough, but for research. One "Run full analysis" button runs five same-day reports in sequence, each also runnable on its own: a Brand intelligence report (positioning, audience, strengths, opportunities, risks), Competitor SEO keywords with the gap angle to win each, GEO keyword research (the real questions people ask AI in your niche and how to become the cited answer), an AI visibility check (how your brand shows up when people ask AI about your category today, and what to fix), and Competitor review pain points with the opportunity to win on each. Every report is generated in your project's language and grounded in your business profile. A calendar-style day navigator steps back through saved days, and Export PDF turns the whole day's analysis into a clean printable report. Each report self-heals with an automatic retry so a transient hiccup never leaves you with a blank.

  30. BetterDashboard

    Top bar reorganized + sidebar banners refreshed

    Your account is now a clean profile icon in the top-right, alongside a light/dark theme toggle and a new Help menu (Take the tour + Onboarding, plus a Shift+? shortcut). The action cluster is ordered consistently and only shows on the chat surface. In the sidebar, the upgrade banner is a refined darker card with a soft brand glow and a punchier headline, and a tidy "Join our Discord" banner sits above it.

  31. NewDashboard

    Daily tasks: a one-click morning marketing console

    The "Daily tasks" surface (renamed from Today, now right below Search) is a step-by-step console. One "Run full plan" button runs every task in sequence and fills the page: Social pack (a multi-platform pack from today's top topic, with selectable channels), PR & press release (from the latest verified news), Trending intel, Blog article (suggests daily SEO keywords for your business, one click to generate an article), Comment drafts (up to 20 ready-to-paste reply drafts), and Outreach (first-touch emails for prospects you haven't contacted). Every task is an on-demand generator with its action button beside a Mark-done toggle, a timeline you walk top to bottom, and a calendar-style day navigator to step back through saved days. Also fixed: the morning run now seeds the social pack from your RSS feeds when the trending cache is cold (it used to silently skip everything), reply drafts now pass an achievable quality bar, and the social pack generates in the active project's language.

  32. NewBilling

    Billing page rebuilt: Higgsfield-style pricing cards, hero sale banner, scaling credits slider, brand-workspace gates

    Total /chat/billing rebuild. New hero sale banner above the grid: 31% OFF chip + bold pink ALL AI MODELS & 1,000+ CHANNELS headline + sub + one-line description (Higgsfield-length, no em-dashes). Plan cards stretched to 600px min-height, rounded-2xl, subtle inner gradient. Per-tier branding: pink for Pro (MOST POPULAR), blue for Business (BEST VALUE), purple ring on Plus, neutral on Starter. Every card now leads with a prominent brand-workspace highlight row (Starter 1 / Plus 3 / Pro 10 / Business unlimited) with the tier accent color. Credits headline simplified to a single big number + image-gens + HD-videos equivalence (no more granular articles/posts breakdown). Sale framing live everywhere: pink strike-through MSRP next to the 44px live price, percentage-off chip beside the plan name (Starter 26% / Plus 25% / Pro 28% / Business 31%). Pro + Business get a Higgsfield-style 1Γ—/2Γ—/3Γ— credits slider β€” credits, image gens, HD videos, AND price all scale together with smooth count-up animations and a tier-colored '+ $X for 2Γ— credits' delta tag. Savings line now reads 'Save $X compared to monthly' (bright $X, dim rest) on annual, 'Save $X with annual' on monthly; only the truly-flat Starter shows 'No difference'. Killed the bottom Article-packs / Social-packs cards.

  33. NewBilling

    Per-plan autopilot quotas + scheduled-autopilot feature surfaced as a paid-tier value prop

    Scheduled autopilots (article + social) are now metered per plan: Starter 0 (manual only), Plus 1, Pro 5, Business unlimited. /api/social-autopilot and /api/blog-autopilot both check the quota before creating a new schedule and return a 402 with an upgrade message when at cap. Counts span ALL autopilot types per user (no gaming by mixing). Plan cards surface the autopilot count as a feature bullet, and features starting with 'No ...' now render an X icon with dimmed text instead of a checkmark so you can see at a glance what's NOT in your tier.

  34. BetterDashboard

    Sidebar upgrade banner redesigned + bogus '55% OFF' purged

    New beautiful Higgsfield-inspired upgrade card in the bottom sidebar: dark maroon radial gradient, diamond emblem, pink 31% OFF chip + Launch sale tag, big bold pink 'All AI Models / 1,000+ Channels' headline, 'Locked for 12 months' microcopy, and a palette-matched pink gradient 'Upgrade now' CTA with a soft shadow. The old hardcoded '55% OFF' badge that appeared across all 14 locales was a stale fiction β€” replaced with the real 31% (matches the highest live tier discount).

  35. NewDashboard

    Dashboard chat redesign preview β€” new sidebar, Skills marketplace, Memory page, real-status Connectors

    Big internal redesign live at /chat?canvas=new (feature-flagged, not in production yet). New slim left sidebar replaces the topbar: workspace switcher, 5 in-chat view tabs (Files / Calendar / Brand / Ads / Affiliates), 3 destination tabs (Skills / Connectors / Memory), 5 quick-action tasks (PDF/YouTube/Blog/Keyword β†’ content), real credit balance, Pricing CTA, and account dropdown with theme toggle. Top-right cluster: History Β· ⌘ Shortcuts Β· Upgrade Β· 12-locale switcher. New Skills page lets you browse + install Claude Skills (paste markdown to import your own from .claude/skills directories). Memory page is now a Business-ID profile editor with 9 sections (Business / ICP / Audience / Brand voice / Writing style / Common topics / Visual style / Competitors / Preferences) β€” click any cluster to open a card grid of inline-editable fields, add priority + applies-to chips to each, and create UNLIMITED custom containers with custom name/icon/color. Connectors page now pulls real connection state from social_media_accounts + api_credentials + crm_connections, uses the actual brand SVG icons for all 13 social platforms, and gives every connected account a single-click disconnect. Global keyboard shortcuts (Ctrl+B / Ctrl+K / Ctrl+E / Ctrl+I / Ctrl+Shift+T) all wired. Try it at /chat?canvas=new.

  36. NewCreative

    Higgsfield integration plan β€” 8 new creative packs unlocking UGC, talking-head video, DTC ads, virtual try-on

    Mapped Higgsfield's full surface (Soul 2.0 images, DoP video with 60+ camera presets, Speak lipsync, Cinema Studio multi-shot, Marketing Studio 9-mode ads engine, DTC Ads with 40 formats + direct Meta/Google publishing, Virality Predictor, 4K upscale, Soul ID branded spokesperson). Plan committed at docs/plans/HIGGSFIELD-INTEGRATION-2026-05-17.md with 6-week build order and 8 new packs from $39 (Speak-the-Article upsell) to $1,499 (Enterprise Brand Cinema). Week 1 scaffolding shipped: HiggsfieldClient with auth + 30s timeout + exponential retry, model registry covering 14 image/video/lipsync/multishot/upscale models, 30-preset camera catalog, per-project useSoulForLifestyle flag. All quiet until HIGGSFIELD_TOKEN lands β€” zero credits burned today.

  37. NewVideo

    Video generation overhaul: Kling 2.6 Pro, 10s default, cinematic prompts, per-channel auto-preview

    Swapped Seedance for Kling 2.6 Pro (1080p+ native, AI audio, cinematic camera moves). Default length bumped from 5s to 10s. Prompt enricher rewritten around real cinematography (Apple keynote / Michael Mann / A24 / Nat Geo references) instead of generic camera moves, with anti-drift rules so 10s clips stay coherent throughout. Hebrew/Arabic/Russian post context now translates to English internally so the model latches on. Generate Video on every channel (Instagram, LinkedIn, Facebook, Twitter, TikTok, Threads, Pinterest, Bluesky, YouTube, Telegram, Discord, WhatsApp, Snapchat) auto-flips the preview pane to the finished video β€” no more stale image. Per-platform output dimensions enforced (1080Γ—1920 for Reels, 1080Γ—1350 for Feed, 1080Γ—1080 for square).

  38. FixedOutreach

    Cold outreach hardening: 3-day cadence, cron de-duplication, threaded replies, BCC, compliance gate

    Follow-up cadence pushed from 48h to 72h minimum. Cron now has an idempotency gate so an Inngest replay can't send the same follow-up three times to the same prospect in a minute (real bug caught + fixed). Every outbound now: BCCs edward@brainpercent.com, threads via Re: subject + In-Reply-To + References headers so the prospect sees one continuous Gmail conversation, runs the compliance gate before sending, and feeds the prior message bodies to Claude so the follow-up doesn't paraphrase the initial. Alistar gained a follow_ups_due tool β€” ask 'do we have followups due tomorrow?' in chat to see the queue.

  39. FixedSEO

    Public /blog cleanup: 46 leaked customer articles removed, RPC allowlist installed, 13-locale support

    The three public blog/article RPCs (get_public_published_posts, _paginated, _by_slug) were ownership-blind β€” every customer article that reached status='cms' was rendering on brainpercent.app/blog under our canonical and hreflang. 46 articles unpublished (CozyComfort pillows, Stripe Atlas demos, coffee brewing, dog food brands, semiconductor packaging β€” all soft-deleted, recoverable). New brainpercent_blog_project_ids() helper restricts the RPCs to the 13 Brainpercent language projects only. /ru/blog, /es/blog, /de/blog etc. now serve their own language instead of falling back to English. Trending RSS picker contamination also fixed at the source β€” refresh-trending-picks no longer leaks across projects.

  40. FixedReddit

    Reddit drafts pass as human + paste as plain text

    Real Redditors started calling out Brainpercent-drafted comments as AI. Voice rules tightened: banned parallel comma-lists (the dead giveaway), 'actually [noun]' cadence, abstract closing lines, and the all-lowercase-first trick (itself becoming an AI signature). Required human markers added: contractions, hedges (tbh, imo, ngl), occasional run-on sentences, allowed caps for emphasis. Markdown stripping added so a Sonnet leak of underscores or asterisks can't render the whole comment in italic when pasted into Reddit's reply box. Three drafting sites consolidated to one source of truth.

  41. NewAffiliates

    Affiliate program: earn 20% on every referral, paid monthly to Stripe

    Apply in seconds from /chat (an AI classifier auto-approves anyone with a credible audience). Get a tracked link, a one-pager Marketing Kit, and a live dashboard showing clicks, signups, and commissions. Payouts settle on the 1st of each month via Stripe Connect. Once you cross $50 we wire it straight to your bank. Includes self-referral detection (Stripe card fingerprint), 7-day cooling-off on new accounts, and a 3-day refund hold so clawbacks are clean.

  42. NewLegal

    Legal + GDPR compliance: Privacy v2, Terms v2, DPA, data export

    Full rewrite of Privacy + Terms to cover the EU AI Act, Β§230/DSA, OFAC sanctions, AI hallucination disclosure, 14-day cooling-off, force majeure, and survival. New DPA pre-signed at /legal/dpa with Annex 1 + Annex 2. Cookie banner now gates GA + Microsoft Clarity through Consent Mode v2 (Clarity only loads on grant). GDPR Article 15 data export via /chat/settings. Inngest packages everything, emails you a signed Supabase link, auto-purges after 90 days.

  43. NewAnalytics

    Analytics command center: 7-stage funnel, stuck users, AI weekly digest

    Admin analytics rebuilt from scratch. KPI row (signups, DAU, MAU, activation, paying users, MRR, time-to-publish, 7d retention), a 7-stage funnel chart with drop-off table, DAU line, stuck-users panel with email + days-stuck, Microsoft Clarity dead/rage-click integration, and an AI Weekly Analyst that emails me a priority-ordered TASK.md every Sunday night. PDF export + email-the-report buttons included.

  44. NewAnalytics

    Growth engine instrumentation: every click, scroll, and dwell tracked

    Phase A foundation shipped: analytics_events table with anon_id + GIN-indexed properties, client-side auto-instrumentation for clicks + scroll-depth + dwell, signup attribution via the existing ref cookie, and a post-signup reconciliation that retroactively links pre-signup anonymous events to the new user. Stripe webhook events fire purchase / subscription / credit events into the same stream.

  45. NewSEO

    GEO foundation: per-bot robots.txt + AI bot traffic tracking

    robots.txt now serves per-user-agent rules so we can grant or deny GPTBot, ClaudeBot, Perplexity-User, Google-Extended, and friends independently. A new /api/analytics/ai-bot-visit endpoint logs every AI crawler visit with timing + path so I can see which agents are actually citing the blog.

  46. BetterAdmin

    Autopilot health panel: silent cron failures now visible

    /chat/admin/analytics has a new Autopilot Health card. Per blog + social schedule it surfaces last-run timestamp, status (ok / overdue / failing / disabled / fresh), and per-language stagger. If a multi-locale autopilot stops firing for any of the 13 locales, I see it the same day instead of after a week.

  47. FixedArticles

    133 stuck articles unstuck + daily cron sweep to catch future orphans

    A trigger relaxation backfilled 133 articles that were stranded at status='completed'. They should have flipped to 'cms' and shipped to /blog automatically. One-shot dedupe + republish cleared the queue. New daily 05:15 UTC cron sweeps for future orphans so this never silently piles up again.

  48. FixedLanding

    Landing page hydration errors + CLS 0.57 β†’ 0.10

    React #422 and #425 hydration mismatches on the home page are gone. Cumulative Layout Shift dropped from 0.57 (poor) to ~0.10 (good). Sample-post image now wraps in a link to /chat instead of swallowing 33% of hero clicks into a dead zone.

  49. NewOutreach

    Outreach chat: prospect, research, draft, all from one conversation

    Cold outreach moved into the chat surface end-to-end. Prospect/research/draft cards inline, edit mode in-place, auto-unlock emails when research finishes, batch-sequence prospects with one command. The old admin form is retired.

  50. FixedOutreach

    Outreach quality + Hebrew RTL + ScrapIn β†’ ReverseContact swap

    Kill all fabrications: grounded the research step to verified sources only, added a Claude Haiku fact-check gate, and hardened the system prompt against hallucinated names + companies. Hebrew outreach now renders right-to-left correctly across cards + email previews. ScrapIn API was unstable; swapped to ReverseContact /v2/fetch/persons (same key, far better uptime).

  51. NewBilling

    Unified credit model: 1 generation = 1 credit everywhere

    30+ generation routes consolidated. Articles, social posts, image regens, videos, and ASO all charge exactly 1 credit each; only carousels charge per-slide, because that's the only op that genuinely makes N pieces. Stopped 13 blog autopilots that were retry-bleeding credits. Per-channel deduction on social. Pre-create credit checks (HTTP 402) + a friendly Top-up toast.

  52. NewSocial

    Pinterest board picker + 13-channel Zernio publishing

    Boost any post to Pinterest with a real board picker (no more guessing the destination). Zernio publishing now aligned to all 13 supported channels (Telegram + Snapchat added). Caption length safety net for every platform so a Twitter clip never silently truncates a LinkedIn post.

  53. BetterImages

    Per-platform image aesthetic + per-platform headlines

    Image prompts now carry a per-channel aesthetic suffix. Instagram gets editorial-magazine, LinkedIn gets corporate-clean, TikTok gets vertical-energy, X gets newsroom-sharp. Headlines also persist per-platform now, so editing the Instagram title doesn't accidentally overwrite Twitter.

  54. FixedBilling

    Navbar credit counter now actually decrements when you generate

    23 of 30 generation routes only updated the master credit pool β€” the per-type counters the navbar reads (social_balance / article_balance / video_balance) never moved. You could generate 50 images and the navbar wouldn't budge. Fixed at the SQL layer with an AFTER INSERT trigger on credit_transactions_new that auto-decrements the matching balance, plus a Supabase Realtime subscription on user_credits in ChatTopBar so the counter updates within a second of the charge regardless of which route triggered it.

  55. BetterCarousels

    Carousels now tell a story slide-to-slide

    First pass made every carousel slide a centered hero magazine cover β€” visually impressive but it killed the storytelling rhythm. Slides now share a cohesive DSLR / photoreal / Wealth-quality DNA but compositions vary by role: hook = movie-poster hero, insight = close-up detail, story = wide establishing, breathing = atmospheric still life, outro = reflective close. WIDE β†’ CLOSE β†’ CLOSE β†’ WIDE β†’ CLOSE rhythm enforced across every plan.

  56. BetterImages

    Generated images jumped from cyberpunk neon to magazine-cover editorial

    The image-gen prompts told the model brand colors MUST be the dominant tones throughout, with no realism anchor β€” outputs came back as glowing purple matrix particles. Hardened the wrapper across 5 generation paths (manual, autopilot, regenerate, blog hero, IG carousel) with HERO COMPOSITION, hard warm rim light, crushed blacks, Wealth / Time POY / Hodinkee / Bloomberg reference, and a hard ban on cyberpunk neon. Brand colors now appear as a single subtle accent, never the entire mood.

  57. NewLaunch

    /vote-for-us launch hub

    Single URL to share on launch day. 24 SaaS directories listed with one-click upvote/review buttons, status badges (LIVE / MAY 4 / PENDING), and a direct link to /pitch/demo. Editorial design matching the pitch page.

  58. NewPitch

    Pitch deck XIV + XV β€” Roadmap + GTM

    /pitch/demo grew from 14 to 16 sections. New Roadmap section (Building the Future) lists the next 90 days of shipping work. New GTM section (Built for Launch Week) maps the May 4 distribution: Product Hunt, BetaList, 25+ directories, lifetime deals, founder-led community.

  59. NewPitch

    Pitch deck full editorial redesign

    All 14 sections of /pitch/demo migrated from generic SaaS gradients to a Bloomberg/FT/Hermès editorial language. Paper + copper accents, italic-serif headlines, hairline rules, page-number marginalia. Two new editorial clones (Engine + Competitors) keep the investor /pitch/share intact.

  60. FixedSEO

    Yandex favicon β€” robot can now load it

    Yandex Webmaster reported the favicon as unreadable. Trace showed /favicon.ico was 307'ing into the [username] catch-all and serving HTML. Added a real favicon.ico + Next.js App Router icon convention files (icon.png, apple-icon.png) using the canonical black-on-white diamond mark.

  61. FixedEditor

    Instagram carousel preview no longer flashes the old image

    When you clicked Generate Carousel, the preview briefly flashed the previous single-mode image before the plan responded. Two surgical changes in InstagramCarouselProduction now suppress the fallback during planning and preserve slide-zero's seeded image across poll transitions.

  62. FixedVideo

    Seedance carousel videos now ship branded

    Generate Video on a branded slide was returning the raw Seedance MP4 with no overlay. The chain was missing a step: seedance complete -> [missing] -> brand re-overlay. Added Step 5 to generate-seedance-video that emits social/video.re-overlay when overlay_urls[platform] is present.

  63. NewQA

    Social editor audit suite β€” 15 tests, full coverage

    tests/e2e/social/editor-audit.spec.ts exercises every editor button across all 15 platforms. Brand stitch, slide nav, carousel generate, image prompt save, publish flow β€” all covered. Catches the kind of regression that shipped raw videos and unbranded carousels.

  64. FixedEditor

    First-comment dropup auto-flushes on close

    If you typed in the Facebook first-comment dropup then clicked outside or pressed Escape without explicitly saving, the draft was lost. closeEditDropup now auto-flushes the draft regardless of trigger, so nothing typed gets dropped on the floor.

  65. FixedEditor

    Facebook carousel honors slide count + IG textarea no longer reverts

    Facebook carousels were ignoring the user's slide count override. The shell's footer +/- never reached the production component's local state. Wired registerFooterCarouselCountChange across all 12 mount sites. Plus: Instagram textarea was reverting to default while typing because silentFetchContent stomped state β€” now merges per-platform.