Getting Started
Welcome to the Bini.js documentation.
What is Bini.js?
Bini.js is a React framework for building full-stack applications that run natively across web, desktop, and mobile - all from a single codebase. You use React components to build user interfaces, and Bini.js handles the complexity of multi-platform deployment.
It automatically configures lower-level tools while providing a seamless path to native apps. You can focus on building your product and shipping quickly, without worrying about the underlying platform differences.
Whether you're building a web app, a desktop application for Windows, macOS, or Linux, or a mobile app for Android and iOS - Bini.js gives you the tools to do it all from one project.
Native Apps from a Single Codebase
Bini.js goes beyond the browser. With Tauri integration, your React app becomes a real native application on every major platform - not a wrapped web view.
Desktop Apps
- -Windows - Native WebView2 binary with Authenticode signing
- -macOS - Native WKWebView app with Developer ID notarization
- -Linux - Native WebKitGTK binary as a GPG-signed AppImage
Mobile Apps
- -Android - Native APK/AAB via Tauri's Android backend
- -iOS - Native app via Tauri's iOS backend, running in WKWebView
Not wrapped - compiled to native binaries with full system access
bini-native detects web APIs you call and wires Rust plugins automatically
Same routes, API handlers, and components compile to every target
How to use the docs
The docs are organized into nine sections:
- Getting Started: Installation, project structure, layouts and pages, and linking and navigating between routes
- Defining Routes: Folder-based and file-based routing, dynamic routes, parallel routes, catch-all routes, and MDX & Markdown pages
- Special Files: Loading UI, error boundaries, templates, default fallbacks, and not-found (404) pages
- Metadata: Metadata and SEO, Open Graph and Twitter cards, icons and favicons
- API Routes: Build backend endpoints with plain function handlers or Hono, including dynamic API routes and CORS
- Environment Variables: How they work, prefixes and client exposure, and using them in API routes
- Styling: Style your app with plain CSS, Tailwind CSS, or CSS Modules
- Platforms: Build for web, Windows, macOS, Linux, Android, and iOS
- Deployment: Deployment overview, the production server, static export, and hosting providers
Bini.js Router
Bini.js has a file-system based router built on folder and file conventions:
- Folder-based routing: Folders define URL segments, and nesting folders creates nested routes automatically.
- File-based routing: Special files like
page.tsxandlayout.tsxdefine the UI for a route.
You can start learning the router from the Routing documentation.
Pre-requisite knowledge
Our documentation assumes some familiarity with web development. Before getting started, it'll help if you're comfortable with:
- HTML
- CSS
- JavaScript
- React
If you're new to React or need a refresher, we recommend starting with the React documentation.