Webby - AI-Powered No-Code Website Builder SaaS Platform v1.0.7
Webby - AI-Powered No-Code Website Builder SaaS Platform Changelog
Changelog v1.0.7
Webby (Laravel)
- Upgraded the core framework stack to Laravel 13, PHP 8.3, React 19, Inertia v3, Vite 8, Stripe PHP 20, and Tinker 3; minimum PHP requirement raised from 8.2 to 8.3 across the installer and in-app docs
- Added pinned CACHE_PREFIX, REDIS_PREFIX, and SESSION_COOKIE values in .env.example with a regression guard, so future framework default changes cannot silently invalidate caches or log users out after deploy
- Added a default stock image library (150 gallery + 150 background JPEGs, ~49 MB) shipped inside storage/app/public/image-library/ so fresh installs have working images immediately instead of 404-ing on first load
- Added an admin-managed Stock Image Library page with gallery and background categories, exposed via API for the AI builder agent to pull images from, plus a multilingual admin UI for uploading and curating the library
- Added project preview Snapshots (SnapshotService, ProjectSnapshot model, and ProjectSnapshotController) so users can create, restore, and delete snapshots of their preview builds from the project settings
- Added a SyntheticEventBubble chat component and revamped the RevisionHistoryPanel and StylePanel, giving users
- Added new SSL retry and custom domain verification translation keys, plus filled in untranslated placeholders for custom domain, SSL provisioning, and server IP settings across Arabic, German, French, Japanese, Russian, and Chinese
- Added a dedicated SyncProjectBuildStatus listener and normalized webhook build_status "success" → "completed" so ProjectStatusUpdatedEvent and build-complete notifications actually fire on the user's sidebar
- Added ShouldBroadcastNow to user-channel events (ProjectStatusUpdated, UserCreditsUpdated, UserNotification) so credit updates, build-status changes, and in-app notifications reach users immediately instead of sitting in the queue
- Added automatic credit-sidebar refresh when a build completes in the Chat page, eliminating stale credit balances after a build finishes
- Added automatic clearing of subdomain and custom_domain fields when a project is soft-deleted, plus a data migration to catch existing orphans, so trashed projects no longer block other users from claiming those names
- Added proper 409 status codes on subdomain/custom-domain race conflicts (instead of generic 500 errors), and skip-when-disabled guards in PublishModal and ProjectSettingsPanel that prevent unnecessary 403 errors when subdomain publishing is turned off
- Added inspector support for inspector-update-image-src, absolute /path rewriting to /preview/{uuid}/path, and a canvas-resize guard so the click-to-edit preview handles images and avoids crashes after the confetti animation takes control of the canvas
- Added the useInspectorSelection hook that auto-clears element selection when the user leaves inspect mode, migrated to render-phase state sync to avoid cascading renders
- Added a deterministic single-button Theme Apply flow that writes the preset, rewrites :root / .dark CSS variables in the generated project's src/custom.css, triggers a synchronous rebuild for instant iframe preview, and returns an AI fixup prompt the agent uses to refactor hardcoded color classes — replacing the old two-button "CSS only" vs "Apply + refactor" split across all 11 locales
- Added the BroadcastConfigServiceProvider-aligned Reverb port 8892 in the ReverbSeeder and package.json so local development matches the production autosetup configuration
- Added hardening to SystemSetting::castValue and cache writes so a corrupted encrypted_json value no longer crashes the app, and cache driver failures no longer block settings changes
- Added BinaryFileResponse support to ProjectFile streaming, allowing large project files to stream properly instead of loading fully into memory
- Added a TEXT-width avatar column migration so long Google OAuth profile image URLs no longer truncate and break avatars on the profile page
- Fixed a blank white page on first load caused by a circular import between the react-vendor and radix-ui Vite chunks; dropped the radix-ui manual chunk and tightened the react-vendor match pattern to exclude react-remove-scroll and similar helpers
- Fixed "AI Edit" using the stale original text when a user had typed a new value via Edit Text but hadn't saved — the AI agent was searching for the old string and asking unnecessary clarifying questions; now prefers the pending edit and properly escapes embedded quotes
- Fixed BuilderService by removing the completeSession counter dance and treating undo/redo workspace 400 responses as soft failures instead of hard errors
- Fixed a French translation placeholder mismatch (:remaining key in files.json) that broke the storage usage label
- Updated in-app documentation pages (Configuration, Privacy, Plugins, Firebase, Admin Guide, Builder Setup, File Storage, User Guide, Templates) to reflect 8 accent color themes, expanded GDPR settings with policy versions and data retention, simplified bank transfer config, updated Firestore security rules, revised cookie consent categories, and added a pre-upgrade stale cache clearing step so shared-hosting users can recover from blank pages without SSH
- Updated the bundled default project template with the latest builder fixes so new projects start on current code
Webby Builder (Go)
- Bumped version from v1.0.6 to v1.0.7; anthropic SDK bumped to v1.26, gin to v1.12, along with other Go package bumps
- Added a QualityCheckExecutor that runs static accessibility, SEO, code-quality, and security checks after agent completion, and surfaces a quality_check field in the completion webhook so Laravel can display build quality feedback to users
- Added deterministic programmatic generation of AEO assets (llms.txt, robots.txt, JSON-LD) instead of relying on the AI to hand-write them via tool calls, plus an aeo_generated flag in the completion payload so generated sites are consistently optimized for AI-answer engines
- Added expanded quality checks covering missing page imagery, hero button-pair consistency, button contrast collisions, dark-mode CSS hygiene, and malformed HSL CSS variable values — catching design regressions before the user ever sees them
- Added disk-persisted revision snapshots under .revisions/ with a paginated list endpoint and an RWMutex guarding concurrent reads, so undo/redo history survives builder restarts and parallel reads don't serialize
- Added a read-before-edit guard that blocks editFile on files the agent hasn't read in the current session, plus rejection of no-op edits (search == replace) in both editFile and batchEditFiles — preventing the agent from blindly overwriting code or burning credits on no-op rewrites
- Added touched-file tracking so the post-loop integration check skips untouched template defaults, and skipped the post-loop verifyIntegration entirely when the AI already validated successfully — cutting redundant check time on clean builds
- Added auto-repair for hallucinated stock image filenames in createFile, editFile, and batchEditFiles, with a
- Added stock image registry integration wired into the agent runner and executor so curated stock images surface during generation, plus a new image model and listImages / getImageUsage tools for the agent to discover what's available
- Added seven new AI tools (total jumped from 23 to 30): writeDesignIntelligence, readDesignIntelligence, updateSiteMemory, readSiteMemory, generateAEO, listImages, and getImageUsage — giving the agent persistent memory of design decisions and site context across turns
- Added an apply-theme handler that writes to the generated project's src/custom.css and syncs the palette into design-intelligence.json under a per-workspace mutex, so theme changes reach both the rendered CSS and the agent's design context without racing writeDesignIntelligence
- Added external, admin-editable system prompt templates (prompts/system.md, prompts/compact.md) with token budget support and per-request CustomPrompts override, replacing the previously hardcoded Go strings so prompts can be tuned without a rebuild
- Added revision management API endpoints (undo/redo), class-editing PATCH endpoint, workspace recovery endpoint, and a default-prompts endpoint so the Laravel side can expose these features to end users
- Added operation-specific prompt guidelines (restyle, add page, add section, SEO, contact form) so the agent picks the right approach based on what the user is asking for
- Added a pusher_active flag in the webhook payload so the Laravel receiver can skip re-broadcasting events that the builder's own Pusher client already delivered, eliminating duplicate frontend messages
- Added a Flush() sentinel method on the streamer interface to replace sleep-based timing, ensuring webhook events (e.g. message) are fully dispatched before the complete event arrives
- Added a completeSent session flag preventing duplicate SendComplete calls — one completion webhook per session, period
- Added backpressure to the webhook event queue: capacity raised from 100 to 500, with a 5-second timeout and context cancellation support so a slow Laravel receiver can't silently drop events
- Added automatic credit-balance refresh from Laravel when a user continues a chat, so the builder makes decisions based on current credits rather than stale session state
- Added a JSON deep-merge utility shared by design intelligence and site memory so nested config updates merge cleanly instead of clobbering
- Added standard-tier circuit breaker bump (maxToolRecoveries 1 → 2) and injected the current file content into editFile recovery guidance, giving the agent a better chance to self-correct edit failures
- Added skip logic for circuit-breaker accounting on benign duplicate-path edits within a single batch — legitimate batch edits to the same file no longer trip the breaker
- Added deferred streaming of long AI content until end-of-loop so the streamed text doesn't contradict the auto-checks that run afterward
- Fixed utility and business sites (restaurants, studios, SaaS dashboards, etc.) not getting a navigation bar: Home now correctly uses layout: 'default', with layout: 'bare' reserved only for single-page landings, auth, and checkout flows
- Fixed nil pointer panics in LoggerMiddleware and other callers when Logger was uninitialized — WithFields() no longer returns nil
- Fixed nil pointer panics in the executor when template support wasn't configured, via nil guards on template operations
- Fixed theme CSS write failures being silently swallowed — failures are now logged so misconfigured workspaces are debuggable
- Fixed context cancellation handling to recognize both context.Canceled and context.DeadlineExceeded via errors.Is(), and hardened error handling in ListFiles, SearchFiles, and the template API error path
- Updated the system prompt to make user intent the highest authority over default rules, replaced hardcoded gray-900 / bg-white examples with semantic text-foreground / bg-primary-foreground tokens, and expanded button-contrast, HSL formatting, and stock-imagery guidance so the agent produces theme-aware, accessible output by default