{"id":13572647,"url":"https://github.com/atilafassina/quantum","last_synced_at":"2025-04-07T04:18:59.528Z","repository":{"id":206641559,"uuid":"693707771","full_name":"atilafassina/quantum","owner":"atilafassina","description":"Tauri + SolidStart. Batteries Included 🔋","archived":false,"fork":false,"pushed_at":"2024-10-05T06:47:07.000Z","size":1871,"stargazers_count":498,"open_issues_count":6,"forks_count":23,"subscribers_count":11,"default_branch":"main","last_synced_at":"2025-03-31T03:20:27.948Z","etag":null,"topics":["android","ios","mobile","rust","solid","solid-start","solidjs","solidstart","tailwindcss","tauri","tauri-app","tauri-specta","template","typescript"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/atilafassina.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null},"funding":{"github":"AtilaFassina"}},"created_at":"2023-09-19T14:51:24.000Z","updated_at":"2025-03-30T19:38:55.000Z","dependencies_parsed_at":"2023-11-11T09:32:35.772Z","dependency_job_id":"3d4fb66c-1e97-4bd1-a45c-dd79ab35b792","html_url":"https://github.com/atilafassina/quantum","commit_stats":{"total_commits":47,"total_committers":7,"mean_commits":6.714285714285714,"dds":0.2978723404255319,"last_synced_commit":"6c8b6db6e7b0382b8248e89ba90b225f92fc29c5"},"previous_names":["atilafassina/create-solidjs-tailwind-tauri","atilafassina/quantum"],"tags_count":3,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/atilafassina%2Fquantum","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/atilafassina%2Fquantum/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/atilafassina%2Fquantum/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/atilafassina%2Fquantum/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/atilafassina","download_url":"https://codeload.github.com/atilafassina/quantum/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247589825,"owners_count":20963025,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["android","ios","mobile","rust","solid","solid-start","solidjs","solidstart","tailwindcss","tauri","tauri-app","tauri-specta","template","typescript"],"created_at":"2024-08-01T14:01:29.898Z","updated_at":"2025-04-07T04:18:59.483Z","avatar_url":"https://github.com/atilafassina.png","language":"TypeScript","readme":"\u003cdiv align=\"center\"\u003e\n\u003cimg src=\"/docs/quantum-dark-mode.svg#gh-dark-mode-only\" width=\"250\" /\u003e\n\u003cimg src=\"/docs/quantum-dark-mode.svg#gh-light-mode-only\" width=\"250\" /\u003e\n  \u003ch1\u003eQuantum\u003c/h1\u003e\n  \u003cp\u003eA big leap developing with Tauri + SolidStart + TypeScript.\u003c/p\u003e\n\u003c/div\u003e\n\n## Let's get going! 🐑\n\n```sh\npnpm create quantum\n```\n\n```sh\nnpm create quantum\n```\n\n```sh\nyarn create quantum\n```\n\n## Running 🚤\n\nOnce scaffolding is done, you can `cd` into your project, install dependencies and start rocking! 🤘\n\nThe snippets below use [PNPM](https://pnpm.io) as the package manager and task runner, but Yarn, NPM, Bun, or Cargo should also work with the appropriate syntax.\n\n\u003e 🛟 Check the [Tauri Docs](https://v2.tauri.app/) for more guidance on building your app.\n\nFirst step is always to install JavaScript dependencies from the root:\n\n```sh\npnpm install\n```\n\n## Desktop (MacOS, Linux, or Windows) 🖥️\n\nOnce the template is properly cloned, install Node.js dependencies and you can run the Tauri app.\n\n```sh\npnpm tauri dev\n```\n\n## iOS 🍎\n\n\u003cimg src=\"/docs/ios.png\" align=\"right\" height=\"300\"/\u003e\n\n[Check the prerequisites](https://v2.tauri.app/guides/prerequisites/#ios) for having iOS ready to run (MacOS only).\nOnce that is done, let’s create the XCode project:\n\n```sh\npnpm tauri ios init\n```\n\nIf everything runs successfully (keep an eye for warnings on your terminal).\nYou can start the development server:\n\n```sh\npnpm tauri ios dev --open\n```\n\nThis command will open XCode with your project, select the simulator and get ready to run.\n\n## Android 🤖\n\n\u003cimg src=\"/docs/android.png\" align=\"right\" height=\"300\"/\u003e\n\n[Android Studio and a few other steps will be required](https://v2.tauri.app/guides/prerequisites/#android) to get things up and running.\nOnce that's done, you can initialize the project:\n\n```sh\npnpm tauri android init\n```\n\nOpen the Android Studio, and run the development build:\n\n```sh\npnpm tauri android dev\n```\n\nThis command will open the Android Pixel simulator.\n\n## Continuous Integration and deployment\n\nThis 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](https://crabnebula.dev/cloud). To fully use this feature you will need to have a CrabNebula account and add the necessary secrets to your repository.\n\n| Key                                  | Description                                                  |\n| ------------------------------------ | ------------------------------------------------------------ |\n| `CN_API_KEY`                         | The API key for your CrabNebula account.                     |\n| `CN_APP_SLUG`                        | The slug of the app you want to publish.                     |\n| `TAURI_SIGNING_PRIVATE_KEY`          | The private key used to sign the MacOS and Windows binaries. |\n| `TAURI_SIGNING_PRIVATE_KEY_PASSWORD` | The password for the private key.                            |\n\nBesides those, in the `tauri.conf.json` it is also important to add a `pubkey` for the auto-updater.\n\n## Build Optimization ⚡\n\nWith a few opinionated defaults, Quantum enforces a smaller binary size than stock Tauri templates. Except for some special cases, these work particularly well.\n\n- `panic = \"abort\"`\n  The compiler will abort the program immediately when a panic occurs in production. Without performing any cleanup. Code will execute faster, the tradeoff is you won't get as much information about the panic when it occurs.\n\n- `codegen-units = 1`\n  Explicitly tells the compiler to use only one code generation unit during compilation. Code generation units (CGUs) represent individual units of code that the compiler processes independently.\n\nReducing 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.\n\n- `lto = true`\n  Link Time Optimization (lto) enables the compiler to make more aggressive optimizations than it can do at the individual file level, resulting in potentially significant performance improvements in the final executable. However, enabling LTO may increase compilation times and require more memory during the linking phase, as the compiler needs to analyze and optimize a larger amount of code.\n\n- `opt-level = \"s\"`\n\nSpecifying the optimization level to be \"size-optimized.\" This option instructs the compiler to prioritize reducing the size of the generated code while still aiming for reasonable performance.\n\nUsing `\"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.\n\n- `strip = true`\n\nStripping symbols from generated code is generally recommended for release builds where binary size is a concern, and debuggability is less critical. It helps produce leaner binaries, which can be beneficial for deployment, distribution, or running in resource-constrained environments. Additionally, it can slightly enhance security because it makes the binaries harder to analyze.\n\n## Suggested VSCode extensions 💡\n\n- [Tauri](https://marketplace.visualstudio.com/items?itemName=tauri-apps.tauri-vscode)\n- [rust-analyzer](https://marketplace.visualstudio.com/items?itemName=rust-lang.rust-analyzer)\n- [Tailwind CSS IntelliSense](https://marketplace.visualstudio.com/items?itemName=bradlc.vscode-tailwindcss)\n\n## Contributors\n\n\u003c!-- ALL-CONTRIBUTORS-LIST:START - Do not remove or modify this section --\u003e\n\u003c!-- prettier-ignore-start --\u003e\n\u003c!-- markdownlint-disable --\u003e\n\u003ctable\u003e\n  \u003ctbody\u003e\n    \u003ctr\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"14.28%\"\u003e\u003ca href=\"https://atila.io\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/2382552?v=4?s=100\" width=\"100px;\" alt=\"Atila Fassina\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eAtila Fassina\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"#maintenance-atilafassina\" title=\"Maintenance\"\u003e🚧\u003c/a\u003e \u003ca href=\"https://github.com/atilafassina/quantum/commits?author=atilafassina\" title=\"Code\"\u003e💻\u003c/a\u003e \u003ca href=\"https://github.com/atilafassina/quantum/commits?author=atilafassina\" title=\"Documentation\"\u003e📖\u003c/a\u003e \u003ca href=\"https://github.com/atilafassina/quantum/issues?q=author%3Aatilafassina\" title=\"Bug reports\"\u003e🐛\u003c/a\u003e \u003ca href=\"https://github.com/atilafassina/quantum/commits?author=atilafassina\" title=\"Tests\"\u003e⚠️\u003c/a\u003e \u003ca href=\"#ideas-atilafassina\" title=\"Ideas, Planning, \u0026 Feedback\"\u003e🤔\u003c/a\u003e\u003c/td\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"14.28%\"\u003e\u003ca href=\"http://brendonovich.dev\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/14191578?v=4?s=100\" width=\"100px;\" alt=\"Brendan Allan\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eBrendan Allan\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/atilafassina/quantum/commits?author=brendonovich\" title=\"Code\"\u003e💻\u003c/a\u003e \u003ca href=\"#ideas-brendonovich\" title=\"Ideas, Planning, \u0026 Feedback\"\u003e🤔\u003c/a\u003e \u003ca href=\"https://github.com/atilafassina/quantum/issues?q=author%3Abrendonovich\" title=\"Bug reports\"\u003e🐛\u003c/a\u003e\u003c/td\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"14.28%\"\u003e\u003ca href=\"https://erikras.com\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/4396759?v=4?s=100\" width=\"100px;\" alt=\"Erik Rasmussen\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eErik Rasmussen\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/atilafassina/quantum/commits?author=erikras\" title=\"Documentation\"\u003e📖\u003c/a\u003e\u003c/td\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"14.28%\"\u003e\u003ca href=\"https://github.com/FelipeEmos\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/10969700?v=4?s=100\" width=\"100px;\" alt=\"Felipe Emos\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eFelipe Emos\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/atilafassina/quantum/commits?author=felipeemos\" title=\"Code\"\u003e💻\u003c/a\u003e \u003ca href=\"https://github.com/atilafassina/quantum/issues?q=author%3Afelipeemos\" title=\"Bug reports\"\u003e🐛\u003c/a\u003e\u003c/td\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"14.28%\"\u003e\u003ca href=\"http://www.joshuakgoldberg.com/\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/3335181?v=4?s=100\" width=\"100px;\" alt=\"Josh Goldberg ✨\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eJosh Goldberg ✨\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/atilafassina/quantum/commits?author=JoshuaKGoldberg\" title=\"Documentation\"\u003e📖\u003c/a\u003e \u003ca href=\"https://github.com/atilafassina/quantum/commits?author=JoshuaKGoldberg\" title=\"Code\"\u003e💻\u003c/a\u003e \u003ca href=\"#infra-JoshuaKGoldberg\" title=\"Infrastructure (Hosting, Build-Tools, etc)\"\u003e🚇\u003c/a\u003e\u003c/td\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"14.28%\"\u003e\u003ca href=\"https://kunalsin9h.com\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/82411321?v=4?s=100\" width=\"100px;\" alt=\"Kunal Singh\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eKunal Singh\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/atilafassina/quantum/commits?author=kunalsin9h\" title=\"Documentation\"\u003e📖\u003c/a\u003e\u003c/td\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"14.28%\"\u003e\u003ca href=\"https://eu.virtuaires.com.br/\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/61759797?v=4?s=100\" width=\"100px;\" alt=\"Vitor Ayres\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eVitor Ayres\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/atilafassina/quantum/issues?q=author%3Avasfvitor\" title=\"Bug reports\"\u003e🐛\u003c/a\u003e\u003c/td\u003e\n    \u003c/tr\u003e\n  \u003c/tbody\u003e\n\u003c/table\u003e\n\n\u003c!-- markdownlint-restore --\u003e\n\u003c!-- prettier-ignore-end --\u003e\n\n\u003c!-- ALL-CONTRIBUTORS-LIST:END --\u003e\n","funding_links":["https://github.com/sponsors/AtilaFassina"],"categories":["android","TypeScript"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fatilafassina%2Fquantum","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fatilafassina%2Fquantum","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fatilafassina%2Fquantum/lists"}