You build React components. Uniweb provides the entire content platform where your components feel native. No editor to build, no infrastructure to maintain. Just focus on what makes your design system unique.
The visual editor, publishing pipeline, hosting, analytics, and more already exist. Your components integrate so deeply, content teams will think it was all built just for them.
Your Focus
Visual page editor
Content management system
User auth & permissions
Publishing workflows
Preview infrastructure
SEO optimization layer
Analytics integration
Translation management
Asset optimization
Hosting & deployment
Content version control
Months of work. Thousands of edge cases. Already solved.
Your unique components
Your design system
Parameter schemas for flexibility
The creative possibilities
Your expertise. Your vision. Your value.
The Core Abstraction
That schema? That's what turns your component into a visual tool. Content teams never see props—they see 'Headline' and 'Layout Style' with visual previews.
// This is just React. Nothing magical.
export const Hero = ({ title, subtitle, layout, theme }) => {
return (
<section className={cn(styles.hero, styles[layout], styles[theme])}>
<h1>{title}</h1>
{subtitle && <p>{subtitle}</p>}
</section>
);
};
// This is where it gets interesting.
Hero.schema = {
title: {
type: 'text',
label: 'Headline',
placeholder: 'Make it compelling',
},
layout: {
type: 'select',
options: ['centered', 'left', 'split'],
default: 'centered',
label: 'Layout Style',
},
};
// Optional: Define presets for common patterns.
Hero.presets = [
{
name: 'Product Launch',
params: { layout: 'split', theme: 'dark' },
preview: '/previews/hero-product.png',
},
];
Your Workflow
Run a local dev server with hot reloading. Test components with real content and debug like any other React app.
Your Foundation is a standard npm package. Use Git for version control and publish updates via npm when you're ready.
Components stay pure. They just receive props and render. The content layer is completely separate, so you can change either without breaking the other.
The Architecture
No build step pollution. No webpack config nightmares. Your code runs as you wrote it.
Clarifications
You're building living systems that power dynamic content, not just pre-built templates.
You're creating a complete creative environment, not just a set of UI pieces for other developers.
The CMS already exists. You're simply providing the creative system that it uses.
Foundations are just npm packages built with standard React. Your code is always yours.
Get Building
npx create-uniweb-foundation my-foundation