https://github.com/jbolda/quantum-devtools.git
This template should help get you started developing with Tauri + SolidStart + TypeScript.
[!note]
Tauri v2 is already considered stable, it is currently at the Release Candidate stage. This means only minor fixes are expected towards the stable release.
You can use the Template button on the GitHub UI and shallow clone this repository. Or, do it with degit:
npx degit atilafassina/quantum
Alternatively, good old git clone can also work. It's recommended to make a shallow clone so it doesn't bring entire repository history:
git clone --depth 1 https://github.com/atilafassina/quantum
The snippets below use PNPM as the package manager and task runner, but Yarn, NPM, Bun, or Cargo should also work with the appropriate syntax.
π Check the Tauri Docs for more guidance on building your app.
First step is always to install JavaScript dependencies from the root:
pnpm install
Once the template is properly cloned, install Node.js dependencies and you can run the Tauri app.
pnpm tauri dev
Check the prerequisites for having iOS ready to run (MacOS only). Once that is done, letβs create the XCode project:
pnpm tauri ios init
If everything runs successfully (keep an eye for warnings on your terminal). You can start the development server:
pnpm tauri ios dev --open
This command will open XCode with your project, select the simulator and get ready to run.
Android Studio and a few other steps will be required to get things up and running. Once that's done, you can initialize the project:
pnpm tauri android init
Open the Android Studio, and run the development build:
pnpm tauri android dev
This command will open the Android Pixel simulator.
This template implements a GitHub Action workflow that builds and publishes the binaries for MacOS, Linux, and Windows. You can check the .github/workflows/release.yml file for more details. The draft and publishing of release happens through CrabNebula Cloud. To fully use this feature you will need to have a CrabNebula account and add the necessary secrets to your repository.
| Key | Description |
|---|---|
CN_API_KEY | The API key for your CrabNebula account. |
CN_APP_SLUG | The slug of the app you want to publish. |
TAURI_SIGNING_PRIVATE_KEY | The private key used to sign the MacOS and Windows binaries. |
TAURI_SIGNING_PRIVATE_KEY_PASSWORD | The password for the private key. |
tauri.conf.json it is also important to add a pubkey for the auto-updater.
With a few opinionated defaults, Quantum enforces a smaller binary size than stock Tauri templates. Except for some special cases, these work particularly well.
panic = "abort"codegen-units = 1Reducing CGUs to a minimum will potentially reduces memory consumption and leads to faster compilation time. This setting hinders parallelization, so it's worth to benchmark in your particular app.
lto = trueopt-level = "s"Using "s" is a balanced optimization. Some apps may find faster compilation times with opt-level="z", though this may bring slower runtime performance as a tradeoff.
strip = true