Server components, in plain terms
What actually ships to the browser, what stays on the server, and why the default matters for a fast page.
How Plus UI turns what you compose into typed, tree-shaken React and Web Components — ready to deploy, not to throw away.
The fastest way to lose a developer’s trust is to show them generated code they would never commit. Nested divs, inline styles, class names like div-block-7. It works in the demo and dies in the pull request.
Export is where most visual tools quietly give up. We treated it as the product.
When you compose in Plus UI, you are arranging real components from the design system. Export doesn’t re-interpret a canvas into markup — it serializes the component tree you already built.
import { Button } from "@plus-ui/react";
export function Hero() {
return <Button variant="primary">Start a project</Button>;
}That is the export. Typed props, named imports, the same component a teammate would write by hand.
Because components are imported by name, a page ships only the code it uses:
The result is a page weight that tracks what is on the page, not what is in the library.
The test we hold export to is simple: would a senior engineer approve this in review? If a line would draw a comment, that is a bug in the exporter — not a quirk to explain away in the docs.
Composition is the fast part. Code you can keep is the hard part. The hard part is the one worth owning.