8 Technologies. Zero Defaults. All Deliberate.

Every Tool Chosen
for a Reason

The 2026 Stack: Standards-First, Framework-Agnostic, Future-Proof

Nothing in this stack was chosen by popularity or convenience. Every technology was evaluated head-to-head against alternatives, measured on bundle size, Drupal compatibility, developer experience, and long-term standards alignment. This page shows the receipts.

The Full Stack, Layered

Four horizontal layers plus a vertical design token pipeline. Each layer has a clear responsibility and a specific set of tools.

Top Layer

Documentation

Astro / Starlight Storybook 10.x CEM
Upper Layer

Developer Experience

Storybook 10.x Vitest 4.x Playwright
Core Layer

Component Runtime

Lit 3.x TypeScript 5.7 Web Components
Foundation

Build Tools

Vite Turborepo npm workspaces
Design Tokens
Terrazzo
W3C DTCG
Style Dictionary 4.x
CSS Custom Properties

Head-to-Head Comparisons

Every major technology was evaluated against real alternatives. Here are the comparison matrices that drove each decision.

Component Framework

Lit 3.x vs the Field

Criteria Lit 3.x Stencil FAST Vanilla
Bundle size ~5 KB ~14 KB ~8 KB 0 KB
TypeScript Native Native Native Manual
Drupal compat Excellent Good Good Excellent
SSR support
Community Large Medium Small N/A
Storybook Native Plugin Plugin Manual
Winner: Lit 3.x

Best balance of size, DX, and Drupal compatibility. 5 KB runtime gives you reactive properties, Shadow DOM, and TypeScript decorators. Vanilla is lighter but requires building every abstraction from scratch.

Testing Framework

Vitest 4.x vs the Field

Criteria Vitest 4.x Jest + JSDOM Web Test Runner
Real browser Yes No (JSDOM) Yes
Speed vs Jest 2-10x faster Baseline Medium
Storybook 10 Native Plugin None
Watch mode
TypeScript Native Transform
Winner: Vitest 4.x

Unified test runner for unit, browser, and Storybook tests. Storybook 10 native integration is the decisive factor: one runner, one config, one mental model. Real browser testing via Playwright catches issues JSDOM never will.

Design Tokens

Terrazzo vs the Field

Criteria Terrazzo Style Dictionary Theo
W3C DTCG spec Native Plugin No
Output formats CSS, JS, SCSS CSS, JS, SCSS+ CSS, JS
Type safety Yes Partial No
Active dev Yes Yes Archived
Winner: Terrazzo

Native W3C DTCG support, successor to Cobalt UI. The W3C Design Tokens Community Group specification reached its first stable version (2025.10). Terrazzo is the only tool built from the ground up for this standard.

Build Tool

Vite vs the Field

Criteria Vite Rollup esbuild
Dev server Built-in Manual Manual
Library mode Native Native Limited
Storybook Native Plugin Plugin
Tree-shaking Yes Yes Partial
HMR Instant No No
Winner: Vite

Native library mode powers both Storybook and the component build. Vite uses Rollup under the hood for production but adds instant HMR, a built-in dev server, and first-class Storybook 10 support. Best of all worlds.

Documentation

Dual System: Starlight + Storybook

Responsibility Storybook 10.x Astro / Starlight
Interactive demos Primary Embedded via iframe
API reference Autodocs (from CEM) Comprehensive
Integration guides -- Prose + tutorials
Visual testing Chromatic --
Search Pagefind (merged) Pagefind (unified)
JS shipped React runtime 0 KB (static HTML)
Winner: Both -- complementary systems

Storybook answers "what does it look like?" Starlight answers "how do I use it?" CEM acts as the single source of truth feeding API docs into both systems. Pagefind mergeIndex provides unified cross-site search.

Bundle Size Showdown

The runtime cost of choosing a component framework. Lit's ~5 KB gives you full reactive Web Components. Compare that to shipping an entire framework.

Lit 3.x
~5 KB
Vue 3
~30 KB
React 19
~40 KB
Angular
~80 KB
~5 KB
Gets you Web Components that work EVERYWHERE
Drupal, React, Vue, Angular, Svelte, static HTML -- no adapter needed. The browser IS the framework.

The Integration Map

How every tool connects in the development pipeline, from authoring a component to deploying it in Drupal.

Author
Lit + TypeScript
Test
Vitest + Playwright
Document
Storybook + CEM
Build
Vite + Turborepo
Publish
npm registry
Integrate
Drupal CMS
CEM: The Glue Between Systems
The Custom Elements Manifest (CEM) is a machine-readable JSON contract generated from JSDoc annotations. It feeds Storybook autodocs, Starlight API pages, IDE IntelliSense, and Drupal tooling -- all from a single source of truth.

Performance by the Numbers

Measured metrics from the prototype build. Every number here is a real measurement, not a marketing claim.

<2s
Full Library Build
TypeScript compilation via tsc. No bundler overhead for the library package.
2-10x
Faster Than Jest
Vitest with Vite's transform pipeline. Real browser tests via Playwright.
100
Lighthouse Score
Starlight docs ship zero JS by default. Static HTML with island architecture.
100%
Tree-Shakeable
Per-component ES module entry points. Import only what you use.
48%
Leaner Install (SB9)
Storybook 10's flatter dependency tree. Meaningful for CI cache sizes.
1
Runtime Dependency
Lit is the only runtime dependency. Everything else is devDependencies.

This Stack Will Still Work in 2030

Every core technology is backed by a W3C standard, browser-native API, or open specification. No single vendor controls the stack.

W3C Standard

Web Components (Custom Elements v1)

A W3C standard since 2018, natively supported in all modern browsers. No polyfills needed for Chrome 90+, Firefox 88+, Safari 14+. The browser IS the runtime -- no framework needed to render.

Browser Native

Shadow DOM + CSS Custom Properties

Shadow DOM provides true encapsulation. CSS custom properties pierce through Shadow DOM, providing the only viable theming mechanism. Both are browser-native APIs that require zero library support.

Open Specification

Custom Elements Manifest (CEM)

An open community specification for documenting Web Component APIs. Machine-readable JSON that feeds Storybook, IDEs, and documentation systems. Not controlled by any single vendor.

W3C Standard

W3C DTCG Design Tokens (2025.10)

The W3C Design Tokens Community Group specification reached its first stable version in October 2025. Token files written today are forward-compatible with every tool that adopts the standard.

Browser Native

ES Modules

Standard ES2021 modules shipped directly to the browser. No CommonJS, no UMD. Modern Drupal (10.3+) and all evergreen browsers support ES modules natively. The distribution format will never need a major migration.

Meanwhile, in Framework Land...

React
16 → 17 → 18 → 19
Angular
12 → 13 → ... → 19
Vue
2 → 3 (breaking)
WC-2026: Web Components v1 -- unchanged since 2018, supported forever