One codebase. Six platforms. Zero boilerplate. Write React, ship everywhere.
Build modern, high-performance apps that run natively everywhere without complex tooling, steep learning curves, or endless config files.
$ npx create-bini-app@latest
Every tool is carefully chosen and pre-configured so you can focus on building.
Next Generation Frontend Tooling
The Library for Web & Native
Ultrafast Edge Framework
Build Smaller, Faster, and More Secure Desktop & Mobile Apps
Most starters give you a bundler and call it a day. Bini.js gives you a framework - wired together and configured correctly from the first commit.
Bundler configs, router boilerplate, and manual code splitting eat into every new project.
Drop a file in src/app/, get a route - instantly code-split, no router config, no boilerplate.
Shipping to web, desktop, and mobile usually means three codebases and three toolchains.
One codebase compiles to a real web app, desktop binary, or mobile app - nothing emulated or wrapped.
Backend and frontend live in separate repos, separate deploys, separate mental models.
API routes are colocated in src/app/api/, powered by Hono, and deploy alongside your frontend.
Each hosting platform has its own APIs, configs, and entry points.
bini-deploy generates the right configs and entry files for any platform - one command handles Netlify, Vercel, Cloudflare, Deno, Node, and native apps.
Complexity stays invisible. You write normal React and normal web APIs - the framework handles the rest.
Nested layouts, dynamic segments, and per-route metadata - no router config to maintain.
useState, useParams, getEnv, and more are available with zero import statements.
The same Hono API handler runs in dev middleware, bini-server, or as an edge function - generated per target.
Desktop and mobile builds are real Tauri apps - not Electron wrappers, not emulators.
Vite + Rolldown for bundling, Oxlint + Oxfmt for lint and format - all pre-configured out of the box.
bini-native detects the web APIs you call and wires Tauri plugins, permissions, and manifests for you.
--platform picks the target - each scaffold gets exactly the dependencies, scripts, and config it needs.
Standard Vite + React SPA with file-based routing and a Hono API layer.
Native desktop binary running inside WebView2, with Authenticode code signing.
Native desktop binary running inside WKWebView, with Developer ID + notarization.
Native desktop binary in WebKitGTK, distributed as a GPG-signed AppImage.
Real native APK/AAB via Tauri's Android backend - not a WebView wrapper.
Real native app via Tauri's iOS backend, running inside WKWebView.
Every package is purpose-built and works seamlessly together - or standalone.
Bini.js is MIT Licensed and will always be free and open source. Made possible by our contributors and these companies:
Become a sponsorGet started in seconds. Build for web, desktop, and mobile - all from one codebase.
$ npx create-bini-app@latest