← Back

What's New

The latest updates and improvements to our platform.

Thursday, May 14, 2026

Improved

Intake form questions are now smarter and better prioritized

The AI-powered intake form now determines which questions are most important for your business type and surfaces them first, rather than following a fixed order — leading to more relevant site content from the start. **Where:** Site setup → intake form conversation **How to test:** - Start a new site for a restaurant and complete the intake form - Confirm questions about menu, hours, and location appear before generic branding questions **Watch for:** Generic or irrelevant questions appearing first; the form asking for information that doesn't match the business type

Fixed

Move-up / Move-down buttons restored in the Plan tab page list

The up/down arrow buttons for reordering pages in the Plan tab were missing after a recent update. They are now restored and work as expected. **Where:** Site editor wizard → Plan tab → page list **How to test:** - Open the Plan tab and confirm up/down arrow buttons appear next to each page - Click an arrow and verify the page moves to the new position **Watch for:** Buttons still absent; clicking move triggers an error

New

New variants editor for managing product options like size and color

Collection items (products, services, menu items) can now have structured variants — for example, a T-shirt with size and color options. The new variants grid editor in the content manager lets you define variant axes and set stock and pricing per combination. **Where:** Client portal → Content → select a collection item → Variants tab **How to test:** - Open the content manager for a products collection - Select an item and navigate to the Variants tab - Add a "Size" axis with values S, M, L and confirm the grid generates all combinations - Set a price for each variant and save **Watch for:** Variant grid not generating combinations; price changes not saving; variants tab missing on collection items

Fixed

Preference questions appear more reliably during site setup chat

Preference cards (style, palette, layout questions) in the site setup chat now correctly appear after the AI gathers follow-up information, so users get prompted for their preferences at the right moment. **Where:** New site flow → Chat-first setup conversation **How to test:** - Start a new site via the chat flow - Answer the opening prompt — confirm preference cards appear within the first 2-3 turns - Complete clarification turns and verify preference cards surface after turn 2 or 3 **Watch for:** Preference cards never appearing; cards appearing before the AI has gathered enough context

New

Row picker and scope indicator for catalog template editing

Catalog site owners can now see exactly which item they're editing when working on a template page, choose a different item to preview via a chip in the top-left of the editor canvas, and get a confirmation dialog before making design changes that would affect many items at once. **Where:** Site editor → any template page (e.g. a property detail or product detail page) **How to test:** - Open a catalog-type site (real estate, hotel, restaurant, or e-commerce) in the site editor - Navigate to a detail template page — a "Editing: [item name]" chip appears in the top-left - Click the chip to switch to a different item and confirm the preview updates - Try a chat refinement that changes the overall design — confirm a confirmation dialog appears showing how many items would be affected **Watch for:** Chip not appearing on template pages; row list not loading; confirmation dialog appearing for single-item text edits that should not require it

Improved

Row picker selection is remembered as you navigate between pages

When editing a catalog site, the item you selected in the row picker (e.g. "Editing: Blue Sneakers") now stays selected as you switch between template pages in the editor, so you don't have to re-select on every navigation. **Where:** Site editor → catalog template pages → row picker chip **How to test:** - Open a catalog site with multiple template pages - Select a specific item via the row picker chip - Navigate to a different template page — confirm the same item remains selected **Watch for:** Selection resetting to default on page navigation; row picker chip disappearing after navigation

Improved

Select-all chip option and clickable inspiration thumbnails in the intake form

Multi-chip fields in the site intake form now include a "Select all" toggle so you can pick every option in one click. Inspiration site URLs are now also shown as clickable thumbnails you can open in a new tab to review before choosing. **Where:** Site editor → AI intake form (style preferences, services, audience chips) **How to test:** - Start a new site and reach the intake form — click "Select all" on a multi-option chip field - Confirm all chips are toggled; click again to deselect all - Hover over an inspiration URL — confirm a thumbnail or link button appears and opens the site **Watch for:** "Select all" not deselecting; inspiration thumbnails not loading

Fixed

Setup chat no longer shows redundant questions you already answered

The site setup chat no longer shows a preference card prompting for your business name when you have already provided it. The chat also avoids asking questions that were already answered in an earlier intake form step. **Where:** Site setup → blueprint chat → initial conversation **How to test:** - Start a new site, complete the wizard with a business name, then enter the chat - Confirm the chat does not ask for your business name again - Answer a question in the form step, then confirm the chat does not ask the same question **Watch for:** Chat repeatedly asking for already-provided information; duplicate questions between the form and chat

Fixed

Setup form no longer stalls silently after answering certain questions

Answering questions in the site setup intake form no longer causes the form to hang without advancing — previously uploaded assets are now correctly pre-loaded, and the form reliably moves to the next step. **Where:** Site setup → intake form conversation **How to test:** - Start a new site and complete several intake form questions in sequence - Confirm the form advances after each answer without freezing - Confirm previously uploaded logos or photos appear as pre-selected in the assets step **Watch for:** Form freezing after an answer with no spinner or error message; asset uploads not appearing as pre-selected options

Fixed

Site clone pipeline reliability improvements

Several reliability issues in the site clone pipeline have been resolved: duplicate images no longer appear when a cloned site is regenerated, and the V2 generation path now runs correctly on cloned sites to produce styled designs instead of plain layouts. **Where:** Site editor → Clone site → Generate **How to test:** - Clone a site and run Generate — confirm the output uses a styled V2 design - Regenerate the clone — confirm no duplicate images appear in the result **Watch for:** Clone generation defaulting to an unstyled V1 layout; image duplication after multiple generate runs

New

Site generation now auto-fills images from your previously uploaded assets

When generating a new site, any images you have already uploaded (logos, photos, product images) are automatically detected and incorporated into the generated design instead of being replaced with generic stock photos. **Where:** Client editor → Generate site → generated output **How to test:** - Upload a logo and a few photos to a site, then trigger a generation - Confirm the generated design uses your uploaded images rather than stock placeholders **Watch for:** Uploaded assets not appearing in the generated site; stock photos overriding custom uploaded images

Improved

Site generation uses visual analysis of your inspiration sites for better style matching

When you provide inspiration URLs during site creation, the AI now visually analyzes those sites to extract specific design choices (color palette, typography feel, layout density), producing a richer brief that results in generated sites that more closely match the look you had in mind. This also applies when cloning an existing site. **Where:** Site editor → AI chat → inspiration URL input → Generate **How to test:** - Start a new site and add a polished competitor's URL as an inspiration reference - Generate the site and compare the color palette and layout style to the inspiration **Watch for:** Generation failing when inspiration URL is provided; style bearing no resemblance to the reference

Fixed

Site preview loads more reliably after generation completes

The site preview now retries loading if the initial fetch fails right after generation, preventing the blank preview screen that sometimes appeared even when generation succeeded. **Where:** Client editor → after generating a site → preview panel **How to test:** - Generate a new site and watch the preview load - Confirm the preview shows the generated design without requiring a manual refresh **Watch for:** Preview remaining blank after generation completes; needing to refresh to see the generated site

Fixed

Site previews no longer hang on 'Loading' when some content fields are empty

Sites where certain content fields like the site name or phone number had not been filled in would crash during preview generation and show a permanent "Loading preview" spinner. The preview engine was returning an empty array for any missing field, and AI-generated code's defensive fallbacks (e.g. `siteName || 'Brand'`) treated that as a valid value, causing a crash when it tried to call text methods on it. **Where:** Site editor → preview panel; site gallery thumbnails **How to test:** - Open a newly generated site where the business name or contact details were not provided - The preview should load and display the site with sensible fallback text (e.g. "Brand") rather than hanging on "Loading preview" - Gallery thumbnails for such sites should also render correctly **Watch for:** "Loading preview" spinner that never resolves; blank thumbnails in the gallery for sites with sparse content

Fixed

Site setup wizard no longer crashes when pre-existing assets are detected

The site setup wizard crashed for some users who had previously uploaded assets — this is now fixed and the wizard completes normally with those assets pre-selected. **Where:** Site setup wizard → assets step (when existing uploads are present) **How to test:** - Upload a logo to a site, then start a new site setup on the same account - Confirm the wizard reaches the assets step without crashing and shows the previously uploaded logo **Watch for:** White screen or JavaScript error in the browser console during the assets step

Fixed

Sticky headers and navbars now render correctly in site preview

Elements with sticky positioning (navigation bars, floating headers) now behave correctly in the site preview editor instead of scrolling away or appearing misplaced. Design-switching between variations also no longer causes preview race conditions. **Where:** Client editor → site preview → scroll behavior; Client editor → switching between design variations **How to test:** - Open the site editor and scroll down — confirm a sticky header stays visible at the top - Switch between design variations rapidly and confirm the preview settles on the correct design without flashing **Watch for:** Sticky headers scrolling out of view in preview; preview showing the wrong variation after switching

Improved

Stronger password security for customer portal accounts

Customer portal password handling now checks against known breached passwords, enforces minimum strength requirements, and adds rate limiting on login attempts to protect accounts from credential-stuffing attacks. **Where:** Customer portal → account settings → change password **How to test:** - Try setting a weak or commonly breached password — confirm it is rejected with a clear reason - Attempt multiple rapid logins with a wrong password — confirm rate limiting kicks in **Watch for:** Legitimate strong passwords being rejected; no error message on weak password submission

Improved

Template detail pages preview with real item data baked in at compile time

Catalog detail page templates (product, property, room, etc.) now compile with the selected item's data baked in, so the preview in the editor shows accurate names, prices, and images instead of placeholder fallback content. **Where:** Site editor → any template detail page preview **How to test:** - Open a catalog site with a product detail template - Select a specific product via the row picker - Confirm the preview shows that product's real name, price, and images **Watch for:** Preview still showing placeholder text when real item data exists; preview blank after selecting a row

Improved

Template previews open in a new tab instead of a modal

Clicking to preview a template on the templates gallery now opens it in a new browser tab for a full-page view, replacing the small inline modal that previously loaded the preview. **Where:** Templates page → click any template → Preview **How to test:** - Navigate to the templates gallery - Click the preview button on any template - Confirm a new tab opens with the full template preview **Watch for:** Preview opening in the same tab; modal still appearing instead of new tab

Fixed

Text and content changes made via chat are now reliably saved

A bug where content edits made through the AI chat (such as updating copy or changing section text) were silently dropped instead of being persisted to the site has been fixed. Changes now save correctly every time. **Where:** Site editor → AI chat → any content refinement **How to test:** - Ask the AI to change the hero heading text - Refresh the page and confirm the updated text is still showing **Watch for:** Content reverting to the old text after a page refresh; no confirmation that the change was saved

Fixed

Text colors now inherit theme correctly across interactive components

Interactive components (accordions, carousels, booking forms, checkout, quiz, and 20+ others) now correctly inherit text color from the surrounding theme instead of showing invisible or mismatched text in certain color schemes. **Where:** Published site — any section using forms, accordions, tabs, carousels, pricing toggles, or checkout components **How to test:** - Preview or publish a site with a dark background section containing an accordion or form - Confirm all text inside the component is readable and matches the expected color **Watch for:** Text appearing invisible or white-on-white inside interactive components on dark backgrounds

Fixed

Unfilled placeholder chips in AI replies now prompt for input instead of stalling

When the AI sends a reply containing a chip with an unfilled placeholder (e.g. "[your business name]"), the interface now automatically converts it into an input request so you can fill in the value. Previously, leaving these blank would silently stall the conversation flow. **Where:** Site editor → AI chat → any conversation with placeholder chips **How to test:** - Trigger a chat response that includes a chip requiring user input - Confirm the chip prompts for the missing value instead of blocking further messages **Watch for:** Placeholder chip appearing but no input being requested; chat flow not advancing after filling in the chip

Fixed

Users belonging to multiple organizations no longer hit 500 errors

Users who are members of more than one organization were seeing intermittent 500 errors on generation, chat, and voice features due to an ambiguous database lookup. This is now resolved — the correct organization is always selected based on the site being edited. **Where:** Any site feature (generate, chat, voice) when the logged-in user belongs to multiple organizations **How to test:** - Log in as a user who is a member of two or more organizations - Open a site and trigger generation or a chat message — confirm no 500 error occurs **Watch for:** Operations succeeding for single-org users but failing for multi-org users

Fixed

V2 generated sites display content correctly right after generation

Sites generated using the V2 design flow now correctly load all page files into the editor immediately after generation completes, without requiring a manual refresh. **Where:** New site flow → generate → site editor (V2 path) **How to test:** - Generate a new site using the V2 path - Confirm all pages appear in the editor without refreshing - Open individual pages and verify content is present **Watch for:** Blank editor after V2 generation; pages missing until a refresh; content appearing then disappearing

New

Variant grids appear automatically on product and item detail pages

Detail pages for catalog sites (e-commerce, hotels, restaurants) now automatically render a variant selector grid — letting visitors pick size, color, room type, or any other axis you defined — without any custom code. **Where:** Published catalog site → any item detail page with variants defined **How to test:** - On a catalog site, add variants to a product (e.g. size S/M/L, color Red/Blue) - Publish the site and open the product detail page - Confirm a variant grid appears and selecting a cell updates the displayed price/stock **Watch for:** Grid not appearing when variants exist; selection state not updating the displayed info

Fixed

Version History now accessible from the Settings panel

The Version History panel is now correctly wired into the Settings view under the "Version History" section, so you can browse and restore previous site states without leaving the settings flow. **Where:** Site editor → Settings → Version History section **How to test:** - Open the settings panel and scroll to the Version History section - Confirm past versions are listed and a "Restore" action is available **Watch for:** Version History section appearing empty or not loading past versions

New

Voice chat now supports multiple languages and starts faster

The voice chat assistant now automatically detects and responds in the visitor's language, and the cold-start delay when first activating voice has been reduced significantly. **Where:** Site → voice chat widget → speak in any supported language **How to test:** - Open a site's chat widget with voice enabled and speak in a language other than English - Confirm the assistant responds in the same language - Activate voice chat for the first time and note the startup time is noticeably faster **Watch for:** Assistant responding in English despite visitor speaking another language; voice chat taking more than 3 seconds to start

Improved

Voice intake works in any language, not just English

The voice-based intake flow now respects the language detected in the conversation instead of always defaulting to English, enabling non-English speakers to describe their business naturally in their preferred language. **Where:** Site editor → AI chat (voice mode) **How to test:** - Start a new site using voice mode and speak in French, Spanish, or another language - Confirm the AI responds in kind and the resulting plan reflects the correct language **Watch for:** AI falling back to English mid-conversation; plan content appearing in the wrong language

Wednesday, May 13, 2026

Fixed

"Site Not Found" flash on load eliminated

Opening a site in the editor briefly showed "Site Not Found" for about 100 ms before the site loaded, caused by a race condition when two fetches ran simultaneously. The site now loads directly without the false error flash. **Where:** Client portal → any site editor URL **How to test:** - Navigate directly to a site editor URL (`/client/<id>/site/new?siteId=<id>`) - Confirm the site loads without a momentary "Site Not Found" message **Watch for:** "Site Not Found" still flashing on fast connections; legitimate not-found pages broken

Fixed

Analytics dashboard now shows real visitor data instead of zeros

The analytics dashboard was returning 0 for all metrics even on sites with real traffic because required Google Analytics custom dimensions weren't registered, causing the GA4 API to return empty results. Custom dimensions are now registered automatically so visitor counts, page views, and other stats appear correctly. **Where:** Client portal → Site editor → Analytics tab **How to test:** - Open the Analytics tab on a site that has had some traffic - Confirm visitor counts, page views, and other metrics show non-zero values - Check that the date range selector and per-page breakdowns work **Watch for:** All metrics still showing 0 after the fix; "no data" state showing on sites with known traffic

Fixed

Analytics tracking no longer disappears after a site redeploy

Redeploying a site was silently stripping the Google Analytics script from every page, causing analytics to stop recording data after any redeploy. This is now fixed — redeploys carry the full analytics configuration just like a fresh publish. **Where:** Client portal → Settings → Domain / Redeploy action **How to test:** - Enable Google Analytics on a site and publish it - Trigger a redeploy - Confirm analytics events still appear in Google Analytics after the redeploy **Watch for:** Analytics dashboard showing 0 visitors or events after a redeploy on a previously-working site

Fixed

Blueprint chat on mobile is easier to use — bigger input, auto-opens your plan

Several mobile UX issues in the blueprint chat are resolved: the chat input is now full-width with the send button below it (not cramped beside it), the site plan panel opens automatically when your plan is ready, location questions are now asked when needed, and the assistant now says "tap Review & Generate" instead of directing you to a desktop-only panel. **Where:** Client portal → Create new site → Blueprint chat (on a mobile device) **How to test:** - Open the blueprint chat on a phone or narrow window - Describe your business and confirm the chat input is large and comfortable to type in - Complete a few exchanges and confirm the plan sheet opens automatically once a plan is generated - Confirm a location question appears if your business type needs one **Watch for:** Input still cramped or send button missing on narrow screens; plan panel not opening automatically after AI produces a plan

Improved

Brief tab page type picker is simpler and less jargon-heavy

The Page Type selector in the Brief tab has been simplified from two layers of industry-specific sub-types down to a clear binary choice: "Multi-page site" or "Single landing page." The header wording now reflects that most fields are captured automatically through the chat, so the brief feels like a summary rather than a form to fill in manually. **Where:** Client portal → site editor → Brief tab → Page Type **How to test:** - Open the Brief tab on a site in the design assistant - Confirm the Page Type field shows two options: "Multi-page site" and "Single landing page" - Confirm there are no sub-type dropdowns after selecting either option - Confirm the Brief header reads something like "Captured by chat" rather than instructions to click and edit **Watch for:** Page type still showing old sub-type lists; header wording unchanged; selection not saving

Improved

Catalog detail pages publish reliably and handle edge cases correctly

Several reliability issues with catalog-type sites have been fixed: detail pages now generate correctly for all catalog industries (not just the initially listed set), duplicate image uploads are rejected with a clear message, and hand-built pages are never overwritten by auto-generated detail pages during publish. **Where:** Site editor → catalog sites (real estate, hotel, restaurant, e-commerce, car dealership, education); Content → Images tab; Publishing **How to test:** - Generate and publish a catalog site — confirm all homepage grid links lead to live detail pages (no 404s) - In the content editor for a catalog site, try uploading the same image URL twice — confirm a duplicate warning appears instead of adding it - Create a manual page with a slug that matches a catalog item slug, then publish — confirm the manual page is preserved and not overwritten **Watch for:** Catalog grid links returning 404 after publish; duplicate images silently added to galleries; manually-created pages disappearing after publish

New

Catalog items generate individual detail pages when site is published

Each row in a catalog collection (products, properties, rooms, cars, events, courses) now gets its own dedicated URL page when the site is published — e.g. `/products/blue-widget` — so search engines can index individual items and visitors can link directly to them. **Where:** Publish your site via Client portal → Settings → Domain & Publish **How to test:** - Add a few items to a catalog collection (e.g. Products) - Publish the site - Visit `https://yoursite.com/products/<slug>` for each item - Confirm the detail page renders with the correct item data **Watch for:** Detail pages returning 404 after publish; items without a slug not appearing

New

Catalog items now support multiple photos with drag-and-drop reorder

Product, property, room, and vehicle catalog items can now hold a gallery of photos instead of a single image. Images support drag-and-drop reorder, a "primary" star to set the hero photo, alt text, and direct upload from the editor. **Where:** Client portal → Content tab → any catalog collection (Products, Properties, Rooms, Cars, etc.) → edit an item **How to test:** - Open a catalog item in the Content editor - Click the images field and upload two or more photos - Drag to reorder; star one as primary - Save and confirm the gallery appears on the published detail page **Watch for:** Upload failures on files over 15 MB; only JPEG, PNG, WebP, GIF, and AVIF are accepted

New

Catalog sites generate detail page templates and sample content automatically

When generating a catalog-type site (real estate, hotel, restaurant, e-commerce, car dealership, or education), the AI now produces a detail page template alongside the homepage in the same generation pass — and sample content rows are seeded automatically so detail pages are ready to view and edit immediately. **Where:** Site generation → catalog-type industries; Site editor → Pages tab **How to test:** - Start a new site for a real estate or hotel business and generate designs - Open the generated site and navigate to the Pages tab — a detail template page (e.g. "Properties Template") should appear alongside the homepage - During the design-comparison step, confirm the detail template is visible as a browsable page in each variation - Publish the site and verify that individual detail pages are live and linked from the homepage grid **Watch for:** Detail template not appearing in the Pages list after generation; sample rows missing from the catalog content type; homepage grid links pointing to 404 pages after publish

New

Catalog sites now publish individual detail pages for each listing

Real estate, hotel, restaurant, ecommerce, car dealership, and education sites now automatically generate and publish a dedicated detail page for every listing in their catalog. Each page uses the AI-generated template and is populated with that listing's specific data, so visitors can browse to individual property, room, product, or course pages with a clean URL like /properties/sunset-villa. **Where:** Client portal → catalog-vertical site → Publish → published site detail pages **How to test:** - Open a catalog-vertical site (real estate, hotel, restaurant, ecommerce, car dealership, or education) - Add at least one listing in the site's content collection (e.g. a property or room) - Publish the site - Navigate to the published site and click through from the homepage grid to a listing detail page - Confirm the detail page shows that listing's specific content (title, description, images) - Confirm each listing has its own URL **Watch for:** Detail page links returning 404; all detail pages showing the same content; slugs colliding with hand-built pages

Fixed

Chat messages are saved reliably and never silently lost

If the system could not link a new conversation to a site during startup, it previously left behind an orphaned chat that appeared to work in the current session but vanished on refresh. The connection is now retried more aggressively, and if it ultimately fails the user sees a clear error message instead of a silent dead-end — the message is preserved on the user's end so it can be sent again cleanly. **Where:** Client portal → new site wizard → first messages in the chat **How to test:** - Start a new wizard session and send a message - Confirm the message is saved and reappears on refresh - Confirm the Brief tab reflects the information shared in the chat after refreshing **Watch for:** Chat history disappearing on page refresh; messages sent in a session with no error but not present after reload

New

Click any text in the preview to edit it directly

Single-clicking a static element in the site preview now automatically enters edit mode and selects that element, so you can start typing immediately without switching modes manually. Interactive elements like buttons and links continue to work normally. A hover outline hints at what's editable, and pressing Escape or clicking an empty area returns to preview mode. **Where:** Site editor → preview canvas (any text or content element) **How to test:** - Open the site editor with a generated site - Hover over a heading or paragraph in the preview — a subtle outline should appear - Click the element — confirm it enters edit mode and the element is selected - Type to change the text and confirm the change is applied - Press Escape and confirm you return to preview mode - Click a button or link and confirm it behaves normally (no edit mode) **Watch for:** Edit mode not entering on click; interactive elements accidentally entering edit mode; Escape key not returning to preview

Fixed

Cloned sites now appear on the dashboard and are not auto-deleted

Sites created by cloning an existing design were previously invisible on the dashboard Designs tab and at risk of being silently deleted by the overnight cleanup job. Cloned sites now correctly appear as design-type sites on the dashboard immediately after cloning. **Where:** Dashboard → Designs tab; Site editor → Clone site **How to test:** - Clone an existing site from the site editor - Return to the dashboard and confirm the cloned site appears in the Designs tab - Confirm the cloned site can be opened and edited normally **Watch for:** Cloned site missing from the Designs tab; cloned site disappearing within 24 hours; cloned site opening in the blueprint planner instead of the design editor

New

Contact buttons and floating contact stack now available for AI to add to sites

Two new site components are now available: a contact button (WhatsApp, SMS, call, email, social, or custom URL) with built-in click tracking, and a floating contact stack that groups multiple contact options in a responsive bubble column. Every tap is logged to the engagement dashboard. **Where:** AI-generated sites and refinements — ask the AI to "add a WhatsApp button" or "add a floating contact bar" **How to test:** - Refine a site and ask the AI to add a contact button or floating contact stack - Publish the site and click a contact button - Confirm the click appears in the Engagement tab within a few seconds **Watch for:** Contact buttons missing from the published HTML; clicks not recording in analytics

Fixed

Dashboard Chats tab no longer shows abandoned wizard sessions

The Chats tab was listing sites where the wizard was opened but no messages were ever sent, cluttering the view with empty entries. Those sessions are now hidden until the user actually sends a message, at which point the conversation appears normally. Abandoned sessions older than 24 hours are also automatically cleaned up so they do not accumulate. **Where:** Client portal → dashboard → Chats tab **How to test:** - Open the wizard for a new site and close it without sending any messages - Return to the dashboard and open the Chats tab - Confirm the abandoned session does not appear - Start a new wizard session and send at least one message - Confirm that session now appears in the Chats tab **Watch for:** Chats tab showing empty entries with no messages; real active chats disappearing from the tab

New

Dashboard now shows a Chats tab for sites still in the planning phase

Sites that are mid-blueprint-chat now appear in a dedicated "Chats" tab on the dashboard instead of disappearing from view. The tab gives users a clear entry point to resume their conversation and continue building. **Where:** Dashboard → Chats tab (alongside Builds and Designs) **How to test:** - Start a blueprint chat that hasn't yet generated a site - Return to the dashboard and confirm the site appears under the Chats tab - Click the entry to resume the chat **Watch for:** Planning sites not appearing anywhere on the dashboard; sites appearing under the wrong tab

Fixed

Design gallery thumbnails no longer get stuck loading forever

On some older sites, design variation thumbnails in the gallery would spin indefinitely and never render. This was caused by an internal error thrown when checking older site variation data. Thumbnails now load correctly regardless of how old the site is. **Where:** Client portal → Site editor → Designs tab (variation gallery) **How to test:** - Open the Designs tab on a site with multiple variations - Confirm all variation thumbnails load and are not stuck on a spinner - Try on an older site (created before May 2026) to confirm the fix applies there too **Watch for:** Any thumbnail remaining on an infinite spinner; blank thumbnail cards

New

Edit catalog detail pages directly in the preview

Catalog-vertical sites (real estate, hotels, restaurants, etc.) now support inline editing on their detail page templates. A row-picker chip in the top-left of the canvas shows which listing you are previewing; click it to switch rows. Clicking any text bound to that listing's data patches only that row — not every detail page — so sibling pages stay intact. Edits that would affect the overall template design show a confirmation prompt before applying. **Where:** Site editor → select a catalog detail page (e.g. a property or room page) → preview canvas **How to test:** - Open a catalog-vertical site in the editor (real estate, hotel, restaurant, ecommerce, car dealership, or education) - Navigate to a detail template page (e.g. "Properties Template") - Confirm the row-picker chip appears in the top-left showing which listing is bound - Click a title or description on the page to edit it inline - Confirm only that listing's data changes, not the template structure - Use the row-picker chip to switch to a different listing and confirm the preview updates - Try editing a design element and confirm a confirmation prompt appears before applying **Watch for:** Row-picker chip not appearing on template pages; inline edit saving to the wrong listing; switching rows not updating the preview; confirmation prompt not appearing for design-level edits

Fixed

Fixed duplicate assistant button appearing on mobile in the site editor

Mobile users in the site editor (Mission Control) were seeing two floating assistant buttons at the same time, and the chat scroll would sometimes behave incorrectly. Both issues are now resolved — only the correct slide-over assistant panel appears on mobile. **Where:** Client portal → Site editor (any page) on a mobile device **How to test:** - Open a site in the client editor on a phone or narrow window - Confirm only one assistant button or icon appears — no duplicate blue pill button - Open the assistant chat and scroll through a long conversation to confirm it scrolls smoothly **Watch for:** Two floating buttons or blue pills appearing simultaneously on mobile; chat conversation not scrolling to the latest message

New

Generate trackable QR codes and view engagement analytics in one place

Site owners can now mint QR codes for trucks, business cards, and invoices directly from the portal, then watch scan counts alongside every WhatsApp, call, and email button click roll up in an Engagement dashboard. **Where:** Client portal → left rail → QR Codes and Engagement tabs **How to test:** - Open a site in the client portal - Go to the QR Codes tab, create a new code with a channel (e.g. WhatsApp) and target URL - Download the QR code as PNG or SVG - Scan it and confirm the scan count increments in the Engagement tab - Verify click-through stats for WhatsApp/call/email buttons also appear in Engagement **Watch for:** QR codes not scanning; scan counts not incrementing; Engagement tab showing no data

Fixed

Generated site grids no longer have empty boxes or oversized gaps

AI-generated grid sections (services, features, gallery) sometimes created more slots than they had content for — leaving empty white boxes — and used oversized gap utilities that left awkward whitespace between cards. Fixed by tightening the generation prompt: grids now adapt their slot count to the actual item count, optional secondary slots are conditionally rendered, and gap sizes are capped. Creative bento/mosaic layouts (1 featured + 3 small, 2+2, etc.) are still explicitly encouraged — no fixed heights or widths are imposed. **Where:** Any newly generated site — affects grid-based sections like services, features, and gallery **How to test:** - Generate a new site and inspect grid sections in the preview - Confirm no blank/empty grid cells appear alongside content cells - Confirm gaps between cards look tight (not cavernous) **Watch for:** Empty white boxes in grid sections; excessive whitespace between grid rows or columns

Fixed

Generation error screens now have clear navigation and plain-language messages

When site generation fails, both the site creation and blueprint pages now show your site header with a logo, a "Go to Dashboard" escape button, and human-readable error messages — instead of a raw technical error that blocked the entire screen with no way out. **Where:** Client portal → Create new site or Blueprint page → generation failure state **How to test:** - Trigger a generation failure (e.g., network disconnect mid-generation) - Confirm the error card shows a "Go to Dashboard" button alongside "Try Again" - Confirm the error message is readable and doesn't expose model names or timeouts **Watch for:** Error overlay blocking the header; raw technical error text (model names, timeout durations) appearing in the error message

New

Home services businesses can now create a site in minutes from a dedicated landing page

Contractors and agencies in trades verticals (plumbing, electrical, HVAC, landscaping, cleaning, and general contracting) now have a dedicated sign-up flow at `/trades` that auto-generates a curated home-services site after a short form — no manual setup required. **Where:** `/trades` → pick your vertical → fill the form → site is generated automatically **How to test:** - Visit `/trades` and pick a vertical (e.g. Plumbing) - Fill in the business name, location, and services - Submit and confirm a site is generated and you are redirected to the editor - Test the unauthenticated flow: fill the form without being logged in, register, and verify the form auto-submits after redirect **Watch for:** Generation not triggering after form submit; unauthenticated users losing their input after registration

New

Home-services sites can now check service areas, sell subscriptions, and collect booking deposits

Three new components are available for trades and home-services sites: a zip-code service area checker that captures out-of-area visitors to a waitlist, a subscription button for recurring maintenance plans, and booking deposit collection via Stripe Checkout before the appointment is confirmed. **Where:** AI-generated trades sites — ask the AI to "add a service area checker", "add a maintenance plan subscription", or "require a deposit at booking" **How to test:** - Generate or refine a trades site and ask the AI to add each component - Test the zip checker with an in-area and out-of-area zip code - Place a test subscription or deposit payment - Confirm the booking/subscription appears in the site's Inbox or Forms tab **Watch for:** Service area checker not validating zips; deposit redirect not going to Stripe; subscription button failing on non-Stripe payment setups

Fixed

Intake form answers no longer disappear after refreshing the page

In some cases the preference cards collected during the wizard intake disappeared from the chat history after a page refresh, with no error shown. This happened when the data was stored in a double-serialized format that the rehydrator silently skipped. The rehydrator now recovers from this and logs a warning so underlying data issues surface rather than being hidden. **Where:** Client portal → new site wizard → chat history after page refresh **How to test:** - Complete an intake preference form in the wizard chat - Refresh the page - Confirm the preference cards (style, audience, tone, etc.) are still visible in the chat history **Watch for:** Preference cards missing from chat after refresh; intake recap showing no prior answers

Fixed

Navigating to your site no longer opens a different site by mistake

Users with many sites were occasionally redirected to a different site than the one stored in their session because only the 10 most-recent sites were checked. The redirect guard now searches all sites and falls back to fetching the specific site by ID, ensuring you always land on the right one. **Where:** Client portal → visiting your site URL **How to test:** - Create or own more than 10 sites in one account - Navigate to `/client/<clientId>/site` from a session that last visited a site outside the top 10 - Confirm it redirects to the correct site **Watch for:** Still landing on the wrong site after the fix; "Site Not Found" errors on sites that exist

Fixed

Rapidly switching between design variations no longer lands on the wrong one

Clicking through design variations quickly could leave the site saved to a different variation than the last one you selected, because competing save requests would race and the slowest response would win. Variation switches are now serialized so the last-clicked design always wins, and error toasts no longer appear when a pending switch is about to correct itself. **Where:** Site editor → design variation picker → switching between variations **How to test:** - Open a site with multiple design variations - Click rapidly between variations several times - Confirm the final variation shown matches the last one you clicked - Confirm no incorrect error toasts appear **Watch for:** Selected variation reverting to an earlier choice after rapid clicks; false error messages during variation switching

Fixed

Reference site thumbnails and failed analyses now show correctly in the wizard

Reference site entries shared in the wizard before clicking Generate now save their screenshot thumbnails correctly and remain visible in the Brief tab — previously the thumbnail was lost on reload. Sites that couldn't be fully analyzed now show a "couldn't fully analyze" card in the Brief tab so they can be removed or retried, instead of silently disappearing from the list. **Where:** Blueprint wizard → Brief tab → Reference Sites section **How to test:** - In the wizard, paste a reference site URL before clicking Generate, then chat for a few messages - Reload the page and confirm the reference site still appears in the Brief tab with its thumbnail - Paste a URL that can't be crawled — confirm it appears in the list with a "couldn't fully analyze" indicator - Confirm failed reference sites can be removed from the list **Watch for:** Reference site thumbnails showing as broken images after reload; failed reference URLs vanishing from the list silently; Brief tab showing an empty reference sites section when entries were added

Fixed

Returning to a site being generated on mobile now shows the progress screen immediately

If you refreshed the page or returned to a site mid-generation on mobile, you'd briefly see a blank chat screen before the progress indicator appeared. The building progress view now shows instantly on resume so you're never left looking at the wrong screen. **Where:** Client portal → Create new site → generation in progress (mobile, on page refresh or return) **How to test:** - Start generating a site on a phone - Refresh the page mid-generation - Confirm the "building your site" progress screen appears immediately without a chat screen flash **Watch for:** Brief flash of the chat/blueprint screen before switching to the building progress view on mobile

Fixed

Screenshot errors now show the actual problem instead of 'site not found'

When a screenshot request failed due to an authentication issue or a temporary server error, the dashboard was showing a misleading "site not found" toast regardless of the real cause. The screenshot route now uses the same access-checking path as all other site routes, so actual errors surface correctly and are also logged for investigation. **Where:** Site editor → screenshot capture; dashboard screenshot recapture **How to test:** - Trigger a screenshot update on a site you have access to and confirm it succeeds - If a screenshot fails, confirm the error message reflects the actual problem rather than "site not found" **Watch for:** "Site not found" toast appearing when the site clearly exists; screenshot failures with no useful error message

Fixed

Security: contact button blocks unsafe URL injection on published sites

The contact button component now validates URLs for social and custom-link channels, preventing `javascript:` scheme URLs from being injected into published site pages. A rate-limit bug that caused legitimate click tracking to fail for some proxy setups was also fixed. **Where:** Any published site using contact buttons or QR code tracking **How to test:** - Publish a site with a contact button using a custom URL channel - Confirm legitimate HTTPS URLs work normally - Verify click tracking records events correctly **Watch for:** Legitimate custom URLs being blocked; click tracking still failing for proxy clients

New

Site creation now shows your planned pages for one-click approval

When you've already described your site pages during the blueprint chat, the creation flow now shows those exact pages in a confirmation screen instead of making you re-select from a generic template — your stated page names, descriptions, and guidance are pre-filled and ready to approve in one click. **Where:** Client portal → Create new site → Pages step (after blueprint chat) **How to test:** - Complete a blueprint chat that produces a site plan with specific pages - Proceed to the finalize/pages step and confirm the planned pages appear pre-filled - Click approve and verify generation starts with those pages **Watch for:** Falling back to the generic industry-template selector when no plan exists from blueprint chat — that fallback is expected

Fixed

Site editor no longer redirects to the wrong view on load

A series of routing fixes prevent the editor from bouncing users to the blueprint planner when they should land in the design assistant or site manager. Sites with existing generated pages were incorrectly identified as planning-only during the loading state, causing a redirect to /blueprint that would either loop or leave the user stuck. All routing decisions now use the site's type field reliably, and a server-side guard replaces the fragile client-side redirect that caused the race condition. **Where:** Client portal → opening any site from the dashboard; navigating between site views **How to test:** - Open a site that has already been generated from the dashboard - Confirm it loads directly in the design assistant or site manager without flashing a redirect to the blueprint planner - Open a brand-new planning site — confirm it opens in the blueprint planner - Refresh the page on an open site — confirm it stays in the correct view **Watch for:** Generated sites redirecting to /blueprint; brief flash of the wrong view before settling; infinite redirect loops; sites opening in the wrong tab after generation completes

Fixed

Site generation no longer crashes when style hints have unexpected format

When a site's blueprint contained style hints stored in an unexpected format (object or string instead of an array), site generation was crashing mid-prompt with a "map is not a function" error. The generation pipeline now handles these gracefully, ensuring hints are always processed safely regardless of how they were stored. **Where:** Site generation — affects all sites using blueprint hints for style directives **How to test:** - Generate a new site and confirm it completes without errors - Sites that previously failed to generate due to this error should now complete successfully **Watch for:** Site generation failing silently or showing an error mid-process when style directives or design hints are present in the blueprint

Fixed

Site routing now self-heals when navigation state is stale or missing

Several routing bugs caused users to land on the wrong view (e.g. the blueprint chat page instead of the editor) or get stuck in redirect loops. Routing now reads the current site state directly and recovers from stale cached values automatically. **Where:** Client portal → navigating to any site **How to test:** - Open a site that is in the "design" or "extracted" phase - Confirm it opens in the editor, not the blueprint chat - Reload several times; confirm consistent navigation without unexpected redirects **Watch for:** Infinite redirect loops; always landing on the blueprint chat page for finished sites

Fixed

Site thumbnails no longer show dark overlays from decorative design elements

Dashboard preview thumbnails were incorrectly boosting the opacity of decorative low-opacity overlays (such as graph-paper grids in neo-brutalist designs) from near-invisible to full opacity, making them dominate the screenshot. Thumbnails now leave intentional design layers alone while still revealing hidden animation elements. **Where:** Dashboard → site thumbnails; Admin → gallery previews **How to test:** - Open the dashboard and inspect thumbnails for sites with textured or overlaid hero sections - Confirm no dark grid or overlay is covering the design - Verify that sites with entrance animations still show content (not blank frames) **Watch for:** Thumbnails going blank for sites that use entrance animations; thumbnails still showing the overlay on affected designs

Fixed

Sites created via quick-start or chat now appear in the Designs tab

Sites created through blueprint chat, quick-start, and several other flows were silently missing the design type flag, causing them to show up in the Builds tab — or not appear at all — instead of the Designs tab where users expect them. All creation paths now correctly tag the site as a design, and existing affected sites have been backfilled. **Where:** Dashboard → Designs tab **How to test:** - Create a new site using quick-start or blueprint chat - Open the dashboard and confirm the site appears in the Designs tab, not the Builds tab - Check that existing sites that were missing from Designs now appear correctly **Watch for:** Newly created sites appearing in the Builds tab or disappearing from the Designs tab

Fixed

Sites with a ready design are no longer marked as failed during slow generation

If site generation was still working on a second design when the 10-minute timeout hit, the entire site was incorrectly marked as failed — even when a complete first design was already saved. Sites are no longer marked failed if at least one full design is available, and the error message now correctly reflects what's ready. **Where:** Client portal → Create new site → generation in progress or error state **How to test:** - Generate a site and wait for at least the first design to complete - If generation times out (or simulate with a slow connection), confirm the site shows the available design rather than a failure state - Confirm "Try Again" is offered only when no designs are ready at all **Watch for:** Sites showing a failed/error state even though one or more design variations exist and are fully generated

Improved

The site assistant can now check and explain your Google Analytics data

The in-editor AI assistant now has access to your site's analytics — you can ask "Is analytics enabled?", "How many visitors did I get this week?", or "Enable analytics for me" and the assistant will respond with real data or take the action, instead of giving a generic non-answer. **Where:** Client portal → Site editor → Assistant chat (bottom-right) **How to test:** - Open the assistant chat on a site that has Google Analytics enabled - Ask "Is analytics enabled?" and confirm the assistant gives a specific yes/no answer - Ask "Show me this week's visitor count" and confirm real stats are returned **Watch for:** Assistant giving vague responses about analytics instead of real data; errors when asking for stats on a site with no analytics configured

Fixed

Wizard chat no longer loses messages or reference sites on refresh

Four regressions in the wizard chat are fixed: conversations that started before a site row existed are now properly linked so a page refresh no longer wipes the chat; the intake recap correctly shows your previous answers so you can edit them; suggested reply chips with unfilled placeholders like "[fabric type]" now show an edit prompt instead of sending the placeholder text as-is; and reference sites you add before clicking Generate are preserved in the brief instead of expiring. **Where:** Client portal → New site wizard → chat conversation **How to test:** - Start a new wizard session, send a few messages, then refresh the page — confirm the chat history is restored - Submit an intake preference form, then submit it again — confirm the recap shows your prior answers and lets you edit them - If the AI suggests a reply chip containing placeholder text in brackets, confirm you are prompted to fill it in rather than it sending automatically - Add a reference site URL before generating — confirm the thumbnail appears in the Brief tab after generation **Watch for:** Chat history disappearing on refresh; intake recap showing blank answers; placeholder chips sending unedited text; reference site thumbnails missing from the brief

New

Wizard now asks for your business name first and surfaces voice input

The wizard chat now opens with a focused first question — "What's your business or site name?" — instead of a generic prompt, making it faster to get started. A prominent voice input shortcut also appears at the start of the conversation for users who find it quicker to describe their site out loud. **Where:** Client portal → New site wizard → initial chat screen **How to test:** - Start a new site from the dashboard - Confirm the first chat message asks for your business name - Confirm a voice input option is visible before you send your first message - Type or say your business name and confirm the conversation continues correctly **Watch for:** First message not appearing; voice option not showing; business name not being captured from the reply

Tuesday, May 12, 2026

Fixed

Generated sites no longer show stock images matched only by location

Stock images were sometimes selected because they shared a location name with the business address (e.g. a "traffic in Bangalore" photo for a stationery brand in Bangalore) rather than being topically relevant. Image selection now ignores location when comparing relevance, so photos match the actual subject matter. **Where:** Site generation → automatically selected stock images throughout any generated site **How to test:** - Generate a site for a business with a specific city in its description - Check that hero and section images are relevant to the business type, not random city scenes - Confirm no generic street or cityscape photos appear when the business is unrelated to urban/location imagery **Watch for:** Irrelevant location-based photos (traffic, construction, street scenes) appearing in a non-related business site; image quality regression for businesses in less common cities

Fixed

Grid sections in generated sites now have consistent card heights

Cards in grid sections (services, features, testimonials) could have different heights depending on image aspect ratios and text length, leaving visible gaps between rows. The AI generation prompt now enforces equal-height cards in grid layouts so rows look uniform and intentional. **Where:** Any newly generated site — affects grid-based sections like services, features, and gallery **How to test:** - Generate a new site and inspect grid sections in the preview - Confirm all cards in a grid row are the same height, even when content lengths vary - Check that no visual gaps or ragged bottom edges appear between rows **Watch for:** Cards in the same grid row having different heights; ragged row edges caused by short cards next to tall ones

Fixed

Inline text edits in the site preview now update immediately

Clicking directly on text in the site preview to edit it inline was leaving the preview stuck on "Loading preview…" because the edit was computed but never saved to local state. The preview now recompiles instantly after any inline edit. **Where:** Site editor → site preview iframe → inline text editing **How to test:** - Open a site in the editor - Click directly on a text element in the preview to trigger inline editing - Make a change and confirm the preview updates immediately without showing a loading spinner **Watch for:** Preview staying on "Loading preview…" after an inline edit; edits not visible until a page refresh

Fixed

Multi-page sites no longer incorrectly skip Plan Review

When creating a site with multiple pages selected in the Choose Pages step, the Plan Review stage was being skipped with a confusing "single-page site" message, blocking multi-page site creation from proceeding correctly. **Where:** New site creation flow → Choose Pages step → Plan Review stage **How to test:** - Start creating a new site and select multiple pages in the Choose Pages modal - Proceed through the flow and confirm Plan Review runs (not skipped) - Confirm the final site is built with all selected pages **Watch for:** Plan Review showing "single-page site — Plan Review is skipped" after multiple pages were chosen; multi-page sites being built as single-page sites

Improved

Quiz sections now have better contrast and clearer visual design

Quiz components are now generated and automatically corrected to meet minimum visual standards: readable card backgrounds, clear question typography, visible selected-state highlighting on answer buttons, and properly styled progress bars and results screens. **Where:** Site editor → any page with a quiz section; site generation with quiz components **How to test:** - Generate or open a site that includes a quiz section - Confirm quiz cards have a white or dark background (not transparent), making text readable against colored section backgrounds - Confirm question text is larger and bold, answer buttons show a visible ring when selected, and the results screen has a prominent title **Watch for:** Quiz cards with no visible background; low-contrast text on quiz answer buttons; progress bar missing or unstyled

Fixed

Refinement edits now correctly target the variation you're viewing

When editing one design variation (e.g. D1) while another was set as the active design, refinements were being applied to the wrong variation — and the preview would collapse to show only the single edited section instead of the full page. **Where:** Site editor → preview phase → any AI refinement on D1/D2/D3 variations **How to test:** - Open a site that has multiple design variations (D1, D2, D3) - Switch to a variation that is not the active design - Send an AI refinement request (e.g. "change the hero background color") - Confirm the change applies to the variation you're viewing, and the full page remains visible in the preview **Watch for:** Refinement applying changes to a different variation than the one being viewed; preview collapsing to show only a single section after a refine

Fixed

Screenshot recapture no longer fails with 'Site not found' error

Clicking "Recapture screenshot" on the dashboard was failing immediately with a "Site data not found" toast, caused by database columns that were removed but still referenced in the query. **Where:** Dashboard → site card → screenshot recapture action **How to test:** - Open the dashboard and find any site card - Trigger a screenshot recapture (via the site card menu or refresh option) - Confirm the screenshot updates successfully without any error toast **Watch for:** "Site data not found" toast appearing when recapturing; the recapture spinner never resolving

Fixed

Site generation now catches more code errors before saving

The automatic code-repair step during site generation was only running when the generated code used a specific icon library, leaving other types of errors — like undefined variable crashes in section components — undetected and saved to the live site. The repair step now always runs, catching a broader range of issues before they reach the preview. **Where:** Site generation — affects all newly generated sites **How to test:** - Generate a new site and confirm the preview loads without any blank sections or JavaScript errors in the browser console - Previously broken patterns (sections showing nothing, console errors like "items is not defined") should no longer appear **Watch for:** Blank sections in the generated preview; browser console errors like "X is not defined" in newly generated sites

Fixed

Sites in the planning stage now appear in the Designs tab

Sites that were in the planning or design-selection phase were incorrectly appearing in the Builds tab, making the Designs tab look empty and the Builds tab cluttered with unbuilt sites. **Where:** Dashboard → Builds / Designs tabs **How to test:** - Open the dashboard and check the Designs tab - Confirm sites that are still in planning or awaiting design selection appear here, not in Builds - Confirm the Builds tab only shows sites that have been fully generated **Watch for:** Planning-stage sites missing from the Designs tab; Builds tab showing sites that haven't been built yet

Monday, May 11, 2026

Fixed

Dashboard Builds tab no longer shows a confusing 'Orphan builds' label

Existing users who generated sites before the Designs and Builds split was introduced would see a jarring "Orphan builds" section header in the Builds tab after the update. Those sites were not orphaned — they were working builds with no parent design. The Builds tab now shows them inline without the section header unless there are also newer fork-based builds in the same account, in which case they appear under the friendlier "Other builds" label. **Where:** Dashboard → Builds tab **How to test:** - Sign in with an account that has sites created before the fork-on-build update (no parent design) - Navigate to the dashboard and check the Builds tab — no "Orphan builds" heading should appear - If the account also has fork-based builds, the legacy sites should appear under "Other builds" at the bottom **Watch for:** "Orphan builds" heading still appearing for accounts that only have legacy sites; legacy sites disappearing from the Builds tab entirely

New

Dashboard now separates Designs and Builds into their own tabs

The dashboard homepage now shows two tabs — Builds (default) and Designs — so you can quickly find the live site you're working on without scrolling past the source designs that generated it. Each Design card shows whether it's Pending (no builds created yet) or Used (already forked into one or more builds), and the site editor gains a lineage popover that lets you navigate between a build and its parent design or create another sibling build. **Where:** Dashboard homepage → Builds / Designs tabs; Site editor → breadcrumb lineage popover (build sites only) **How to test:** - Go to the dashboard — confirm the page loads with a Builds tab selected by default, showing your published/in-progress sites - Click the Designs tab — confirm source designs appear with a Pending or Used status pill - On the Designs tab, use the Pending / Used / All filter pills to switch views - Open a build site in the editor and look for the lineage indicator in the breadcrumb area — it should show the parent design and any sibling builds **Watch for:** Dashboard showing a blank Builds tab for existing users who only have legacy sites; lineage popover appearing on design sites (it should only show on build sites)

Fixed

Generation no longer shows a false failure when the second design succeeds

When generating two design variations in parallel, a recoverable issue in the first design could briefly surface as "Generation Failed" before the second design finished — even when the second would succeed. The status now waits for both designs before reporting failure, so users only see an error if neither design could be recovered. **Where:** New site generation flow — the status shown while generation runs **How to test:** - Generate a new site and observe the status during generation — it should not flash "Generation Failed" before completing normally - If both designs genuinely fail, the failed message should still appear **Watch for:** "Generation Failed" appearing mid-generation then disappearing; completed sites still showing a failed status badge

Fixed

Site generation now recovers from broken component extractions automatically

Sites that completed AI generation but ended up with missing or broken component files would previously show "Generation Failed" on next load and become uneditable. Generation now runs an automatic repair pass over extracted files before saving — fixing common import errors and component wiring issues on the spot — so the site opens correctly even when the initial extraction had issues. **Where:** Client portal → new site generation flow → site editor after generation completes **How to test:** - Generate a new site and wait for completion - Open the site in the editor — it should open without a "Generation Failed" banner - Confirm you can scroll through pages and trigger refinements normally **Watch for:** "Generation Failed" error appearing after a generation that shows as completed; site editor opening with no pages or a blank canvas after generation

Fixed

Site generation recovers from broken code instead of failing

Sites that encountered import or bundling errors during generation now automatically repair the affected files and complete successfully, instead of showing a "Generation Failed" message and leaving the site in an uneditable state. **Where:** New site generation flow — the site editor loads after generation completes **How to test:** - Generate a new site — if the AI produces a component with an incorrect import path, the generation should still succeed and the site should open normally - Confirm sites that previously failed to open after generation now render correctly **Watch for:** "Generation Failed" message appearing for newly generated sites; generated sites that open but show a blank or broken preview

Fixed

Suspended accounts now see a clear explanation on login

Users attempting to sign in with a suspended account previously saw a generic "Sign in failed" message with no indication of why. The login page now shows a clear message explaining that the account has been suspended, so users understand they need to contact support rather than retrying with the same credentials. **Where:** Login page → sign in with a suspended account **How to test:** - Attempt to sign in with an account that has been banned/suspended in the admin panel - Confirm the error message mentions account suspension rather than showing a generic sign-in failure **Watch for:** Generic "Sign in failed" still appearing for suspended accounts; suspended accounts being allowed to log in without a clear error

Fixed

Suspended accounts see a clear explanation when signing in

Users whose accounts have been suspended now see a clear "Your account has been suspended" message on the login page instead of a generic "Sign in failed" error, so they know to contact support rather than retrying their credentials. **Where:** Sign-in page — the error message shown after a failed login attempt **How to test:** - Attempt to sign in with a banned/suspended account - Confirm the error message specifically mentions account suspension rather than a generic failure **Watch for:** Suspended users seeing "Sign in failed" or "Unknown error" instead of the suspension message; active users accidentally seeing the suspension message

New

Try multiple designs without losing your work

You can now keep an original design around and fork it into multiple working builds — switching to a different variation no longer overwrites the site you've been editing. **Where:** Dashboard (new Designs and Builds tabs), and the new Lineage badge in the site editor's top bar. **How to test:** - Generate a new site. After variations finish, click *Build full site* on the one you like — you'll land in the editor for a brand-new build. - Refine and edit the build. Then click the purple **Lineage** badge next to the site name in the editor header. - In the popover, click *Build with D2* (or D3, D4) to fork a sibling build from another variation. You're redirected to the new build's editor; the first build is untouched. - Go to the dashboard. The Builds tab shows your working sites. The Designs tab shows the original design — *Pending* if no variation has been forked yet, *Used* if at least one has. **Watch for:** - "Build full site" button not appearing on a fresh generation (should fork, not finalize in place). - Lineage popover not showing for build sites with a parent design. - Dashboard Designs tab missing the Pending / Used / All filter pill, or defaulting to the wrong filter. - Existing pre-fork sites — they keep working as before and show in the Builds tab without the lineage badge (no parent design to point at).

Sunday, May 10, 2026

Fixed

Announcement bars dismiss cleanly without leaving a gap above the header

Generated sites with top announcement or promo banners had a layout bug: dismissing the banner left a blank space above the header on mobile and desktop. Banners now use the platform's built-in dismiss handling, which restores the header position immediately when the banner is closed. **Where:** Any generated site with an announcement, promo, or notification bar at the top **How to test:** - Generate a site for a business type likely to receive a promotional banner - Preview the site and dismiss the announcement bar - Verify the header moves up to fill the space with no gap remaining on both desktop and mobile **Watch for:** Persistent blank strip above the header after dismissing a banner; header staying pushed down after close

Fixed

Fixed crash on site editor when no variations exist yet

New users who typed text on the homepage and landed on the site editor before any AI variations were generated saw a generic "Failed to load preview" error. The editor now handles the planning phase gracefully and waits for generation to complete instead of crashing. **Where:** Client portal → Site editor (immediately after a new site is created, before generation finishes) **How to test:** - Create a new site and navigate to the site editor before generation completes - Confirm the editor shows a loading/waiting state rather than an error - Once generation finishes, confirm the preview loads normally **Watch for:** "Failed to load preview" errors on new sites in the planning phase; editor crashing before variations appear

Fixed

Preview links for alternate design variations show correct content

Preview links pointing to a non-active design variation were showing bare placeholder text instead of that variation's refined content. This affected share links that request a specific design via a cached snapshot. The content overlay is now applied correctly for all variations. **Where:** Shared site preview link (`/preview/<token>`) when requesting a non-active design variation **How to test:** - Open a site with multiple design variations, where at least one non-active variation has been refined - Generate a share link for a non-active variation - Open the link and confirm it shows the variation's actual content, not placeholder text **Watch for:** Non-active variation previews showing fallback strings; design snapshot previews missing refined copy

Fixed

Shared preview links now show the correct refined content

Share preview links were showing placeholder text instead of the actual content from the site editor — visitors saw fallback strings like "Bathroom Hardware" while the editor showed the real brand copy. Preview links now render the same content as the editor. **Where:** Shared site preview link (`/preview/<token>`) **How to test:** - Open a site that has been refined (edited hero headline, brand name, etc.) - Copy the share preview link and open it in a new tab or incognito window - Confirm the preview shows the same content visible in the site editor **Watch for:** Preview link content mismatching the editor; fallback/placeholder text appearing in place of edited copy

Fixed

Site preview links and form pages now load correctly

Public preview links, live site pages, and form management were silently broken after a database column rename — visitors saw blank pages or errors instead of the site. All affected routes now read from the correct data source. **Where:** Shared preview links (`/preview/<token>`), published site URLs, Client portal → Pages → Forms **How to test:** - Share a site preview link and confirm the site loads correctly for a recipient - Open a published site's public URL and verify all content renders - In the client editor, open the Forms tab and verify the forms list loads **Watch for:** Blank or error pages on preview/published URLs; missing forms in the Forms tab

Fixed

Undo now works for text and content edits made via AI

Pressing Undo after an AI-assisted text or content change (such as editing a headline or updating copy) was skipping over those changes and restoring to an older state. Undo now correctly reverts the most recent content edit and updates the preview immediately. **Where:** Client portal → Site editor → Make a content/text AI refinement → press Undo (↩) **How to test:** - Open the site editor and make a content-only AI change (e.g., ask the AI to update the hero headline) - Confirm the change appears in the preview - Press Undo (↩ button in activity panel or Ctrl+Z) - Confirm the preview reverts to the text before the AI change **Watch for:** Undo skipping content edits and restoring to an older version; Undo button not appearing after content-only AI changes

Saturday, May 9, 2026

Fixed

AI plan steps no longer show as failed when they succeed

When running a multi-step AI plan in the site editor, certain refinement steps (particularly UI layout changes) were marked as "failed" even though the code was correctly applied. These steps now correctly report success and apply their changes to subsequent steps in the plan. **Where:** Site editor → AI chat → multi-step plan execution **How to test:** - Ask the AI to make several changes at once (e.g., "move the hero image and update the button text") - Confirm all plan steps show as succeeded with a green status - Confirm each change is visible in the preview **Watch for:** Plan steps showing red "failed" status despite the code change appearing in the preview; subsequent steps being cancelled unnecessarily

Friday, May 8, 2026

Fixed

Adding a page with a theme no longer crashes the editor

Adding a new page when a site had a theme selected was causing a JavaScript syntax error that broke the editor. The theme backfill logic has been corrected so new pages inherit the site's active theme without errors. **Where:** Site editor → Pages → Add page **How to test:** - Open a site that uses a custom theme or has theme styling applied - Add a new page via the Pages tab - Confirm the new page is created successfully and the editor remains functional **Watch for:** A blank editor or JavaScript error after clicking "Add page" on a themed site.

Improved

AI refinements target the right file and see full context

Refinement requests are now significantly more accurate: the AI can tell which files are actually used in your site versus leftover unused code from generation, so it targets the right component instead of an orphaned file. For complex structural changes (like fixing duplicate modals), it also sees the full file context so it can resolve root causes rather than applying superficial fixes. **Where:** Client portal → Site editor → Ask the assistant to refine your site **How to test:** - Open a site and ask the assistant to fix a layout or component issue - Confirm the change applies to the visible page, not an unused component - For modal or overlay issues, confirm the fix removes the duplicate rather than suppressing it **Watch for:** Refinements editing the wrong file; duplicate modal or overlay bugs persisting after a fix attempt

New

AI site planner now produces richer section content and handles multi-page architecture

The site planning step now generates a full narrative arc with per-section content prompts, key angles, tone guidance, CTA direction, and multi-page architecture awareness. Local businesses (restaurants, wedding planners, etc.) now reliably receive location capture questions and correct currency settings. Integration requirements like WhatsApp or Calendly now survive all AI retry paths and are correctly surfaced in the generated plan. **Where:** Blueprint Builder → intake form → Plan step **How to test:** 1. Start a new site for a local business (e.g., "wedding planner in Austin, TX"). 2. Complete the intake form — confirm a location question appears. 3. On the Plan step, confirm sections have descriptive content prompts (not just names) and a narrative overview appears. 4. Request WhatsApp integration via the intake — confirm it appears in the plan's features list. **Watch for:** Plan section items should never be empty. If the plan tab shows sections with no items, that's a regression.

Fixed

Clearer error when customizing a design that hasn't finished generating

Attempting to clone or modify a variation that was still in the process of generating produced a generic "Failed to generate" error with no indication of what went wrong. The action is now blocked with a clear, actionable message so users know to wait for generation to complete before customizing. **Where:** Client portal → Site creation → Design gallery → Customize or Clone a variation **How to test:** - Trigger site generation and immediately try to clone a variation that is still loading - Confirm you see a descriptive error explaining the design isn't ready yet, rather than a generic failure toast **Watch for:** Generic 500-style error toasts when trying to clone or modify an in-progress design

Improved

Clone a Design dialog upgraded with picker, guided wizard, and searchable import

The Clone a Design dialog now offers a richer experience: when multiple designs exist, a thumbnail picker lets you choose which one to clone before proceeding. The "Modify and Clone" flow is now a 5-tab wizard covering Style, Layout, Content, Images, and Freeform — replacing the single text box. The "Import from Site" tab now has a searchable site dropdown and a thumbnail grid for picking the source variation. **Where:** Site editor → Variations panel → Clone a Design button **How to test:** 1. Open a site with multiple design variations in the editor. 2. Click "Clone a Design" — confirm a design picker thumbnail grid appears. 3. Select "Modify and Clone" — confirm the 5-tab wizard (Style / Layout / Content / Images / Freeform) appears. 4. Select "Import from Site" — confirm the site list is searchable and variations show thumbnails. **Watch for:** Single-design sites should skip the picker and clone immediately without an extra step.

Fixed

Cloning a design with more images than the template now preserves all images

When cloning a design variation that had more images than the base template (e.g., 4 portfolio items vs 2 in the blueprint), the extra images were incorrectly stripped during the clone. The fix preserves richer content from the source when it intentionally exceeds the blueprint count. **Where:** Site editor → Variations panel → Clone a Design → clone from existing variation **How to test:** 1. Find or create a site variation with more images in a section than the default blueprint (e.g., a gallery with 6 items vs the template's 3). 2. Clone that variation. 3. Confirm the cloned variation retains all 6 images rather than being truncated to 3. **Watch for:** Cloned variations with fewer images than the source indicate the stripping is happening again.

Fixed

Color changes via the editor now persist correctly after a page refresh

When the AI changed both the homepage and shared style blocks in a single refinement request (e.g., a global color change), only the shared-block changes were saved — the homepage edits disappeared on refresh. Both sets of changes now save together in the same write. **Where:** Site editor → any color-related refinement request (e.g., "change the primary color to blue") **How to test:** 1. Open a site in the editor with shared CSS variables. 2. Ask the AI to change the primary color (e.g., "change the accent color to green"). 3. Confirm the color updates visually in the preview. 4. Refresh the page — confirm the color change persists on both the homepage and section blocks. **Watch for:** Color changes that appear in preview but revert after refresh indicate the fix didn't apply.