Changelog

What we shipped

Model upgrades, new templates, hosting, security, and SEO. Every entry is a real release. 13 entries and counting.

  1. SEO#

    Phase-1 SEO foundation — 70+ new indexable pages

    Phase 1 of the SEO master plan landed in one day. The site is now production-quality across comparison, use-case, industry, persona, and glossary surfaces — each with full schema, internal-linking, and substantive copy (1,400–1,800 words per page).

    • /vs/[X] — 18 competitor pages with full payload (TL;DR, 15+ comparison rows, audience breakdown, narrative, 10 FAQs each)
    • /alternatives/[X] — 17 listicle pages with Website Killer ranked #1 + 4 alternatives + curated buyer guides
    • /use-cases/[slug] — 14 use cases (7 rewritten + 7 new: event, podcast, course, nonprofit, fitness-coach, real-estate, lead-magnet)
    • /industries/[slug] — 20 industries (10 rewritten + 10 new: dentists, lawyers, accountants, photographers, therapists, yoga-studios, plumbers, electricians, freelance-developers, freelance-designers)
    • /for/[persona] — 12 personas (5 rewritten + 7 new: indie-hackers, solopreneurs, developers, students, content-creators, course-creators, coaches)
    • /glossary/[term] — 32 terms with 300–500 words each (14 deepened + 18 new — JAMstack, SSR/SSG, INP, CLS, llms.txt, WCAG, GDPR, SOC 2, programmatic SEO, pillar pages, etc.)
    • /learn — 5 pillar guides + hub (AI Website Builder 101, Prompting for Websites, SEO for AI Sites, Design Systems 101, Custom Domains & DNS)
    • /tools — index + 1 live (website-cost-calculator) + 13 coming-soon
    • /contact, /security, /enterprise, /llms.txt — Phase 1 standalone pages
  2. Performance#

    Build narration v2 + ~110K-token-per-run optimization

    Two simultaneous wins. Build narration v2 makes the 8-minute factory run feel like a tracked checklist instead of a frozen progress bar. Cache plumbing fixes saved ~110–150K tokens per run on the codegen pipeline.

    • Structured build steps + lucide-icon progress component in ChatPanel (theme-token icons, no green emoji)
    • SSE narration event keeps client buildSteps in sync with server
    • selectRunScopedDocs caches reference-doc block once instead of per-file
    • cachedLayerGuidance lifts route_scaffold's anti-border/palette rules into 2nd cached system block for subpage calls
    • IA-plan retry cachedPrefix built once outside loop
    • Hero stacking-context fix: App.tsx wrapper and hero sections get relative+isolate+overflow-hidden (fixes invisible Three.js heroes)
    • Six new hero patterns wired: TILT3D_AGENCY, KINETIC_SPLIT_REVEAL, SCRAMBLE_DEV, AURORA_LANDING, SCROLL_VELOCITY_KINETIC, PARALLAX_TILT_PORTFOLIO
  3. Design#

    50-style premium taxonomy + mandatory 3D heroes on fullstack

    Two large design-quality wins. The style taxonomy expanded from 8 → 52 design systems, each with concrete rules, anti-patterns, named hex palette, and Google Fonts typography pairing. Fullstack-mode sites now ship V1-platform-grade Three.js mouse-interactive heroes (no decorative-only fallback).

    • 52 design systems: Linear Clean (new default), Stripe Flow, Raycast Glass, Anthropic Warm, Neo-Brutalist Light, Swiss Grid, Agency Portfolio Dark, Editorial Magazine, Brutalist Dev, Cinematic Showcase, etc.
    • Universal polish floor (rounded scale, alpha borders, type scale, spacing scale, button variants) + global anti-pattern denylist injected into every codegen prompt
    • Premium utility classes baked into every project's index.css (.heading-tight, .ui-label, .surface-card, .hover-lift, .magnetic-cta, .section-py-*)
    • expandCompatibleStyles() auto-surfaces relevant new tracks per archetype id
    • Three new fullstack hero shader primitives: LiquidSun (warm sun, simplex noise warp), ConstellationField (drifting orbs + cursor-linked lines), ShaderGradient (3-color noise-warped mesh)
    • runFullstackHeroPrimitiveCheck tightened: home MUST import a HEAVY primitive (decorative-only FAILS the gate)
    • Import-shape verification gate via ts-morph: blocks build phase on named-import vs export-of-resolved-file mismatch
  4. Fix#

    Six homepage-must-load fixes + resumable factory runs

    Six fixes that close 'homepage broken at publish' edge cases — React hooks auto-import, App.tsx structure gate, runtime-fix budget bump. Plus resumable runs that save ~60K tokens on architect-stage failures.

    • React hooks auto-import (addMissingReactHookImports for useState/useEffect/etc)
    • App.tsx structure gate + auto-rebuild via renderAppShell when missing
    • Runtime-fix budget bumped 2 → 5 rounds when home is broken (Home.tsx/App.tsx/main.tsx)
    • Architect-stage idempotency guards (ProductSpec/Blueprint/Contract/DesignSystem+IA-plan skip LLM if artifact exists)
    • POST /factory/resume API
    • factory/start surfaces recent-FAILED runs as resumable via 409 + resumableRunId
    • Stale-run watchdog (5-min sweep, stub-and-ship)
  5. Fix#

    3D path Router contract + seeder race fix

    • webgl_3d archetype: renderThreeAppTsx now wraps with BrowserRouter (fixes 'useRoutes may be used only in the context of a Router' crash)
    • Orchestrator dual-dispatch race fixed with pg advisory-lock claim + soft-skip on illegal-transition
    • Architect always-ship hardening: IA-plan synthesizer fallback, broader fullstack downshift trigger, stale-feedback wipe on downshift
  6. Improvement#

    Design OS v2 + Helmet wrap + cleanup-pass chain fix

    7-phase premium-quality lift. Brief expansion via Haiku pre-architect, IA-plan richness gate, Premium Taxonomy v2 (heroes + surfaces + motion), Opus homepage by default, motion primitives. Plus a critical fix for the cleanup-pass collision that was clobbering responsive + asset-sync transforms.

    • Brief expander (Haiku pre-architect) — short prompts get expanded to architect-grade briefs
    • Richness gate (IA-plan validator) — re-runs IA-plan if section density too low
    • Premium Taxonomy v2 — heroes + surfaces + motion vocabulary per style
    • Opus homepage default — Sonnet stayed uniform for everything else; Opus reserved for home
    • Clone rescue — recovers from clone-style prompts mid-architect
    • Motion primitives library
    • Template main.tsx now wraps <HelmetProvider> (fixes 'helmetInstances undefined' preview crash)
    • Pre-verification cleanup chain composes sequentially (was Object.assign-clobbering)
    • Responsive + asset-sync transforms added to chain
    • Verification thresholds bumped; 5 new FACTORY_FLAGS
  7. Fix#

    Undefined-identifier AST + chat-edit silent-drop fix

    • AST flags icon-like identifier references in array/object literals (not just JSX tag names) — fixes runtime FacebookIcon-not-defined ship-through
    • Chat-edit fails loudly when ALL files in patch are parse-rejected
    • Traefik preview wildcard router gets explicit tls.domains entry
  8. Feature#

    Factory v3 cutover + dependency installer

    Factory v3 lands: model router, Apply client, Workspace + Northflank, npm-registry import check, Bootstrap design templates, snapshot APIs. Gated by FACTORY_WORKSPACE flag during rollout.

    • Model router with per-stage budget cap + telemetry
    • Apply client for atomic file-tree mutations
    • Workspace + Northflank container provisioning per project
    • npm-registry import check before generation (blocks hallucinated packages)
    • Bootstrap design templates per archetype
    • Snapshot APIs for rollback and inspection
    • Pre-commit installMissingDependencies — chat-edit can npm install new packages into live preview
    • --ignore-scripts + peer-dep + lockfile retries; public-scope allowlist; baseline-collision rejection
    • Tailwind + shadcn componentStyle path with template primitives
    • ChatPanel installer-progress hint
  9. Fix#

    sx={{%',` regex bug fix + factory safety gate

    Root cause for systematic JSX syntax break: responsive-repair regex was chopping `'100%'` mid-string. Adds pre-COMMIT revalidation, hardened chat-edit JSON prompt, deterministic unused-import strip. Plus the factory safety gate for the Sagar Tuitions hardening pass.

    • Responsive-repair regex bug fix (no longer chops '100%' inside quotes)
    • Pre-COMMIT revalidation gate
    • Hardened chat-edit JSON prompt with explicit no-truncation rules
    • Deterministic unused-import strip via ts-morph
    • Pre-write JSX parse gate in mergeStagingFiles
    • Landing nav-anchor consistency check
    • Fuzzy nav repair
    • Tighter flexWrap insertion
    • Premium-polish DOS rules
  10. Performance#

    Pipeline hardening + token efficiency

    • Codegen stage flow upgrades to eliminate hallucinated imports
    • Playwright drift correction
    • Token-efficiency improvements via deduplicated dispatches
    • Double-dispatch token waste pattern eliminated
  11. Security#

    Redis SLAVEOF crypto-miner incident contained

    Redis SLAVEOF crypto-miner attack contained to the Redis container; planted `backup1..4` cron payload keys neutralized; host clean. No data exfiltration; no customer impact. Redis instance now bound to internal-only network with auth.

    • Attack surface: public Redis port without auth (now closed)
    • Containment: Redis container isolated; cron-payload keys removed
    • Verification: host filesystem scan clean; no persistence in /etc/cron* or /var/spool/cron
    • Hardening: Redis bound to 127.0.0.1 + requirepass; iptables block on 6379 from public
    • Defense-in-depth: ufw allowlist; falco runtime monitoring; weekly host audit
  12. Fix#

    Preview-container Vite/esbuild OOM bumped to 1GB

    • Root cause: '[plugin:vite:esbuild] The service is no longer running' was a 512MB-cgroup OOM kill, not a code bug
    • Preview containers bumped from 512MB → 1GB memory + 2 cores
    • Auto-migration of existing preview containers
  13. SEO#

    Programmatic SEO landing pages

    • Shipped /vs/* and /alternatives/* programmatic comparison pages
    • Added /use-cases/* surfaces for landing pages, SaaS, portfolio, agency, small business
    • Site-wide JSON-LD: Organization, WebSite, SoftwareApplication, FAQPage, BreadcrumbList
    • robots.txt + sitemap.xml live

Want to be the first to know when something ships? Follow the changelog RSS at /changelog — the team posts every release here first.