Back to all projectsAI SDUI Studio

AI SDUI Studio

Austin Spaeth
AI SDUI Studio: Server Driven UI That Lets PMs Edit Live Pages screenshot

AI SDUI Studio: Server Driven UI That Lets PMs Edit Live Pages

Pivoted from a six figure CMS purchase to an AI driven, server driven UI platform, saving $145K a year while letting PMs ship page changes without engineering.

2026 · Principal Engineer · Conceived & designed the platform; build led by the team

Realtor.comCMS AlternativeServer Driven UIAIClaudeCost Savings
$145K/yr
CMS licensing avoided
At minimal AI token cost
Days → Minutes
To publish a page change
No release cycle, PMs self serve
100%
Owned, zero vendor lock in
Our schema, flags & pipeline
TLDR

Leadership asked me to find a CMS. Instead I envisioned something better: an AI driven, server driven UI platform, like an internal Lovable, where a PM describes the change they want and Claude updates a structured JSON document that powers the props of the components on the page. The page updates with no engineering ticket and no deploy. It turned out beautifully and saves $145K a year in CMS licensing while giving PMs real autonomy, and two pages are live in production today.

Deep dive
01Context & StakesRead moreHide

The starting problem was simple but costly. Even a small homepage or layout change still required an engineering ticket, release timing, and coordination across teams.

This was never only about content management. It was about product autonomy: giving product the ability to test, learn, and ship routine layout and campaign work without waiting on sprint capacity.

This was bigger than just updating props or moving items around on a page. I framed it as a foundation that could eventually power a personalization system that adapts modules and layouts to each user's behavior and context.

02Problem → InsightRead moreHide

I set out at first to evaluate vendors and a path forward for a CMS, mapping each problem to the insight that shaped how I thought about a solution.

ProblemInsight
Routine content and layout changes were slow because they depended on engineering tickets and release cycles.Page composition needed to move into structured configuration so non-engineering teams could make safe changes without waiting on a code release.
Traditional CMS vendors did not fit cleanly, since our A/B testing, tracking, and workflow needs would still require custom integration work.An internal system could match our experimentation and rollout model by embedding analytics, feature flags, and structured layouts directly into config.
A generic visual editor was not enough if it created vendor lock in or forced proprietary data models and translation layers.The better long-term path was to own the schema, publish flow, and integration surface so the system could evolve with our own products and infrastructure.
Giving product teams more autonomy could easily create brand, design, or production risk.The answer was not a free form editor. It was a constrained system where the AI could only compose approved components into approved slots, with validation and review built in.

As I worked through it, I realized a vendor would be costly and still leave us with significant integration work. Given what was actually being asked for, and where the industry and AI tooling had gotten to, it started to make far more sense to build instead of buy in this case.

03The PrototypeRead moreHide

The first proof point was not a full multi surface CMS. The team started by rebuilding the homepage to run entirely off a JSON configuration, which gave us a concrete way to test whether structured page composition could replace hardcoded layouts.

From there it transformed into a full blown AI editing studio. It was far more than a chat box: a PM described the change they wanted in plain language, and the edited page rendered right next to the conversation so you could watch your changes happen in real time. Behind that live preview was an iframe previewer that loaded a real page, injected the updated config JSON over postMessage, and forced a live re-render as you authored.

You could also click directly on elements in the page to see what was editable, or to point the chat at exactly the section you wanted it to focus on. When a change was ready, the studio could automatically place it behind a feature flag or experiment, so it shipped through our normal rollout and testing model rather than going straight live.

Everything ran off a structured JSON schema, and that was the key constraint. The schema was all Claude could touch: it composed approved components and props into approved slots, with no free form code generation and nothing outside those guardrails. It was intentionally limited, not magic.

To keep that safe, a second Claude instance acted as a validator. Before any change was previewed or applied, it checked that the generated JSON was correct, schema compliant, and free of issues, giving us a second set of eyes on every edit without a human in the loop.

The point was to prove this could behave like a real CMS for product users while staying grounded in our component library, validation rules, and deployment pipeline.

04Approach & ExecutionRead moreHide

The core architectural bet was "AI as CMS" rather than "buy a CMS and adapt around it." The execution moved through a few clear stages.

  • Evaluate the market. Assess established CMS vendors like Storyblok and Contentful to understand the trade-offs around experimentation, security, plugin ecosystems, and operational complexity.
  • Build the internal foundation. JSON-driven configs, schema validation, a visual editor, PR-based publishing, sandbox preview, Slack approvals, and CDN-backed delivery.
  • Put it on a real surface. The system was soon managing portions of the Realtor.com homepage in production behind a feature flag, as a controlled rollout.
  • Learn, then scale. Use that production foothold to tighten workflows and decide whether to expand to surfaces like global navigation and listing pages.

This is an important difference from Oracle. Oracle was a page rewrite with a large public traffic ramp; the AI CMS was a capability platform that had to prove safe adoption and workflow fit before broad expansion.

05Design & Technical HighlightsRead moreHide

Every layer was chosen to give product teams agility without surrendering performance, consistency, or control.

LayerChoiceWhy it mattered
Content modelStructured JSON configs define page composition, component props, experiments, and flags.Made the page runtime configurable without turning it into a free form design surface.
AuthoringAn AI assisted visual editor powered by Claude on AWS Bedrock.Let non-technical users express intent in natural language instead of learning a complex CMS UI.
DeliveryStatic JSON on S3 and CloudFront, with CDN invalidation after publish.Kept the critical delivery path simple, cheap, and cache-friendly.
GovernanceThree-stage validation, sandbox preview, PR creation, Slack notifications, and an approval flow.Created self-service without turning production changes into an unreviewed free-for-all.
Design systemConfigs reference approved components by name and schema.Made design consistency structural instead of relying on manual QA after each request.
ExperimentationExperiments and feature flags defined directly in config.Closed one of the main gaps we saw in vendor CMS options for our real experimentation workflow.
06ImpactRead moreHide
What the platform was built to improve
DimensionIntended impact
Product velocityMove from weeks of engineering coordination to same-day or near-instant content and layout changes.
Engineering leverageReduce routine tickets and developer time spent on content and campaign support.
ExperimentationLet product teams run layout and module experiments through config rather than code deployment.
Performance safetyKeep pages server rendered, cache-aware, and SEO-conscious while increasing editorial agility.
Platform valueCreate a foundation for personalization, unified listing-page patterns, and modular rollout across more surfaces.
Where it landed

The platform has a strong thesis and a real production foothold: it is already managing portions of the homepage behind a controlled feature flag, it saves roughly $145K a year in CMS licensing, and it keeps AI cost minimal.

Early modeling suggested that the reduction in engineering dependency, plus faster campaign deployment, could offset build cost within six to nine months.

We set explicit success criteria: fewer tickets and less developer time for content changes, faster time from campaign idea to live deployment, no degradation in Core Web Vitals, server response, or SEO health, and wider adoption across page types and teams.

The honest read is a strong platform in motion: a real production foothold and a clear roadmap, with full-scale adoption still ahead.

07Leadership & WinsRead moreHide

I reframed the project from "should we buy a CMS?" into a product-velocity and platform-control problem.

I identified that our real requirements were not generic editorial needs. They were experimentation, governance, performance safety, and deep integration with our existing design and deployment stack.

The project also turned design into a leverage point instead of a bottleneck. Design defines the module library, slot rules, and compositional constraints, so valid AI-generated output is approved by construction.

And it was built on systems we already know how to operate: GitHub, CI/CD, Slack, AWS, and our existing UI and AI platform investments.

08Risks & MitigationsRead moreHide
RiskHow it showed upMitigation
Missing native RBACThe internal system did not yet have a built-in permissions layer comparable to vendor CMS products.Governed Slack approval workflows, schema validation, and a path toward centralized Okta integration.
Schema maintenance burdenEvery new component requires schema work, so the maintenance load scales with the component library.Keep the component set intentional, use strong type contracts, and treat schema work as part of component enablement.
Multi-repo and pipeline complexityThe system spans configs, Lambda and API, the CMS package, and consuming apps, which adds coordination overhead and publish latency.PR-based publishing, isolated staging, and automation around notifications and preview so complexity stays visible and reviewable.
Performance or reliability regressionMore editorial flexibility can create runtime or SEO regressions if poorly integrated.Keep the runtime server rendered and cache-aware, validate before deploy, and benchmark Core Web Vitals and SEO before and after rollout.
Low adoption or unsafe autonomyIf PMs do not trust the workflow, or too much autonomy is granted too early, the system could become either ignored or risky.Onboard deliberately, keep guardrails strict at first, and widen the possibility space only as trust and design-system maturity grow.
09Aftermath & LessonsRead moreHide

The strongest lesson is that this was never really a CMS project in the narrow sense. It was a controlled autonomy project for product teams to increase velocity.

The second is that structured data mattered more than the editor brand. Once we accepted that pages had to be driven by structured config either way, the question shifted from "which CMS?" to "which operating model gives us the most leverage?"

  • AI only works safely when design and engineering define the boundaries up front. The win condition was autonomy inside a constrained component-and-slot system, not unconstrained generation.
  • Vendor products were not rejected for being weak. They were rejected because their strengths did not line up with our hardest requirements: experimentation fit, lock in concerns, and workflow integration.

By this point the project had crossed the threshold from idea to operating system: real production homepage usage, a defined rollout path, and a roadmap from basic slot orchestration toward personalization.

The best CMS was no CMS at all.