Once UI for Next.js is a thin starter wrapped around a design system
⚡ A simple Once UI setup for a new project. Just what's necessary, nothing else.
At a glance
- What is it?
- The Once UI Next.js starter is a deliberately small template that carries the Once UI Core package, a single design configuration file and a hundred plus components, aimed at indie builders, startups and freelancers who want a polished site without assembling a component library by hand. It suits people who accept a paid tier for the bigger app templates.
- Who is it for?
- Adopt this starter when you want a coherent design system in a Next.js project without building tokens, charts and layout primitives yourself, since the repository ships the Core package, a single configuration file and the recommended setup rather than a pile of example pages.
- Can I use it commercially?
- Yes. MIT is a permissive licence: you can use, modify and sell software built on it, as long as you keep its copyright and licence notices.
- Is it still maintained?
- Yes. The repository last received commits 2 days ago.
- What is it written in?
- Mainly TypeScript, according to GitHub's language statistics.
Answers come from the project's GitHub data, last synced on October 23, 2026, and from our analysis. They are not legal advice.
Editorial analysis
A starter that carries a design system, not a website
The project describes itself as a simple Once UI setup for a new project, with just what is necessary and nothing else, and the README restates it as a lightweight starter template with the Once UI Core package and the recommended setup. That framing matters. Most starters ship a landing page, a pricing page, a blog and a contact form, and you delete most of it. This one is closer to a design system with a Next.js harness around it, aimed at indie builders, startups and freelancers. The pitch is stated in terms of output, claiming that Once UI combines the simplicity of low-code with the power of code, and that you write 70 percent less compared to shadcn plus Tailwind, with 100 plus advanced open source components. The demo is at demo.once-ui.com and the documentation at docs.once-ui.com.
One config file, one core package
The customization model is the part that has real architectural weight. The README lists customization as managing design config in a single file, and the topics carry a token system, which together mean the visual decisions are data rather than scattered values in JSX. The component library itself is not in this repository. It is the `@once-ui-system/core` package, which the manifest pins at `^2.0.0`, and the contribution guide is explicit that design system contributions belong in the Once UI Core GitHub repository rather than here. So the split is deliberate. This repository is the integration, the configuration and the recommended setup, and the Core repository is where the components and the tokens themselves evolve. The Figma design counterpart of the system is published separately on the once-ui.com site, which tells you that the design and the code are maintained as two views of one system.
Components, charts and SEO are three separate pieces
The feature list names four capabilities, and they map to the kinds of work a product site actually needs. Components gives access to advanced components with simple APIs, which is the base layer of the whole thing. Data-viz adds responsive charts with a few lines of code, which matters because chart code is exactly the kind of work a team would otherwise write badly. SEO provides components that simplify meta and schema setup, and the topics list figma alongside nextjs, react and typescript, which is consistent with a system meant to be handed to designers and developers together. The claim in the README that the components have simple APIs is the part to test against your own standards, since an API that is simple for the library author is not automatically simple for the team that has to maintain the result.
Free products and a paid tier for the bigger apps
The products are split by licence, and the split matters for what you can actually build from the open source repository. Magic Portfolio is free, a portfolio starter described as simple, customizable and responsive, and used and loved by thousands of creatives. Magic Docs is free, a documentation generator where you add your MDX files and it handles the rest. Once UI Blocks is free, copy-paste pre-designed blocks for deploying functional sites quickly. Stack is the paid one, a complete app built on Once UI with a landing page, a dashboard, documentation, a store and more, composed from the surfaces you pick, and the PRO feature in the list covers launching ready-made apps with minimal coding. The repository is MIT licensed and free to use, but the parts that save the most code are the parts you pay for, which is a reasonable split as long as you know it in advance.
Cloning it and running the dev server
The getting started step is a single clone:
git clone https://github.com/once-ui-system/nextjs-starter.gitThe package manifest shows the rest of the workflow through its scripts. The development server runs with Turbopack, the production build is `next build`, the start command is `next start`, and there is an export script for a static export:
"scripts": {
"dev": "next dev --turbopack",
"build": "next build",
"start": "next start",
"lint": "next lint",
"biome-write": "npx @biomejs/biome format --write ."
}The dependencies are deliberately small: Next 16 with React 19, the Core package, `classnames` for conditional class names, `react-icons`, `sass` for styling, and `sharp` for image processing in the build. The types are pinned exactly, with TypeScript 5.8 and the React type packages held at specific versions, and the manifest even carries an `overrides` block that pins `@types/react` and `@types/react-dom` to those same versions, which is the kind of detail you only find in a template that has already fought a type mismatch.
Two linters, a placeholder env file, and a Vercel button
The repository layout shows a small but opinionated setup. There is a `biome.json` for Biome and a `.eslintrc.json`, with the `lint` script running `next lint` and a separate `biome-write` script for formatting, so the project carries both tools with different roles rather than pretending one is enough. `next.config.mjs` holds the Next configuration, `tsconfig.json` the TypeScript configuration, `src/` the application code, `public/` the static assets, and there is an `.env.example` that is explicitly a placeholder, saying it holds environment variables required to run the project and that currently there are none needed, with example lines for what future variables might look like. That last point is worth noticing: the starter has no environment requirements, so the first thing you add is a deployment target. The README includes a Vercel deploy button, and the `logo.svg` and gallery images live under `public/`.
MIT licensed, with a version story that does not quite line up
The licence is MIT, distributed under the MIT License with the details in `LICENSE.txt`, and the project asks for sponsorship through GitHub Sponsors, describing itself as an indie project. The version numbers need a note. The listed releases are v0.5.1 on 2025-01-16, v0.6.0 on 2025-04-08 and v1.0.0 on 2025-06-12, while the manifest in the repository carries version `2.0.0` and depends on `@once-ui-system/core` at `^2.0.0`, so the tag history and the current package version have diverged and a tag is not a reliable way to pin this starter. The last push was on 2026-10-18, so the code is current, and the repository is not archived. The practical conclusion for anyone starting a project here is to depend on the Core package version rather than on a starter tag, and to expect the template itself to keep moving under you.
Editorial conclusion
Adopt this starter when you want a coherent design system in a Next.js project without building tokens, charts and layout primitives yourself, since the repository ships the Core package, a single configuration file and the recommended setup rather than a pile of example pages. Do not adopt it if you need a component library that your team can extend in this repository, because design system contributions are directed to the separate Once UI Core repository, and the heavier templates are a paid product rather than part of the open source starter. Verify first which tier you need, since the free products are the portfolio, the documentation generator and the blocks, and check the version mismatch between the tagged releases and the `2.0.0` in the package manifest before you pin anything.
Frequently asked questions
How do I start a project with the Once UI Next.js starter?
Clone the template with `git clone https://github.com/once-ui-system/nextjs-starter.git` and use the package scripts: `dev` runs the development server with Turbopack, `build` produces a production build, `start` serves it, and `lint` and `biome-write` handle linting and formatting.
Where do the components and design tokens live?
In the separate Once UI Core package, `@once-ui-system/core`, which this starter depends on. The README asks that design system contributions be made in the Once UI Core GitHub repository rather than in the starter, and the design counterpart is published as a Figma file on once-ui.com.
Does the starter need any environment variables?
Not currently. The `.env.example` file states that it is a placeholder and that there are no environment variables needed to run the project, with example lines included only to show what future variables might look like.
What is free and what is paid in Once UI?
Magic Portfolio, Magic Docs and Once UI Blocks are free, while the Stack app templates and the Pro tier of ready-made apps are paid. The repository itself is MIT licensed and free to use.
Official sources
Add this badge to your README
If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.
[](https://hysenlabs.com/projects/once-ui-system-nextjs-starter)Was this useful?