SynUI

A drag-and-drop UI kit: sites as folders of JSON

Type
Library
Built with
TypeScript
Source
Private repository
Libraryprivate repo
SU
React 19ViteTailwind CSS 4

Overview

A drag-and-drop UI kit for React: build any front end — a shop, a landing page, a portal, an app's screens — as a folder of small JSON files, then render it anywhere. One package renders, one builds.

Core features

@synui/renderer renders a built site from its JSON folder (also shipped as a CDN script); @synui/builder is the visual editor with an app-defined API list, template library and media API, plus headless tools. Both are objects created from a config rather than components with props, so there is no provider or context to keep in sync.

Architecture

Two packages with a hard boundary: the builder's code never ships in a site — a build check enforces that the renderer contains none of it — and the builder uses the renderer as a same-version peer dependency. Built with Vite, React 19, Tailwind CSS 4 and Radix primitives, versioned through packed releases (v3.5 to v3.8), with the public renderer mirrored to a CDN repository served by jsDelivr. Commerza consumes it as its storefront designer.

Frameworks, tools & libraries

The stack behind it

Frameworks

  • React 19
  • Vite
  • Tailwind CSS 4
  • React Router

Tools & infrastructure

  • Vitest
  • jsDelivr CDN
  • GitHub

Libraries

  • Radix UI
  • shadcn/ui
  • class-variance-authority
  • react-resizable-panels
  • lucide-react
  • Sonner

Where it runs

My own products that depend on this library.

Skills applied

What I brought to it

  1. 01

    Schema-driven rendering: a site format expressed as JSON files

  2. 02

    Visual builder design with panels, drag and drop and live preview

  3. 03

    Package-boundary enforcement through build checks

  4. 04

    Semantic versioning and release flow across two packages

  5. 05

    CDN distribution of a renderer script

  6. 06

    Design-system work on Radix and Tailwind

Languages

What it's written in

  • TypeScript~213 files

    renderer, builder and catalog

  • CSS~34 files

    theme and component styles

  • JavaScript~14 files

    scripts and CDN build

Next project

WorthLedger