A starter template for building cross-platform desktop applications with Angular and Electron.
Angular Electron is a bootstrap project that combines Angular for building user interfaces with Electron for packaging desktop applications. It provides a pre-configured setup that enables developers to create native desktop apps for Windows, macOS, and Linux using web technologies, streamlining development with features like hot reload and a structured build process.
Angular developers who want to build cross-platform desktop applications without extensive initial configuration. It is also suitable for teams familiar with Angular's ecosystem seeking to extend web applications to the desktop.
Developers choose Angular Electron because it offers a ready-to-use, opinionated structure that cleanly separates the Electron main process from the Angular renderer process, following best practices. It reduces setup time with integrated tooling like Vitest and Playwright for testing, and supports Electron Builder's dual package.json structure for optimized bundles while maintaining Angular CLI compatibility.
Ultra-fast bootstrapping with Angular and Electron :speedboat:
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Provides a pre-configured Angular and Electron environment with integrated commands like npm start, reducing initial configuration time as outlined in the Getting Started section.
Supports live reloading for the Angular component during development, speeding up iterations, though it's limited to the renderer process as noted in the README.
Uses Electron Builder to package apps into executables for Linux, Windows, and Mac, with additional Flatpak support on Linux, detailed in the building commands.
Comes with Vitest for unit tests and Playwright for E2E tests in the e2e folder, ensuring a comprehensive testing setup out of the box.
Follows Electron Builder's two package.json structure to keep final bundles lean while maintaining Angular CLI compatibility, as explained in the project structure.
Hot reload is only available for the Angular renderer process; the main Electron process requires a full restart, slowing down development for main process changes, as admitted in the README.
The README explicitly warns against using Yarn due to issues with node_modules during packaging, forcing teams to adopt npm, which can be a limitation for yarn-centric workflows.
The dual package.json structure and conditional imports for NodeJS vs web libraries add complexity, requiring careful handling as detailed in the 'How to import 3rd party libraries' section.
Using ng-add for dependencies like Angular Material requires additional steps and reference to a HOW_TO file, indicating less seamless integration and potential setup headaches.