Nextauri is a GitHub boilerplate template that couples Next.js with the Tauri framework to build cross-platform desktop applications for Windows, Linux, and macOS from a single React and Rust codebase. The template ships with minimal best-practice configuration — ESLint for Next.js, Clippy for Rust, GitHub Actions for CI/CD, and automated weekly dependency updates — so you can start a Tauri project without wiring up tooling yourself.
What is Nextauri?
Nextauri is a starter template maintained by developer leon3s on GitHub. It takes a Next.js frontend (located in src-next/) and a Tauri Rust backend (located in src-tauri/) and produces desktop binaries for Windows, Linux, and macOS. The project uses Next.js Static Site Generation (getStaticProps) to pre-render React into static HTML and JavaScript that get embedded into the final Tauri binary, which Tauri loads inside its webview.
Key Features
- ESLint configuration — Community-recommended ESLint setup for Next.js projects that runs on every push and pull request via GitHub Actions.
- Clippy linter — Rust best practices enforced through Clippy, also wired into the same CI workflow.
- Multi-platform CI/CD — GitHub Actions workflows trigger on push and pull request, running linting and production builds for Linux, Windows, and macOS.
- Weekly dependency updates — Automated dependency refresh scheduled weekly to keep the stack current.
- Single-command development —
npm run devstarts both the Next.js dev server and Tauri in development mode; Tauri waits for the HTTP server onlocalhost:3000by default, and the port is configurable insrc-tauri/tauri.conf.json. - Single-command production build —
npm run tauri buildexports the Next.js app and builds the Tauri application for the current environment. - Structured source layout —
src-next/holds all Next.js files andsrc-tauri/holds Tauri source files, keeping the two worlds separated.
Who is it for?
- Web developers building native desktop apps — Use familiar Next.js and React patterns to create desktop apps for Windows, Linux, and macOS, then call Rust system APIs through Tauri's IPC.
- Developers moving away from Electron — Get a smaller bundle size, lower memory usage, and a more secure architecture because Tauri uses the OS webview and Rust instead of bundling Node.js and Chromium.
- Teams that want CI out of the box — The included GitHub Actions configuration handles linting, Clippy analysis, and production builds for all three platforms without extra setup.
What can you do with Nextauri?
- Desktop app developers: Scaffold a new cross-platform desktop application with React/Next.js frontend and Rust backend, complete with linting, CI, and weekly updates.
- Developers building performance-sensitive tools: Use Tauri's smaller footprint and Next.js SSG output to ship lighter apps that load faster because React hydrates pre-rendered HTML instead of rendering client-side.
- Developers exploring Rust/Node integration: The template shows the boundary between Node.js execution and browser execution; for calling Rust from Node.js directly, the page points to Neon as an alternative.
How does Nextauri work?
After installing Node.js and Rust and meeting Tauri prerequisites, you clone or fork the repository, run npm install, and start development with npm run dev. In development, Next.js runs a Node.js server for Hot Module Replacement and Server-Side Rendering, while Tauri connects to that server. For production, npm run tauri build exports Next.js as static files via SSG and compiles the Tauri app for your current platform.
FAQ
Can I use getServerSideProps with Nextauri?
No. Because production builds rely on Next.js Static Site Generation, the page explicitly notes that getServerSideProps and request-time data fetching are not available. Pages should use getStaticProps to generate data at build time.
Why do I get "navigator is not defined"?
The error happens when code that uses browser APIs like @tauri-apps/api runs during Next.js server-side rendering. The template offers two workarounds: import the component with next/dynamic and ssr: false, or guard code with a typeof window !== 'undefined' check.
Does Nextauri support mobile?
Not yet. The page states Tauri plans mobile compatibility in the future, but the current template builds desktop applications for Windows, Linux, and macOS only.
How do I change the dev server port?
Edit src-tauri/tauri.conf.json by updating beforeDevCommand to pass the new port (for example, npm run next dev -- -p 8080) and set devPath to the matching URL.
What testing setup is included?
The template does not ship a test runner. It recommends Cypress with Tauri's mocking technique, and points to Tauri's pre-alpha WebDriver Testing as another option.
Alternatives
- Electron — The framework Nextauri positions against via Tauri's smaller bundle size, lower memory usage, and webview-based architecture.
- nextron — An Electron + Next.js template that is functionally similar to Nextauri but builds on Electron rather than Tauri.







