Requirements
The builder needed to let a user assemble a real multi-section site without hand-editing JSON or guessing what would happen at publish time. Requirements centered on editable theme tokens, reusable section schemas, ordered pages, version history, and a preview that matched desktop, tablet, and mobile output.
Stack choices
Next.js App Router was selected for route-based editing and preview pages. Material UI accelerated the admin-style controls, Zustand kept builder state simple and inspectable, dnd-kit handled reorder interactions, and Framer Motion gave section animation choices a controlled implementation path.
Design system
The design system was schema-first: theme fields such as primary color, background, font family, type scale, radius, spacing, shadow, border thickness, animation duration, easing, nav height, and glassmorphism were centralized in ThemeConfig. Section variants then consumed those tokens instead of each block inventing its own styling rules.
MVP definition
The MVP was a local-storage-backed builder with three durable stages: theme, sections, and page_builder. Supabase was planned behind an isolated storage API, but local persistence was enough to validate the editing model, versioning, and preview flow first.
Progression
Work progressed from token editing to section schemas, then to page assembly and preview. Once each section type had known fields and display options, drag-and-drop ordering and version history became straightforward because the app was always moving structured configuration rather than arbitrary markup.