https://www.pdom.dev/ [yourf] Parallel DOM * How it works * [dis] Discord * [g] Github Get started Multiple DOM threads ? Yes! Make your apps faster, parallelize away heavy DOM operations. Get started [gi] View on Github Before Parallel DOM After Parallel DOM Easy to use Simple, intuitive API. Plug and Play for your existing code. Secure Your code always executes in a secure context inside a sandboxed iframe wrapper. Performance Dedicated CPU process for javascript and DOM manipulation. React components Run any React component in a parallel DOM. Pass props and callbacks as usual. How it works [how-it-wor] Self hosted You can host PDom on your own if you want to avoid using the `pdom.dev` domain for some reason. Deploy with Vercel Deploy with Vercel Your own infrastructure 1. `git clone https://github.com/pdomdev/pdom` 2. `cd pdom` 3. `npm i` 4. `npm run build` 5. Serve the `dist` folder with your own static server (like nginx). Or could use http-server 6. You could also do `npm start` to run a local developement server. FAQ * What are you talking about ? iFrames suck! iFrames were once insecure and often used for nefarious purposes. Browser makers have introduced many new security requirements as either defaults or even removed the older insecure ways entirely. The technology has advanced significantly. Some of the security features PDom uses to secure the iframes: Sandboxing: Sanboxed Iframes create a secure context with no access to the parent's context. In browser script injection: Your javascript is never hosted on PDom server. Its injected at runtime by your parent application to the frame. * Why not use Web Workers (or friends) instead of Iframes ? Web workers do not have access to DOM. They are great for CPU intensive tasks, but not for DOM manipulation. PDom uses a dedicated CPU process for javascript and DOM manipulation. Visualizing data, animations, interactive infographics all require access to the DOM. There have been efforts (like Worker DOM) to replicate DOM manipulation in web workers, but are complex and have limitations. * What browsers are currently supported ? Since we depend on the `Origin-Agent-Cluster` header being honored by the browser, we are currently limited to Chrome and Edge. The `Origin-Agent-Cluster` was designed in close collaboration with representatives from Mozilla Firefox who have marked it as worth prototyping, and has a preliminary positive reception from representatives of WebKit, the browser engine used by Safari. But in the meantime, there's no problem with deploying the Parallel-DOM to all your users today. Browsers which don't support it will just ignore it (and your site should still work as intended without perf benefits). And, since pages in origin-keyed agent clusters can actually do fewer things than site-keyed ones (the default), there's no interoperability issue to be worried about. Here is a web.dev article explaining Origin-Agent-Cluster in more detail. * This is great! But, I don't trust a third party domain (Think polyfill.io ...). Can I host this myself ? Absolutely! The whole thing is open source, and we have included documentation on how to host this yourself. We have also built a Vercel template for you to quickly deploy the service if you use Vercel. FWIW, you could use any static hosting provider, like github pages, netlify etc. As PDom does not really need a backend server, it's purely client. Made in California.