Identify the problem. Design the solution.
Understanding why most fronted systems decay, and building ecosystems that don't.
The hidden cost of modern complexity
The average JavaScript dependency has a shorter half-life than the team maintaining it. Every framework upgrade, build-tool migration, and abandoned package compounds into the long tail of “we can’t touch that anymore.”
Dependency Churn
npm graphs balloon faster than teams can audit them.
Framework Lock-In
Idioms outlive the framework that taught them.
Build Complexity
Toolchains become a second product no one shipped.
Knowledge Decay
Onboarding cost scales with abstraction depth.
A todo list does not need a megabyte of JavaScript. The weights below are approximate — and they are conservative.
- Angular 170 KB
- React + DOM 45 KB
- Vue 3 34 KB
- Web Components ~0 KB
- Material UI 300 KB
- Chakra UI 120 KB
- Bootstrap 60 KB
- Native CSS + WC 4 KB
What you install versus what actually runs.
- 280 MB Node_Modules Installed
- 2.4 MB Javascript Shipped
- 40 KB Your Actual App Logic
- Material UI 152 KB
- Chakra UI 88 KB
- Svelte 14 KB
- Vanilla WC 3 KB
A component is just a component
The browser already ships a component model, a module system, and a styling engine. Here is a complete, reusable, encapsulated component — no build step, no runtime, no upgrade path to maintain.
counter-button.jsclass CounterButton extends HTMLElement {
connectedCallback() {
let count = 0;
const button = document.createElement('button');
button.textContent = 'Clicked 0 times';
button.onclick = () => {
button.textContent = `Clicked ${++count} times`;
};
this.append(button);
}
}
customElements.define('counter-button', CounterButton);<counter-button></counter-button> — really running on this page.CSS custom properties are your design system
Tokens live in the cascade, not in a JavaScript bundle. Theme switching, density, and brand variants become a single declaration the browser resolves for free, exactly how the light mode on this site works.
tokens.css:root {
--brand: #16864a;
--space: 8px;
--radius: 6px;
}
.card {
padding: calc(var(--space) * 3);
border-radius: var(--radius);
border-top: 3px solid var(--brand);
}
/* swap one value, retheme everything */Systems that repeat and intercommunicate
Each unit ships independently, speaks a shared protocol, and composes into larger surfaces without rewriting the boundaries between them.
Self-Contained
Each module owns its styles, state, and lifecycle. No shared globals to break when one surface changes.
Protocol-first
Custom Events and ES Modules are the contract, a boundary the browser enforces, not a framework convention.
Composable
Mix products and surfaces into larger systems without a meta-framework holding them together.
<product-cart><product-search><checkout-flow>What we build
Five engagement areas, each aimed at the same outcome: a frontend you can still understand in five years.
Dependency Reduction
We audit your dependency tree, identify what the platform already does, and remove the rest, shrinking your supply-chain surface and your upgrade burden.
Native-First Architecture
Web Components, ES Modules, and modern Web APIs as the foundation, so your system rides the browser's roadmap instead of fighting a framework's.
Design Systems
Token-driven, framework-agnostic component libraries built on custom properties and the Shadow DOM, usable by any team, in any stack, indefinitely.
Interoperable Frontend Systems
Independent surfaces that share a contract, not a runtime. Each product ships on its own cadence yet composes into one coherent ecosystem.
Migration Strategy
A staged, low-risk path off a heavy framework, incremental, reversible, and shipped behind the same UI your users already know.
See how an engagement runs
How we work →Who chooses not to use frontend libraries
Space X
Space X used opensource chromium browser for the UI of their Dragon shuttle including web components for its UI.
Adobe
For the web based version of photoshop, Adobe opted to use native web components and web assembly.
Frontend Masters
The people who teach frameworks for a living chose the platform for their own product — for speed and longevity.
Curious what your dependency tree is really costing?
We'll audit it and show you what the platform can take off your plate.