This project enables remote web browsing by reconstructing the DOM tree and rendering pages on the client side. It can be used for RBI (Remote Browser Isolation) scenarios or other cloud-based rendering applications.
The project is currently at an early scaffolding stage. It can render basic pages and handle simple click interactions, but many core features are still under development.
If you are interested, you can run and develop the project by following the instructions below.
The project is built with Node.js and Electron, and is divided into three main components:
-
model
Shared models used for communication between the local and remote sides. -
local
The local client responsible for rendering the reconstructed DOM and handling user interactions. -
remote
The remote client responsible for loading pages, extracting DOM information, and sending it to the local side.
model <----> local
\ /
\ /
------ remote
- Remote page loading and DOM extraction
- DOM tree reconstruction on the local client
- Basic page rendering
- Basic click event handling
⚠️ Many advanced features (input handling, scrolling, media, etc.) are still under development.
- Node.js (recommended: LTS version)
- npm
- Electron-compatible environment
npm run devnpm run devMake sure to start both local and remote services for the project to work correctly.
This project is currently in a proof-of-concept / scaffolding phase. The main focus is validating the feasibility of DOM-based remote rendering.
Planned improvements include:
- Complete DOM diff & sync mechanism
- CSS and layout accuracy improvements
- Scroll, keyboard, and advanced input support
- Media (audio/video) handling
- Performance optimizations
- Security hardening for RBI scenarios
- Remote Browser Isolation (RBI)
- Secure browsing environments
- Cloud-rendered web applications
- Experimental browser architecture research
Contributions, ideas, and discussions are welcome. Feel free to experiment, open issues, or submit pull requests.
MIT