All notable changes to the electron-react-app (ERA) are listed here.
- 🎉 Electron version upgraded to
v40.1.0 - Update shadcn components in use
- Added
npm run formatcommand for prettier code formatting - Refactor electron-builder configuration
- Simplified error boundary component + selectable text
- Fix: window styles that caused children div elements to have full height
- Tweak titlebar icon display condition for darwin platform
- Improve welcome content text and styles
- Upgraded dependencies to latest usable versions:
📋 View Dependency Updates
↑ @electron-toolkit/eslint-config-prettier@3.0.0
↑ @electron-toolkit/tsconfig@2.0.0
↑ @eslint/js@10.0.1
↑ @rushstack/eslint-patch@1.15.0
↑ @tailwindcss/vite@4.1.18
↑ @types/node@25.2.3
↑ @types/react@19.2.14
↑ @types/react-dom@19.2.3
↑ @vitejs/plugin-react@5.1.4
↑ cross-env@10.1.0
↑ electron@40.4.0
↑ electron-builder@26.7.0
↑ electron-vite@5.0.0
↑ eslint@10.0.0
↑ eslint-plugin-react@7.37.5
↑ eslint-plugin-react-hooks@7.0.1
↑ framer-motion@12.34.0
↑ npm-run-all@4.1.5
↑ prettier@3.8.1
↑ react@19.2.4
↑ react-dom@19.2.4
↑ tailwindcss@4.1.18
↑ typescript@5.9.3
↑ typescript-eslint@8.55.0
↑ vite@7.3.1
↑ @electron-toolkit/preload@3.0.2
↑ @electron-toolkit/utils@4.0.0
↑ @radix-ui/react-slot@1.2.4
↑ @radix-ui/react-switch@1.2.6
↑ class-variance-authority@0.7.1
↑ clsx@2.1.1
↑ lucide-react@0.563.0
↑ tailwind-merge@3.4.0
↑ tw-animate-css@1.4.0
↑ zod@4.3.6-
🎉 Electron version upgraded to
v37 -
⛓️ Conveyor System - Type-safe Inter-Process Communication
- Implemented comprehensive type-safe IPC system with Zod validation
- Added modular API architecture for clean separation of concerns
- Integrated global type declarations for seamless TypeScript support
- Created React hook
useConveyor()for easy component integration - Added comprehensive documentation and usage examples
- Implemented runtime validation for enhanced security and reliability
-
🏗️ Project Structure Optimization
- Reorganized file structure for better maintainability
- Consolidated shared utilities and components
- Improved separation of concerns between main and renderer processes
- Enhanced module organization and import paths
-
⚡ Component Performance Optimization
- Optimized React component rendering and re-renders
- Trimmed down component bundle sizes
-
🛠️ Developer Experience
- Updated TypeScript configuration for better type safety
- Enhanced ESLint rules and code quality checks
- Improved build process and error reporting
- Added better development tooling integration
- Enhanced project structure with better separation of concerns
- Added cross-env for cross-platform environment variable support
- Using npm as the package manager for the project
-
📦 Dependencies
- Upgraded dependencies to latest versions:
📋 View Dependency Updates
↑ @eslint/js 9.28.0 → 9.34.0
↑ @rushstack/eslint-patch 1.11.0 → 1.12.0
↑ @tailwindcss/vite 4.1.8 → 4.1.12
↑ @types/node 22.15.29 → 24.3.0
↑ @types/react 19.1.6 → 19.1.11
↑ @types/react-dom 19.1.5 → 19.1.8
↑ @vitejs/plugin-react 4.5.0 → 5.0.1
↑ electron 36.3.2 → 37.3.1
↑ electron-vite 3.1.0 → 4.0.0
↑ eslint 9.28.0 → 9.34.0
↑ framer-motion 12.15.0 → 12.23.12
↑ prettier 3.5.3 → 3.6.2
↑ react 19.1.0 → 19.1.1
↑ react-dom 19.1.0 → 19.1.1
↑ tailwindcss 4.1.8 → 4.1.12
↑ typescript 5.8.3 → 5.9.2
↑ typescript-eslint 8.33.0 → 8.41.0
↑ vite 6.3.5 → 7.1.3
↑ @radix-ui/react-switch 1.2.5 → 1.2.6
↑ lucide-react 0.511.0 → 0.541.0
↑ tailwind-merge 3.3.0 → 3.3.1
↑ tw-animate-css 1.3.2 → 1.3.7-
🎉 Electron version upgraded
v36 -
🎨 Integrated Shadcn UI Component System
- Added new component library with Radix UI primitives
- Implemented accessible and customizable components
- Added TypeScript support for better developer experience
- Integrated with Tailwind CSS for consistent styling
- Added new component showcase in welcome kit
-
🎨 Enhanced Design System
- Implemented new color system with CSS variables
- Added new design tokens for consistent theming
- Improved dark/light mode implementation
- Added new radius system for consistent border radius
- Enhanced typography system
- Added new chart color palette
-
🎨 Welcome Kit Improvements
- Added Shadcn UI showcase section
- Enhanced dark mode toggle
- Added new icons and updated welcome component content
- Updated welcome component styles to support light mode without dark class
- Integrated dark mode toggle in WelcomeKit using Badge component
-
🎨 Developer Experience
- Added new component configuration system
- Improved TypeScript support
- Enhanced component documentation
- Added new development utilities
- Fixed ESLint configuration issues
- Implemented res:// protocol for app resources
-
📦 Dependencies
- Upgraded dependencies to latest versions:
| Package | Version |
|---|---|
| @electron-toolkit/preload | ^3.0.2 |
| @electron-toolkit/utils | ^4.0.0 |
| @tailwindcss/vite | ^4.1.8 |
| @vitejs/plugin-react | ^4.5.0 |
| electron | ^36.3.2 |
| electron-builder | ^26.0.12 |
| electron-vite | ^3.1.0 |
| eslint | ^9.28.0 |
| eslint-plugin-react | ^7.37.5 |
| framer-motion | ^12.15.0 |
| prettier | ^3.5.3 |
| react | ^19.1.0 |
| react-dom | ^19.1.0 |
| tailwindcss | ^4.1.8 |
| typescript | ^5.8.3 |
| vite | ^6.3.5 |
- 🎉 Electron version upgraded
v35.x.x - 📦 Upgraded dependencies to latest versions:
| Package | Version |
|---|---|
| @electron-toolkit/preload | ^3.0.2 |
| @electron-toolkit/eslint-config | ^2.1.0 |
| @electron-toolkit/eslint-config-ts | ^3.1.0 |
| @rushstack/eslint-patch | ^1.11.0 |
| @tailwindcss/vite | ^4.1.4 |
| @vitejs/plugin-react | ^4.4.1 |
| electron | ^35.2.0 |
| electron-builder | ^26.0.12 |
| electron-vite | ^3.1.0 |
| eslint | ^9.25.1 |
| eslint-plugin-react | ^7.37.5 |
| framer-motion | ^12.7.4 |
| prettier | ^3.5.3 |
| react | ^19.1.0 |
| react-dom | ^19.1.0 |
| tailwindcss | ^4.1.4 |
| typescript | ^5.8.3 |
| vite | ^6.3.2 |
- Add pnpm configuration for only built dependencies
- Prevent app from quitting on macOS when all windows are closed
- 🚀 Major overhaul: Complete migration from Webpack to Vite
- ⚡ Significantly improved build times and development experience
- 🎨 Added TailwindCSS integration for modern styling
- 🏗️ Restructured project files for better organization:
- Moved renderer code to
app/folder - Consolidated shared code in
lib/folder - Moved main process code to
lib/mainfolder - Moved preload code to
lib/preloadfolder
- Moved renderer code to
- 💅 Refreshed UI with new design system and components
- 🌓 Enhanced dark/light mode implementation with smoother transitions
- 📦 Updated IPC communication system for better security
- 🔄 Added new welcome kit with interactive tutorial
- ⚙️ Simplified configuration files and build scripts
- 📊 Improved logging and error handling
- 🛠️ Updated Electron to latest version
v31.2.2 - 📈 Upgraded dependencies to latest versions:
| Package | Version |
|---|---|
| electron | ^34.3.0 |
| react | ^19.0.0 |
| react-dom | ^19.0.0 |
| typescript | ^5.7.3 |
| vite | ^6.2.0 |
| tailwindcss | ^4.0.9 |
| electron-vite | ^3.0.0 |
| electron-builder | ^25.1.8 |
| @vitejs/plugin-react | ^4.3.4 |
- 🎉 Electron version upgraded
v23.0.0. - Using
eslint.config.jsonas eslint configuration. - Tweaked app themes colors.
- Upgraded outdated packages:
| Package | Version |
|---|---|
| electron | ^31.2.1 |
| @electron-forge | 7.4.0 |
| electron-squirrel-startup | ^1.0.1 |
| @pmmmwh/react-refresh-webpack-plugin | ^0.5.15 |
| @typescript-eslint | ^7.16.1 |
| css-loader | ^7.1.2 |
| eslint | ^9.7.0 |
| eslint-plugin-react | ^7.34.4 |
| react-refresh | ^0.14.2 |
| sass | ^1.77.8 |
| sass-loader | ^14.2.1 |
| style-loader | ^4.0.0 |
| typescript | ^5.5.3 |
| webpack | ^5.93.0 |
| react | ^18.3.1 |
| react-dom | ^18.3.1 |
- 🎉 Application UI and Themes (light/dark).
- Using latest Electron version
v28 - Changed app accent colors & added credits menu item.
- Integrated
electron-windowcomponents & modules in project's file structure. - Separated dark/light themes from application stylesheet for easy modification.
- Added
@stylesalias for easily import stylesheets. - Removed
less-loaderby default from project. - Removed unused
miscdirectory. - Removed unused
src/commondirectory. - Converted
lesstoscssfor window components stylesheet. - Updated forge config with more useful hints.
- Upgraded outdated packages to their latest supported versions.
Upgraded outdated packages:
| Package | Version |
|---|---|
| electron | 27.1.2 |
| @electron-forge | 7.1.0 |
| @typescript-eslint | 6.13.1 |
| eslint-plugin-import | 2.29.0 |
| eslint | 8.54.0 |
| less | 4.2.0 |
| sass | 1.69.5 |
| ts-loader | 9.5.1 |
| typescript | 5.3.2 |
| webpack | 5.89.0 |
| react-refresh-webpack-plugin | 0.5.11 |
| fork-ts-checker-webpack-plugin | 9.0.2 |
Upgraded outdated packages:
| Package | Version |
|---|---|
| electron | 26.2.2 |
| @electron-forge | 6.4.2 |
| @typescript-eslint | 6.7.3 |
| eslint-plugin-import | 2.28.1 |
| eslint-plugin-react | 7.33.2 |
| eslint | 8.50.0 |
| less | 4.2.0 |
| sass | 1.68.0 |
| typescript | 5.2.2 |
| webpack | 5.88.2 |
| react-refresh-webpack-plugin | 0.5.11 |
Upgraded outdated packages:
| Package | Version |
|---|---|
| electron | 25.2.0 |
| @electron-forge | 6.2.1 |
| @typescript-eslint | 6.0.0 |
| eslint | 8.44.0 |
| less-loader | 11.1.3 |
| sass | 1.63.6 |
| sass-loader | 13.3.2 |
| ts-loader | 9.4.4 |
| typescript | 5.1.6 |
| webpack | 5.88.1 |
Upgraded outdated packages:
| Package | Version |
|---|---|
| electron | 25.0.1 |
| @typescript-eslint | 5.59.9 |
| css-loader | 6.8.1 |
| eslint | 8.42.0 |
| less-loader | 11.1.2 |
| sass | 1.62.1 |
| sass-loader | 13.3.1 |
| style-loader | 3.3.3 |
| ts-loader | 9.4.3 |
| typescript | 5.1.3 |
| webpack | 5.85.1 |
Upgraded outdated packages:
| Package | Version | |
|---|---|---|
| electron | 24.1.2 |
⬆️ |
| @electron-forge | 6.1.1 |
⬆️ |
| @typescript-eslint | 5.59.0 |
⬆️ |
| eslint | 8.39.0 |
⬆️ |
| sass | 1.62.0 |
⬆️ |
| sass-loader | 13.2.2 |
⬆️ |
| typescript | 5.0.4 |
⬆️ |
| webpack | 5.80.0 |
⬆️ |
Upgraded outdated packages:
| Package | Version | |
|---|---|---|
| electron | 23.2.0 |
⬆️ |
| eslint | 8.36.0 |
⬆️ |
| sass | 1.60.0 |
⬆️ |
| sass-loader | 13.2.1 |
⬆️ |
| style-loader | 3.3.2 |
⬆️ |
| typescript | 5.0.2 |
⬆️ |
| webpack | 5.76.3 |
⬆️ |
| @types/node | 18.15.10 |
⬆️ |
| @types/react | 18.0.29 |
⬆️ |
| @types/react-dom | 18.0.11 |
⬆️ |
| @typescript-eslint | 5.56.0 |
⬆️ |
Upgraded outdated packages:
| Package | Version | |
|---|---|---|
| electron | 23.1.2 |
⬆️ |
| eslint | 8.35.0 |
⬆️ |
| sass | 1.58.3 |
⬆️ |
| @types/node | 18.14.6 |
⬆️ |
| @types/react | 18.0.28 |
⬆️ |
| @types/react-dom | 18.0.11 |
⬆️ |
| @typescript-eslint | 5.54.0 |
⬆️ |
- 🎉 Electron version upgraded
v23.0.0 - Upgraded outdated packages:
electronupgraded tov23.0.0@electron-forgedeps upgraded tov6.0.5@typescript-eslintdeps upgraded tov5.51.0css-loaderupgraded tov6.7.3eslintupgraded tov8.33.0eslint-plugin-importupgraded tov2.27.5eslint-plugin-reactupgraded tov7.32.2fork-ts-checker-webpack-pluginupgraded tov7.3.0sassupgraded tov1.58.0typescriptupgraded tov4.9.5
- 🎉 Electron version upgraded
v22.0.0 - Upgraded outdated packages:
electronupgraded tov22.0.0@electron-forgedeps upgraded tov6.0.4@pmmmwh/react-refresh-webpack-pluginupgraded tov0.5.10@typescript-eslintdeps upgraded tov5.46.0css-loaderupgraded tov6.7.2eslintupgraded tov8.29.0sass-loaderupgraded tov13.2.0ts-loaderupgraded tov9.4.2typescriptupgraded tov4.9.4webpackupgraded tov5.75.0
- 🎉 Electron version upgraded to
v21.2.0 - Fixed Devtools Console warning message caused by content policy.
- Upgraded forge config plugins format to support latest version.
- Disabled
sandboxby default in application window. - Upgraded outdated deps:
electronupgraded tov21.2.0@electron-forgedeps upgraded tov6.0.0-beta.68@pmmmwh/react-refresh-webpack-pluginupgraded tov0.5.8@typescript-eslintdeps upgraded tov5.41.0classnamesupgraded tov2.3.2eslintupgraded tov8.26.0eslint-plugin-reactupgraded tov7.31.10less-loaderupgraded tov11.1.0sassupgraded tov1.55.0sass-loaderupgraded tov13.1.0ts-loaderupgraded tov9.4.1typescriptupgraded tov4.8.4
- 🥳 New layout for default application.
- 🤖 Overhaul for dark/light themes with new colors.
- Improved transition timing of title menus list.
- Fixed native modules compiling issue with update to related webpack loader.
- Updated forge
devContentSecurityPolicyconfig for electron window. - Upgraded outdated deps:
electronupgraded tov19.0.14@electron-forgedeps upgraded tov6.0.0-beta.65@typescript-eslintdeps upgraded tov5.36.1eslintupgraded tov8.23.0eslint-plugin-reactupgraded tov7.30.1sassupgrded tov1.54.0typescriptupgraded tov4.7.4
- Upgraded outdated deps:
electronupgraded to^19.0.9.@typescript-eslintdeps upgraded tov5.30.7.eslintupgraded tov8.20.0".fork-ts-checker-webpack-pluginupgraded tov7.2.13.sassupgraded tov1.54.0.sass-loaderupgraded tov13.0.2.webpackupgraded tov5.74.0.
- 🎉 Electron version upgraded to
v19.0.6 - Using
misc/windowfor custom window without git submodule. - Upgraded outdated deps:
electronupgraded tov19.0.6@electron-forgedeps upgraded tov6.0.0-beta.64@pmmmwh/react-refresh-webpack-pluginupgraded tov0.5.7@typesdeps upgraded to latest version@typescript-eslintdeps upgraded tov5.29.0eslintupgraded tov8.18.0eslint-plugin-reactupgraded tov7.30.1fork-ts-checker-webpack-pluginupgraded tov7.2.11lessupgraded tov4.1.3less-loaderupgraded tov11.0.0react-refreshupgraded tov0.14.0sassupgraded tov1.53.0sass-loaderupgraded tov13.0.1ts-loaderupgraded tov9.3.1typescriptupgraded tov4.7.4webpackupgraded to5.73.0
- 🙌🏻 New Layout for default application.
- 🌑 Dark mode & 💡 Light Mode colors.
- 🎉 Electron version upgraded to
v18.1.0 - Using
sass/scssstylesheets by default for project (previouslylesswas used). - Using
React Fast Refreshfor hot reloading, removed oldhot-loader. - Titlebar Menus style overrides for improvements with rounded corners.
- Created a new
Theme.scssfile for adjusting light/dark mode color schemes. - Persist theme state in
localStorageby default. - Using
pnpminstead ofyarnas package manager for project. - Upgraded outdated deps:
electronupgraded tov18.1.0eslintupgraded tov8.13.0typescriptupgraded tov4.6.3webpackupgraded tov5.72.0reactdeps upgraded tov18.0.0
- Upgraded outdated deps:
electronupgraded tov17.2.0eslintugpraded tov8.11.0,css-loaderupgraded tov6.7.1@typescript-eslint/eslint-plugindeps upgraded tov5.16.0eslint-plugin-reactupgraded tov7.29.4ts-loaderupgraded tov9.2.8typescriptupgraded tov4.6.3webpackupgraded tov5.70.0
- 🎉 Electron core upgraded
v17.0.1 - Upgraded outdated deps:
@hot-loader/react-domupgraded tov17.0.2webpackupgraded tov5.69.1typescriptupgraded tov4.5.5fork-ts-checker-webpack-pluginupgraded tov7.2.1eslintupgraded tov8.9.0css-loaderupgraded tov6.6.0@typescript-eslintdeps upgraded tov5.12.1
- Electron Window : File menu visible by default
- Upgraded outdated deps:
electronupgraded tov16.0.7@electron-forgedeps upgraded tov6.0.0-beta.63@types/nodeupgraded tov17.0.8@typescript-eslintdeps upgraded tov5.9.1eslintupgraded tov8.6.0typescriptupgraded tov4.5.4webpackupgraded tov5.66.0
- 🎉 Electron core upgraded
v16 - Upgraded outdated deps:
@typescript-eslintdeps upgraded to^5.5.0eslintupgraded to^8.4.0fork-ts-checker-webpack-pluginupgraded to^6.5.0typescriptupgraded to^4.5.2webpackupgraded to^5.64.4
- Fix: CSS/LESS
background-imagecorrupted image file output. - Updated: Webpack Rules to load assets using Webpack v5 Asset Modules instead of
file-loader - Fix: Typo in eslint alias map for
@components - Updated: Window (submodule) to latest version.
- Removed: Unused contextBridge api declaration.
- Overhauled: Application default layout and styling.
- Overhauled: Project files structure to separate 'main' & 'renderer' modules.
- Added: Custom Window Frame.
- Added: Custom Window Titlebar.
- Added: Custom Menus for Titlebar.
- Added: Window controls for
windows&macbased platform. - Renamed:
.eslintrc.jsonto.eslintrc - Upgraded Outdated deps :
eslintupgraded tov8.2.0css-loaderupgraded tov6.5.1@typescript-eslintdeps upgraded tov5.3.0webpackupgraded tov5.62.1
- 🎉 Electron core upgraded to version
v15 - Application colors updated for vue environment
- Fix eslint script
- Default window background color updated.
- Upgrade outdated deps:
electronupgraded to^15.0.0@electron-forgedeps upgraded to6.0.0-beta.61@types/nodeupgraded to^16.9.6@typescript-eslintdeps upgraded to^4.31.2css-loaderupgraded to^6.3.0
- 🎉 Electron core upgraded to version
v14 - Update application style properties
- Enable
nativeWindowOpenfor main window - Remove
enableRemoteModulefrom main window - Fix : Hot reloading issue caused by
liveReloadin webpack devServer - Added additional Webpack
devServerconfiguration intools/forge/forge.config.js - Upgraded outdated deps:
@electron-forgedeps upgraded to6.0.0-beta.60@typescript-eslintdeps upgraded to^4.30.0@types/reactupgraded to^17.0.19electronupgraded to^14.0.0eslint-plugin-importupgraded to^2.24.2eslint-plugin-reactupgraded to^7.25.1typescriptupgraded to^4.4.2webpackupgraded to^5.51.1
- Update file-loader configuration for
assetsfiles - Add packager configuration for app executable file details
- Update
READMEwith similar useful projects
- Overhaul for Application default layout and styling.
- Default window background color updated.
- Default
minimalstats output for main & renderer process via webpack. - Upgraded outdated deps :
electronupgraded to^13.1.9@electron-forgepackages upgraded to6.0.0-beta.59@typescript-eslintpackages upgraded to^4.29.2css-loaderupgraded to^6.2.0eslintupgraded to^7.32.0fork-ts-checker-webpack-pluginupgraded to^6.3.2less-loaderupgraded to10.0.1style-loaderupgraded to^3.2.1ts-loaderupgraded to9.2.5typescriptupgraded to^4.3.5webpackupgraded to^5.50.0
- Electron core 🚀 upgraded to version 13.
- Expose Webpack Ports settings in forge configuration.
- Upgraded outdated packages :
electronupgraded to^13.0.1@typescript-eslintpackages upgraded to^4.26.0eslintupgraded to^7.27.0css-loaderupgraded to^5.2.6ts-loaderupgraded to8.3.0typescriptupgraded to^4.3.2webpackupgraded to^5.38.1fork-ts-checker-webpack-pluginupgraded to^6.2.10
- Upgraded outdated packages
electron'upgraded to^12.0.6reactupgraded to^17.0.2react-domupgraded to^17.0.2css-loaderupgraded to^5.2.4eslintupgraded to^7.25.0node-loaderupgraded to2.0.0ts-loaderupgraded to8.2.0typescriptupgraded to^4.2.4webpackupgraded to^5.36.2
- Overhaul for Application component layout and styling.
- Project Files structure updated.
- Move static images to
assetsdirectory. - Remove
.prettierignorefile. - Use
.tsxfile extension forpreloadandrendererincase we need to use components. - Introduce new
assetswebpack alias. - Modify aliases usage for new project structure.
- Upgraded outdated dependencies
electronupgraded to12.0.1css-loaderupgraded to5.1.3eslintupgraded to7.22.0lessupgraded to4.1.1less-loaderupgraded to7.3.0ts-loaderupgraded to8.0.18typescriptupgraded to4.2.3webpack