vs #2
electron-shadcn
Electron AppStack adds (7)
electron-shadcn adds (1)
Pick electron-shadcn if you need end-to-end tests out of the box.
Comparison
Electron AppStack side by side with 18 other Electron boilerplates and templates: 22 features, the tech stack, the Electron version and how actively each one is maintained.
Data updated on Oct 25, 2026, generated from an open data file. Spotted a mistake? Open a pull request.
Features included7.2 on average for the other maintained boilerplates, 14 for electron-shadcn.
In our rankingOut of 19. See the ranking
Electron versionThe latest major release. 2 of 18 others are on it.
Price17 of the 18 others are free too.
Key differences
The features below are computed from the comparison data: where Electron AppStack is ahead, and where other boilerplates are.
Fully included by at most one other boilerplate.
Not fully included in Electron AppStack, available elsewhere.
Features
22 features across development, frontend, backend, shipping and selling, for every boilerplate, ordered by their rank.
| Feature | Electron AppStack | electron-shadcn | Electron React Boilerplate | Desktop App Boilerplate (LearnWithHasan) | Electron Forge (vite-typescript) | Electron React App | Angular Electron | electron-vite (create-electron) | Vutron | Nextron | Vite Electron Builder | electron-vite-react | Reactronite | electron-vite-vue | Secure Electron Template | Electron App (daltonmenezes) | Electron Vite React Boilerplate (kethakav) | electron-boilerplate (sindresorhus) | electron-boilerplate (szwacz) |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Developer experience | |||||||||||||||||||
| TypeScriptMain, preload and renderer written in TypeScript. | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | – | ✓ | ✓ | × | × |
| Hot reloadRenderer reloads and main process restarts on change. | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | – | – |
| Linting and formattingA linter and a formatter configured. | ✓ | ✓ | ✓ | – | ✓ | ✓ | ✓ | ✓ | ✓ | × | × | × | ✓ | × | × | ✓ | ✓ | ✓ | × |
| Unit testsA unit test runner set up with example tests. | ✓ | ✓ | ✓ | ✓ | × | × | ✓ | × | × | × | × | ✓ | × | × | ✓ | × | × | × | ✓ |
| End-to-end testsTests that launch the packaged app. | × | ✓ | × | × | × | × | ✓ | × | ✓ | × | ✓ | ✓ | × | × | – | × | × | × | – |
| DocumentationGuides written for the boilerplate, beyond a README. | ✓ | ✓ | ✓ | ✓ | ✓ | – | – | ✓ | ✓ | – | – | – | – | – | ✓ | – | – | – | – |
| AI agent instructionsAGENTS.md or rules so coding agents follow the conventions. | ✓ | × | × | ✓ | × | × | × | × | × | × | × | × | × | × | × | × | × | × | × |
| Frontend | |||||||||||||||||||
| Choice of UI frameworkSeveral renderer frameworks to pick from. | × | × | × | × | ✓ | × | × | ✓ | × | × | ✓ | × | × | × | × | × | × | ✓ | ✓ |
| RoutingA client-side router with example pages. | ✓ | ✓ | ✓ | – | × | × | ✓ | × | ✓ | ✓ | × | × | ✓ | × | ✓ | ✓ | × | × | × |
| UI componentsA component library or design system. | ✓ | ✓ | × | ✓ | × | ✓ | × | × | ✓ | – | × | × | – | × | – | ✓ | ✓ | × | × |
| Dark modeLight, dark and system themes with a switcher. | ✓ | ✓ | × | ✓ | × | ✓ | × | × | – | × | × | × | – | × | × | – | – | × | × |
| TranslationsAn i18n library with translation files. | ✓ | ✓ | × | ✓ | × | × | ✓ | × | ✓ | – | × | × | × | × | ✓ | × | × | × | × |
| Backend | |||||||||||||||||||
| Typed IPCCalls from the renderer to the main process are typed end to end. | ✓ | ✓ | – | – | × | ✓ | × | × | × | × | – | × | × | × | × | × | × | × | × |
| Local databaseAn embedded database with migrations. | ✓ | × | × | ✓ | × | × | × | × | × | × | × | × | × | × | × | × | × | × | × |
| Persistent settingsA store for user preferences that survives restarts. | ✓ | × | × | ✓ | × | × | × | × | × | ✓ | × | × | – | × | ✓ | × | × | ✓ | × |
| Shipping | |||||||||||||||||||
| Auto updateThe app downloads and installs new versions. | ✓ | ✓ | ✓ | ✓ | – | × | × | – | × | × | ✓ | ✓ | – | × | × | × | ✓ | ✓ | × |
| Release workflowCI builds and publishes installers for every platform. | ✓ | ✓ | ✓ | ✓ | × | – | ✓ | × | – | × | ✓ | – | ✓ | – | × | ✓ | – | × | × |
| Code signingSigning and notarization wired into the build. | ✓ | × | ✓ | ✓ | – | × | × | – | × | × | × | × | × | × | × | × | × | × | × |
| Secure defaultsContext isolation, sandboxed renderer, no Node.js in the renderer. | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | – | ✓ | ✓ | ✓ | ✓ | – | ✓ | – | ✓ | ✓ | – | × | × |
| Selling | |||||||||||||||||||
| Source code protectionBytecode compilation, Electron fuses or ASAR integrity. | ✓ | – | × | × | – | × | × | – | × | × | × | × | – | × | × | – | × | × | × |
| License keysActivation, validation and offline use of license keys. | ✓ | × | × | – | × | × | × | × | × | × | × | × | × | × | – | × | × | × | × |
| PaymentsCheckout connected to license creation. | ✓ | × | × | × | × | × | × | × | × | × | × | × | × | × | × | × | × | × | × |
✓Included–Partial or manual setup×Not includedHover a cell for details.
Tech stack
Read from each template's package.json and source code.
| Stack | Electron AppStack | electron-shadcn | Electron React Boilerplate | Desktop App Boilerplate (LearnWithHasan) | Electron Forge (vite-typescript) | Electron React App | Angular Electron | electron-vite (create-electron) | Vutron | Nextron | Vite Electron Builder | electron-vite-react | Reactronite | electron-vite-vue | Secure Electron Template | Electron App (daltonmenezes) | Electron Vite React Boilerplate (kethakav) | electron-boilerplate (sindresorhus) | electron-boilerplate (szwacz) |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Language | TypeScript | TypeScript | TypeScript | TypeScript | TypeScript | TypeScript | TypeScript | TypeScript | TypeScript | TypeScript | TypeScript | TypeScript | TypeScript | TypeScript | JavaScript | TypeScript | TypeScript | JavaScript | JavaScript |
| Build tool | electron-vite + Vite | Electron Forge + Vite | electron-vite + Vite | electron-vite + Vite | Electron Forge + Vite | electron-vite + Vite | Angular CLI | electron-vite + Vite | Vite + vite-plugin-electron | Next.js + webpack | Vite | Vite + vite-plugin-electron | Electron Forge + Vite | Vite + vite-plugin-electron | webpack + Babel | electron-vite + Vite | Vite + vite-plugin-electron | None | webpack + Babel |
| UI framework | React | React | React | React | Vanilla | React | Angular | React, Vue, Svelte, Solid, Vanilla | Vue | Next.js | React, Vue, Svelte, Vanilla | React | React | Vue | React | React | React | Vanilla | Vanilla |
| Styling | Tailwind CSS | Tailwind CSS | Sass | Tailwind CSS | CSS | Tailwind CSS | SCSS | CSS | Vuetify | CSS | CSS | Tailwind CSS | Tailwind CSS | CSS | Bulma | Tailwind CSS | Tailwind CSS, DaisyUI | CSS | CSS |
| Components | shadcn/ui | shadcn/ui | – | – | – | shadcn/ui | – | – | Vuetify | – | – | – | Radix UI | – | – | shadcn/ui | DaisyUI | – | – |
| Routing | TanStack Router | TanStack Router | React Router | – | – | – | Angular Router | – | Vue Router | Next.js | – | – | React Router | – | React Router | React Router | – | – | – |
| Data and state | TanStack Query | TanStack Query | – | – | – | TanStack Query + Zustand | RxJS | – | Pinia | – | – | – | – | – | Redux Toolkit | – | – | – | – |
| IPC | tRPC | oRPC | Preload bridge | Preload bridge | Preload bridge | electron-conveyor | Angular service | @electron-toolkit/preload | Preload bridge | Preload bridge | Preload exports | Preload bridge | Preload bridge | Preload bridge | Preload bridge | Preload bridge | Preload bridge | Node integration | Node integration |
| Database | SQLite + Drizzle ORM | – | – | SQLite (better-sqlite3) | – | – | – | – | – | – | – | – | – | – | – | – | – | – | – |
| Settings store | electron-store | – | – | – | – | – | – | – | – | electron-store | – | – | – | – | secure-electron-store | – | – | electron-store | – |
| Packaging | electron-builder | Electron Forge | electron-builder | electron-builder | Electron Forge | electron-builder | electron-builder | electron-builder | electron-builder | electron-builder | electron-builder | electron-builder | Electron Forge | electron-builder | electron-builder | electron-builder | electron-builder | electron-builder | electron-builder |
| Updates | electron-updater | update-electron-app | electron-updater | electron-updater | – | – | – | – | – | – | electron-updater | electron-updater | – | – | – | – | electron-updater | electron-updater | – |
| Testing | Vitest | Vitest, React Testing Library, Playwright | Jest, React Testing Library | 78 unit tests | – | – | Vitest, Playwright | – | Playwright | – | Playwright | Vitest, Playwright | – | – | Mocha, Spectron | – | – | – | Mocha, Spectron |
| Linting | Biome | Biome | ESLint, Prettier | – | ESLint | ESLint, Prettier | ESLint | ESLint, Prettier | ESLint, Prettier | – | – | – | ESLint, Prettier | – | – | Biome | ESLint | XO | – |
| Translations | i18next | i18next | – | Built in, two languages | – | – | ngx-translate | – | vue-i18n | – | – | – | – | – | i18next | – | – | – | – |
Head to head
What each one adds over the other, and when to pick the alternative.
vs #2
Pick electron-shadcn if you need end-to-end tests out of the box.
vs #3
Electron AppStack covers everything Electron React Boilerplate does.
vs #5
Pick Electron Forge (vite-typescript) if you want no UI framework.
vs #6
Electron AppStack covers everything Electron React App does.
vs #7
Pick Angular Electron if you want Angular or you need end-to-end tests out of the box.
vs #8
Pick electron-vite (create-electron) if you want Vue, Svelte, Solid or no UI framework.
vs #9
Pick Vutron if you want Vue or you need end-to-end tests out of the box.
vs #10
Pick Nextron if you want Next.js.
vs #12
Pick electron-vite-react if you need end-to-end tests out of the box.
vs #14
Pick electron-vite-vue if you want Vue.
20 of 22 features, ready on the first npm run dev.