I originally switched from PyQt5 to Tauri to get smaller desktop binaries and better performance. Later, I wanted to add a web version and put everything into a monorepo.
That's when I hit a wall. Using a standard React app for Tauri (desktop) and Next.js for the web meant maintaining two entirely different architectures. Even though I was sharing UI components, I was essentially building and debugging two separate apps.
To solve this, I replaced the standard React setup in Tauri with Next.js (using static HTML export).
TNTStack is the result. It's a cross-platform monorepo template where both web and native apps run on the exact same Next.js architecture. You write the core and ui once, and it builds for all platforms.
It’s a specific stack, but figuring out the configuration for this dual Next.js setup took a lot of trial and error. Hopefully, it saves someone else the setup time. I would love to hear your thoughts on this monorepo structure and the dual Next.js approach.
Repo: https://github.com/odest/tntstack
Live Demo: https://tntstack.odest.dev