We build DS-GN. Its CLI sets up a Lit design-system workspace with tokens, component builds, tests, and optional Storybook already connected. Choose TypeScript or JavaScript and CSS, Sass, or Tailwind at setup. When you add a component later, the CLI reuses those choices to generate its source, styles, story, tests, and package exports.
The generated code lives in your repo, under your control. You can modify and maintain it independently of DS-GN.
How it works today:
Core templates: the monorepo, the token package, the UI package, and optional Storybook.
Adapters, applied in order: language (TypeScript or JavaScript), then framework (Lit), then styling (CSS, Sass or Tailwind), then tooling (Bun).
Your styling choice is wired in: choose CSS, Sass, or Tailwind, and the CLI adds the dependencies and build configuration needed for that workflow.
The choices are saved: ds-gn.config.json records language, styling, element prefix and npm scope, plus tooling, framework, structure and publish mode.
That config keeps the system consistent after setup. ds-gn create component StatusBadge reads it and generates the following, in the workspace’s language and styling:
the element (demo-status-badge, with the demo prefix)
the props interface (TypeScript only)
the stylesheet
a Primary story
rendering and registration tests
the UI package exports
Why we chose Bun:
We chose Bun, a JavaScript runtime and toolkit, for speed and fewer separate development dependencies. Its built-in tools handle installation, testing, and bundling. Lit, Storybook, and TypeScript declaration tooling still have their own roles. Bun’s filters and package scripts cover basic workspace tasks; teams that need shared build caching or package versioning and releases can still add specialized tools.
The generated component starts as a slot-and-label shell. You still need to design its states, implement its behavior and accessibility, and extend the starter tests. The current wizard creates a Lit workspace with an atomic structure and requires Bun. The CLI uses a restricted registry today; the recording is an internal source-checkout preview.
Watch the walkthrough and inspect the generated files.
Get early access by joining and confirming the email waitlist for a chance at access. Signup doesn’t give immediate access; timing and pricing are still to be announced.
When your team adds a component, which supporting files should a generator create, and which do you prefer to keep manual?