react-snap | prerender-spa-plugin | react-snapshot | prep | snapshotify | |
---|---|---|---|---|---|
State | supported | supported | unsupported | unsupported | experimental |
DOM implementation | puppeteer | phantomjs-prebuilt | jsdom | nightmare | puppeteer |
Doesn't depend on Webpack | + | - | + | + | + |
Doesn't depend on React | + | + | - | + | + |
Load performance optimisation | + | - | - | - | + |
Zero-configuration | + | - | + | - | + |
Redux | + | - | + | - | - |
Async components | + | - | - | - | + |
Webpack code splitting | + | + | - | - | + |
CSSStyleSheet.insertRule |
+ | - | - | - | + |
blob urls | + | ? | - | - | - |
All browser features | + | - | - | ? | + |
- Load performance optimisation - something beyond rendering HTML, like critical CSS
- Zero-configuration - provides sensible defaults
- Redux - can save state at the end of rendering
- async components - can save state of async components to prevent flash on the client side
insertRule
- Works with CSS-in-JS solutions which useCSSStyleSheet.insertRule
- blob urls - removes blob urls from generated HTML
- presite, taki (jsdom, chromy (chrome-remote-interface, chrome-launcher))
- prerenderer, experimental, jsdom, cheerio, chrome-remote-interface
- prerender-chrome-headless, puppeteer
- chrome-render, chrome-pool (chrome-remote-interface, chrome-runner)
- react-prerender, react, cheerio
- simple-react-prerender, react, jsdom, mock-browser, isomorphic-fetch
- vue-prerender, experimental, vue, puppeteer
- prerender-seo, phantomjs-prebuilt
- puppeteer-prerender, puppeteer, request
- puppeteer-prerenderer, puppeteer
- pre-render, chrome-remote-interface, chrome-launcher, lighthouse-logger
- prerender-plugin, webpack, puppeteer
- webpack-static-site-generator, nightmare, xvfb
- junctions-static, jsdom, react
- rendertron, chrome-remote-interface, chrome-launcher
- prerender, chrome-remote-interface
- puppetron, puppeteer
- pupperender, puppeteer
- spiderable-middleware, request
- React on Rails, SSR of React on top of Ruby on Rails
- usus, chrome-remote-interface, chrome-launcher
- hypernova
- static-site-generator-webpack-plugin, webpack
- Sitepack: A toolkit for building lazymorphic applications
- chromeless, chrome-launcher, chrome-remote-interface
- razzle, react
- next.js, react
- nuxtjs, vue
- Create React App Universal CLI, react