Ship sooner without rebuilding basic features
Shellui is an open-source web app platform with navigation, authentication, administration, and storage built in. Your product stays center stage - your team skips rebuilding the basics and gets to market faster.
Give this instruction to your agent.
fetch https://shellui.ai to start with Shellui
MIT licensed Self hosted Docs Source on GitHub
A shared foundation for your apps
Bring your apps together with shared navigation, sign-in, administration, and file storage. Choose the features your product needs.
Apps and navigation
Combine apps built with different frameworks in one interface. Shellui handles the surrounding navigation and layout. Connect each app to shared dialogs, notifications, and settings through the SDK.
Explore apps and navigation- Authentication Share one sign-in flow across your apps. Connect identity-service or Supabase Auth and choose which pages require a session.
- Storage Upload, browse, and share files through the SDK. Control access with file permissions, share links, and storage limits.
- Administration Manage members, company access, and login activity from the administration panel. Add your own internal tools to its sidebar.
- Web and desktop Build the shell as static web files, share a preview on shellui.app, or package it as a desktop app with Tauri.
Try Shellui in the playground
Explore a live Shellui app with no install and no scaffolding.
Scaffold your app. Shellui wraps it.
Your frontend stays the product in the iframe. shellui init scaffolds a starter wired for theme and language. shellui start runs the shell around that app.
Pick a starter
Choosing a chip updates only the shellui init line. Install the CLI globally first, as the docs recommend.
npm install -g @shellui/cli
shellui init react
shellui start
Install the CLI · Framework starters · Create a project
For another stack, run shellui init empty and point Home at your own iframe app.
One config file
Navigation, backend, storage, hosting, and chrome live in shellui.config.json. The CLI validates it against the @shellui/core schema at load time.
{
"$schema": "./node_modules/@shellui/core/schemas/shellui.config.schema.json",
"port": 4000,
"title": "My Shellui App",
"backend": {
"type": "supabase",
"url": "http://localhost:54321"
},
"navigation": [
{
"label": "Home",
"path": "home",
"url": "http://localhost:4000/",
"icon": "/icons/home.svg"
}
]
}$schema- Editor autocomplete and validation.
port/title- Dev server port and chrome title.
backend- Provider (
shellui,supabase, or none) and API base URL. navigation- Sidebar items and iframe URLs. Each item needs
label,path, andurl.
CLI configuration
·
Write the config by hand
·
Schema: @shellui/core/schemas/shellui.config.schema.json
Ship static files, or a native app
shellui build writes a static application to dist/web/. Add --app to also bundle a Tauri 2 desktop wrapper under dist/app/. Hosting on shellui.app is optional.
Host the files yourself
The production output is HTML, CSS, and JavaScript - not a required cloud runtime. Put dist/web/ on the origin you already use, or keep running it on your own machines.
shellui build
Deploy a preview on shellui.app
Log in once, then upload the static build. You get an HTTPS origin on *.shellui.app.
shellui login
shellui deploy
Optional: native desktop with Tauri
The same project can ship a desktop app. The CLI uses Tauri 2, generates the wrapper under dist/app/, and does not ask you to commit native project files. Requires Rust and platform build tools.
shellui build --app
Same shell as you grow
MIT license, one CLI, one static build. Optional native desktop from the same project. The host does not fork when a second surface or a second team shows up.
- Shared chrome
- Several frontends, one product shell. Each surface keeps its own stack.
- Host extras
- Navigation, auth, admin, and files ship with the shell so your app stays the product.
- Yours to run
- Build static files, host them where you already ship, or distribute the output yourself.
- Native desktop
-
shellui build --appwraps the same shell with Tauri 2. See Features and the desktop docs.