Desktop application with multiple real-time synchronized windows
GitHub Repository
This project demonstrates how to create a modern Electron application with React, TypeScript, and Vite, allowing multiple windows synchronized via IPC. Perfect for those who want to expand the desktop experience beyond a single window!
- Main Window: Enter data and open new windows.
- Secondary Windows: Display and synchronize data in real time.
- Instant Synchronization: Efficient communication between all windows.
- Modern Interface: Responsive and intuitive UI.
- Electron
- React
- TypeScript
- Vite
- Bun (alternative package manager/runtime)
# Clone the repository
git clone https://github.com/Tatiwel/electron-multi-window.git
# Enter the project folder
cd electron-multi-window
# Install dependencies
bun install
# Run in development mode
bun run dev
# Clone the repository
git clone https://github.com/Tatiwel/electron-multi-window.git
# Enter the project folder
cd electron-multi-window
# Install dependencies
npm install
# Run in development mode
npm run dev
electron-multi-window/
├── electron/ # Electron main process code (main/preload)
├── src/
│ ├── pages/ # React components (App, NewWindow)
│ └── assets/ # Styles and icons
├── public/ # Public assets
├── demo/ # GIFs and demos
├── dist-electron/ # Electron build
├── index.html # Main HTML
├── newwindow.html # Secondary window HTML
├── package.json # Configurations and scripts
└── ...
Synchronized Windows: This project consists of creating multiple synchronized windows using Electron, React, TypeScript, and Vite. Each window can interact and share data in real time, providing a seamless multi-window desktop experience. The application is designed to allow users to open, manage, and synchronize several windows simultaneously, removing the limitation of working with only a single window.
Window Index Management: A robust window index management system is implemented to ensure that each window is correctly referenced. This prevents issues such as actions being executed on non-existent windows or overwriting indices of closed windows. With this approach, any update or action is always directed to the correct window, maintaining data integrity and a smooth user experience.
Developed by Daniel (Tatiwel)
This project is licensed under the ISC license. See the package.json file for more details.
If you are interested in the same synchronized multi-window logic implemented using pure Electron (JavaScript only, no frameworks), check out the dedicated branch:
👉 pure-electron branch on GitHub
This branch demonstrates the core synchronization logic without React, TypeScript, or Vite, for those who prefer a minimal and framework-free approach.