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. Focus on your ideas and users, while the framework handles the heavy lifting.
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. This is made possible by our contributors and these companies:
Become a sponsorGet started in seconds. Build for web, desktop, and mobile — all from one codebase.