Changelog.
What we're shipping. New features, bugs we squashed, and things we made faster.
200+ animated UI components ship with every generated app. Aurora hero backgrounds, marquees, animated number tickers, bento grids, particle effects, text reveals - the agent picks 5-6 per landing so your app feels designed, not assembled.
WebGL hero backgrounds work on every device. Components like Plasma, Iridescence, LightRays, Beams are perf-hardened (capped DPR, 30fps frame gate, auto-pause when offscreen) so heavy shaders run smoothly on phones and hi-refresh monitors alike.
Aurora hero auto-inverts in light mode. The bright green/teal aurora that looks great on dark mode now flips to a dark atmospheric gradient on cream backgrounds - one component, two moods, no configuration.
Mandatory page shell on every landing. Sticky navbar with brand, nav links, theme toggle, and primary CTA is now non-negotiable - fast mode and standard mode produce the same complete page structure, never a headerless body.
Landing pages now hit a hard minimum of 5 registry components, distributed across hero, features, social proof, CTA, and stats sections. Each pick is a section centerpiece, not a 40px accent.
WCAG AA contrast is enforced across the generated UI. Stat labels next to NumberTickers, marquee text on dark strips, and pastel card body copy all get auto-promoted to readable contrast - no more dim-grey-on-near-black orphaned labels.
Hero copy stays human. The injected hero headline reads 'Ready to use, from your very first visit' instead of dev-speak like 'real auth, real database, real CRUD'.
Auth redirect loop fixed. Session cookie now stores the raw session ID instead of a signed JWT, so hand-rolled dashboard auth checks resolve correctly and never bounce signed-in users back to /login forever.
TS2613 'has no default export' build failures resolved deterministically. A new build-fixer rule rewrites local default imports to named imports in one pass, before the LLM repair agent is even invoked.
Generated apps default to dark mode at first paint. An SSR theme bootstrap adds the .dark class to <html> before hydration, so 'dark modern aesthetic' prompts no longer render light then flicker dark.
Redis-backed cache primitive across the web app. Search results, project metadata, and other hot-path reads are cached with fail-open behavior - if Redis is down, the app keeps working without crashing.
Database tab in every generated app's dashboard. Full CRUD plus arbitrary SQL query interface - inspect your data, run ad-hoc queries, and edit rows without leaving the app.
Per-project favicon agent. Every generated app gets a custom favicon generated from its brand, not the default Moonshift logo carrying over.
SEO baseline on every shipped app. Proper meta tags, OG images, canonical URLs, sitemap, and robots.txt out of the box - 'Did you mean: moonsift' search results are dead because brand descriptor lives in titles plus Wikidata sameAs links.
Cache health endpoint at /api/health/cache so developers can verify Redis wiring without grepping logs.
Auth scaffolds no longer 500 in routes that transitively import Bun-only globals like import.meta.dir. Shared modules use fileURLToPath(import.meta.url) instead.
Every generated app now ships with a real product UI. Sidebar, search, filters, dialogs, edit/delete - the whole working surface, not a placeholder dashboard with raw IDs.
Generic seed-on-signup. Whatever your app is - habit tracker, travel journal, invoicing, recipes - every new account lands on a dashboard with realistic demo data already in it. No empty-state photo wall.
Distinct hero headlines across runs. Two different prompts can never produce the same hero text - your brand name is woven into the headline so each landing reads as its own product.
Showcase reset. The /showcase page and the landing reel now feature three real apps built end-to-end by the pipeline (Streakline, Wayposts, Plinth) - all under 14 minutes, all browseable, all with public run logs you can step through phase by phase.
Frontend agent gets more time to ship a polished surface. Bumped its build budget so the agent finishes the dashboard properly instead of bailing into the safety-net fallback.
Domain-aware feature copy on landings. Music apps no longer get expense-tracker phrasing, plant apps no longer talk about freelancers, and so on. The copy actually sounds like the product.
Auth implementation details (bcrypt, JWT, cookie sessions) no longer leak into marketing copy on the landing page. Features sound like benefits, not a security audit.
Generic dashboard fallback no longer overwrites a real one your build already produced. The pipeline keeps the polished UI and only fills in genuinely missing pieces.
Generated apps no longer ship with duplicate seeded rows mixed with placeholder garbage. The signup-time seed pass now skips correctly when your build already has its own seed step.
Child-resource list endpoints (e.g. ingredients-of-recipes, sets-of-workouts) no longer 400 forever in the dashboard. The fallback only lists endpoints it can actually call without a parent ID.
Anti-template guardrails on the landing builder. Your hero, layout, typography, and section order get rotated per project so two builds never look like the same template with a logo swap.
Backend and frontend agents run with separate scopes. The backend can't accidentally rewrite your dashboard, the frontend can't accidentally clobber your API routes - cleaner output, fewer mid-build edits.
Hard tool-level scope enforcement. If an agent tries to write outside its lane, the write is rejected at the tool boundary - not after the fact during gate review.
Standard mode runs faster by dropping reasoning effort where it doesn't help quality (planner, simple structured outputs). Total run time on standard mode shrinks ~25% with no quality loss.
Planner correctly classifies full-stack apps even when the prompt also mentions a landing page. No more 'just a landing site' misclassification when you asked for auth + dashboard + database.
Brutalist design theme retired. Borders are softer, type does the heavy lifting, no more low-quality clip-art aesthetic on generated landings.
Frontend timeouts no longer kill the run. If the agent runs out of time, deterministic gate fixes and rescue handle the cleanup and the deploy still happens.
Hook-order errors (useState after early-return) get auto-corrected before deploy. One whole class of React runtime crashes is now caught deterministically.
Live-run UI labels are clean again. Backend, frontend, repair, polish each show up under their own name in the timeline - no more 'why is the backend writing dashboard files?' confusion.
Meta Ads launchpad. Connect your Facebook ad account, generate AI copy, and launch a paid campaign for your shipped app from the dashboard. OAuth + campaign + adset + creative all wired.
Paid-ads CTA on run completion. The moment your app deploys, you can spin up a campaign brief that's pre-filled from the project's name, description, and audience.
AI copy generation for ads with auto-pause optimizer. Underperforming ads pause themselves, healthy ones keep running. Weekly email report summarizes what worked.
In-place analytics on every active campaign. Spend, impressions, CTR, CPC, conversions visible without leaving the dashboard.
Marketing telemetry across every surface. Sentry + PostHog instrumentation on every step of the launch flow so problems surface fast.
Per-step server-side timing on campaign launches with 15-30s timeouts. Hung steps get killed quickly instead of dragging the whole launch.
Marketing UI uses shadcn Select instead of native HTML dropdowns - consistent with the rest of the app and accessible by default.
Meta ad creation no longer hangs silently after creating the creative. PostHog flush is bounded so it can't block the launch flow.
Ad accounts in non-USD currencies now respect their own minimum daily budget instead of failing on USD assumptions.
Targeting validation: empty interest IDs are sanitized, advantage_audience defaults to 0, bid_strategy is pinned, image bytes uploaded properly. The launch path actually works end-to-end now.
User-actionable failures return 422 with a body so the form can show what went wrong. No more silent Cloudflare-stripped errors.
Backend and frontend agents run in parallel where the work is independent. Builds finish faster without losing the dashboard quality the sequential path produced.
Banned-copy auto-rewrite. Marketing fluff phrases ("elevate", "empower", "seamlessly", "unleash your potential", etc.) get deterministically rewritten into honest copy before the audit even runs.
Schema bootstrap auto-fixer. If the generated database setup script has a TypeScript error, a focused fixer agent repairs it before the build ever leaves the backend phase.
Polish phase skipped on standard mode unless the design audit flags something specific. Cuts ~90s off most runs without losing quality.
Repair phase is tighter and best-effort. It catches real problems quickly and doesn't burn time on cosmetic complaints - the deploy preflight is the actual blocker.
Pipeline keeps your selected model on standard mode instead of silently downgrading to a faster, weaker one. What you pick is what you get.
Native alerts and confirm dialogs replaced with shadcn dialogs everywhere. No more browser-default popup boxes on the dashboard.
Build-phase rewrite. The whole pipeline got rebuilt around a cleaner core that's faster, easier to debug, and produces more consistent output across runs.
Centralized loading skeletons across the app. Every page has a real placeholder layout while it loads instead of an empty white flash.
Narrator commentary rewritten for a cheerful, witty tone. Less doom-and-gloom 'codebase roast' language while you wait, more friendly progress notes.
Dashboard sidebar pinned with position:fixed - no more sidebar disappearing when content scrolls inside a backdrop-blur container.
Accessibility scrub across 94 files. Removed transparency modifiers (text-muted-foreground/70, /80) that pushed contrast under WCAG AA on light theme.
Live-run chat timeline no longer duplicates narrator commentary. Each comment appears once, in order.
Sidebar background now extends the full page height regardless of content length. No more half-height aside on short dashboards.
Narrator timeouts no longer page Sentry. The 4s budget is expected and gets logged as a warning instead, so the alert stream stays signal-only.
Narrator commentary survives attempt teardown. If the parent attempt row is already gone when narration emits, the event is recorded with a null attempt_id instead of crashing the run with a foreign key error.
Docs site rewritten as a playbook. Built for non-technical founders, indie hackers, and offline businesses going online for the first time. No jargon, no internals.
New diagrams in the docs: pipeline with inputs and outputs, site anatomy with labelled regions, iteration cycle, decision tree, and a breakdown bar for the first 100 customers.
New pages: Your first build, Site anatomy, Iterating, and Sharing + domain. Plus a CTA on every page so you always have a clear next move.
Sidebar reorganized into Start here, Build, The playbook, and Practical. Welcome page leads with a four-step flow diagram.
Bring your own Vercel team and GitHub account. Deploys land in your cloud, your repo, your domain. Moonshift is just the engine.
Ownership is crystal clear from day one. Site files, repo, and deployment all sit in your accounts, fully yours, portable on day one.
Sandbox preview gated behind a feature flag for safer rollout. Default off so existing flows are untouched while we battle-test the new preview engine.
Frontend-only intent gates. Portfolio and landing-only projects skip the backend agent entirely, shipping roughly twice as fast.
Portfolio template builder produces landing-only sites with clean structure straight out of the gate.
Auth redirect base now respects your domain when running behind a reverse proxy. No more redirects to localhost in production.
Site preview thumbnails on the dashboard now retry past the WordPress placeholder and warm up on URL mint, so your card shows the real screenshot.
Post-validator rejects generic project names and the formulaic taglines. Your site does not get shipped with placeholder fluff in the hero.
Local-model admin override survives respawns. SQL sanitizer cleans up LLM-generated migrations so weird edge cases stop breaking deploys.
Write-loop guard on weak-model runs stops tool-call runaways before they burn tokens for no progress.
Per-project moonshift.page alias served the instant SSL verifies. You get a real branded URL straight from the dashboard.
Narrator commentary explains what the agent is doing while you wait. No more staring at a silent progress bar.
Clarify and voice on the create screen. Ask a clarifying question by voice or text and the build pivots before it goes wrong.
Observability across run lifecycle, billing, cron, funnel, and deployer. Sentry plus PostHog instrumentation on clarify, transcribe, alias, voice, and narrator.
Nine landing-only project subtypes (portfolio, agency, app marketing, course, event, newsletter, etc.) with their own section templates and copy patterns.
24-theme design.md bank. Every project picks from a hand-tuned visual theme so palettes never clash and typography stays coherent.
Pre-run asset queue stages photos and Google reviews before the build begins. Less waiting in the middle of a run.
Prompt scaffolding now ships contract.json body fields and canonical templates, so the LLM gets a stricter starting point and the output is more predictable.
Fast mode pins a smaller model with task-tuned reasoning. Cheaper builds for landing-only and portfolio projects without quality drop.
Deploy fixer dials down reasoning effort on retry and unblocks runs that get stuck on flaky LLM streams.
Phase-4 deterministic codemod pass plus an advisory polish step. Common cleanups land without spending LLM tokens.
Intent-aware planner. "Site IS the product" projects like portfolios and landing pages are now planned differently from "SaaS for product" projects. Better fits, fewer rewrites.
Runs list got filters and early preview. Find old runs faster and peek inside before you open them.
Auto-generated stubs for missing routes, default column values, and Pexels-sourced landing images stop trivial gaps from killing builds.
v2 sandbox now boots reliably at the end of phase-2 and through phase-4 preview.
Deployer no longer drops the project name in arg parsing and scrubs Vercel env conflicts before push.
Showcase page upgraded with four benchmaxx-curated finished apps so you can see what good looks like before you start your own.
Build-v2 robustness pass. Dead buttons, broken links, and stub pages stopped slipping through to your live site.
Auth scaffold honors your spec.md intent and stops inventing routes nobody asked for.
Planner reliability hardened. Bigger token budgets, retries on contract violations, and a JSON-text fallback that defaults on for flakier models.
Deterministic dead-button rule injects a disabled state instead of letting handler-less buttons reach production.
Lots of codemods: drizzle setter spread, implicit-any cleanups, schemaless route pruning, multi-PK extraConfig, and more. Smaller LLM bill, more reliable builds.
Vercel CLI timeout bumped from 5 minutes to 10. Deployer overall budget from 8 minutes to 15. Real builds finish, even when the network is slow.
Impeccable design audit on by default for every build. Catches visual regressions, contrast issues, and broken responsive states before they hit your users.
CSS fixup pass auto-corrects alpha and opacity inconsistencies in generated stylesheets.
Planner retries on contract violations instead of failing the whole build. Sparkle rows no longer come back empty.
Simple-mode narrator SSE fix so the live commentary stops cutting out mid-run.
Impeccable design audit lands on main. A new visual-quality guard that runs after every build and flags layout, contrast, and accessibility issues.
Tighter fixer caps so bad runs cannot burn tokens forever. Stuck builds give up sooner instead of dragging your wallet down.
Per-shell visual guard gated behind opt-in so existing themes do not regress while we tune the new audit.
Smart design themes pick a coherent palette by reading what your project actually is. No more warm cream backgrounds clashing with cool blue buttons.
New "curated" design mode locks every run to one of our hand-tuned themes. Faster, cheaper, and zero color-mixing accidents.
Your project's branded URL (yourapp.moonshift.page) now shows up everywhere - timeline, deploy tab, share links - the moment SSL is verified.
The Back button on /create now takes you to your dashboard, where you actually wanted to go.
Retired the experimental /create/solo and /create/turbo variants. One /create, one path forward.
Approval Mode. Pause your run at major checkpoints - Plan, Design, Build, Marketing - and approve, regenerate, request changes, or reject before each phase advances.
Autonomous Mode (default) keeps the end-to-end run you already know. Pick which mode you want per project, or set a default in settings.
Per-phase opt-outs let you skip expensive phases on Autonomous runs - cut the marketing pass, skip the image, save your moons.
Approval reminders by email at 1h, 6h, and 12h. If a run sits at a gate for 24h, it auto-aborts so it stops counting against your concurrent-run limit.
Gate events stream live to the UI - you see the pause land, not three seconds later.
Launchpad Import. Drop in an existing project - URL, GitHub repo, or ZIP - and Moonshift writes a full launch kit: X posts, LinkedIn posts, Reddit angles, ad hooks, cold emails, blog outline, demo script, playbook, and a 15-page PDF. First kit is free.
Per-item HITL on every launch kit asset. Accept, edit, regenerate, or delete each post individually. Publish to X and LinkedIn from the kit viewer with one click.
Asset Upload on /create. Drag-drop images, videos, audio, or PDFs - or paste links - and we thread them straight into your generated site's public directory and manifest.
Google Reviews extraction. Paste your business URL and we pull live reviews into a testimonials block automatically. Falls through Firecrawl, Tavily, and bare-fetch JSON-LD.
Public share page at /r/launch/<slug> for showing off finished launch kits.
Email lands the moment your launch kit is ready. No more refreshing the dashboard.
Web research now runs for real in every build. The agent reads your prompt, searches the web, and folds what it learns into the design.
Fixed a billing accuracy bug where some runs were under-charged. Your wallet now reflects the true cost, down to the penny.
Publishing no longer shows as "failed" when it's just waiting for your approval. Social posts sit in a human gate until you say go.
Fixed the "Collecting page data" Vercel crash that killed deploys on apps with database routes.
Builds ship even if TypeScript has minor complaints. Vercel ignores them at deploy time, so you get a live URL instead of a dead pipeline.
UI primitives (Input, Dialog, Select, etc.) are auto-generated if the frontend forgets them. No more missing-component crashes.
Build fixer stops spinning its wheels when it's stuck. If errors aren't going down, the pipeline moves on instead of burning tokens forever.
Sign-up now auto-logs you in. No more typing your password twice just to land back on the login screen.
Dashboards fetch real data. Empty states show a "Create your first item" CTA instead of marketing copy.
No more dead buttons. Every "New card", "Add item", and "Save" button now actually does something.
Auth middleware guards every private page. No more peeking at /dashboard without signing in.
Zero "Not implemented" API routes. If the frontend asks for /api/v1/notes, the backend delivers real CRUD.
Landing pages are now full-fat: nav, hero, social proof, features grid, how-it-works, testimonials, pricing, FAQ, and footer.
Database migrations on Turso now apply reliably. No more "0 tables found" after a supposedly successful push.
Parallel page shards cut frontend build time in half for apps with 6+ routes. Each shard handles a slice of the app independently.
Proactive dependency scanning installs missing packages before the build starts. No more "Cannot find module" mid-deploy.
Deterministic DB generator writes schema.ts without calling the LLM on standard shapes. Sub-second instead of ~30s.
Parallel preflight races TypeScript and Next.js build at the same time. Happy-path deploys save 15-30 seconds.
Marketing copy generates in parallel with the Vercel deploy. Social drafts are ready the moment your app goes live.
Per-agent soft timeouts kill hung LLM calls in 1-5 minutes instead of letting them burn the full 20-minute budget.
Web research is cached across runs with the same prompt. Repeat builds skip the ~60s research phase entirely.
Auto-retry on LLM idle timeouts and empty streams. Drops reasoning effort and tries again so your run doesn't die silently.
Route mini/nano high-effort calls through the Responses API. Keeps the socket alive during long reasoning so it doesn't time out.
Backend speculative fallback now races at 1 minute instead of 2. Stuck primary attempts recover ~2× faster.
Build-fixer bails sooner on identical error fingerprints. No more wasted retries that never converge.
Auth API mismatch codemod fixes sign-up/sign-in endpoint mismatches automatically. Better-auth configs stay in sync with forms.
Missing internal routes now generate real functional pages, not "Coming soon" stubs. Every link in your app actually works.
Default-vs-named import codemod fixes broken component imports that the LLM sometimes gets wrong.
Showcase page filters shipped apps by category - SaaS, dashboards, tools, landing pages, ecommerce, and AI.
First-run onboarding tour on /create walks new users through the flow in three steps. Gated so it only shows once.
Six example prompt cards unblock the blank-page problem. Click one to pre-fill the input with a proven idea.
Floating feedback widget on the create page catches rough edges and ships them straight to our inbox.
Welcome email lands immediately. Drip sequence at 24h, 72h, 7d, and 14d nudges based on what you've actually done.
Transactional emails for ship-complete, HITL-pending, and payment-success keep you in the loop without checking the dashboard.
Public pricing page with monthly/yearly toggle, tier comparison, and moon packs from $5 to $100.
Blog, legal pages, SEO plumbing, PWA manifest, OpenGraph images, and analytics instrumentation - everything a launch needs.
Chat-turn iteration on existing projects. Tweak a button, add a page, or refactor the schema without starting from scratch.
Scratch-branch isolation keeps your main branch untouched until you hit "Ship it". Preview URLs for every turn.
Auto-promote tweaks; gate features and refactors behind a "Ship it" button so nothing hits production by accident.
One-click revert any succeeded turn. Rolls back to the parent state and redeploys in seconds.
Metrics dashboard tracks turns per day, cost per run, scope accuracy, and regression rate.
Promote and redeploy endpoints wire the last mile: merge scratch to main and push to production Vercel.
Older releases live in our repo history. This page shows everything worth knowing. Version labels are user-facing milestones, not git tags - canonical version history lives in CHANGELOG.md.