rendora - dynamic server-side rendering using headless Chrome to effortlessly solve the SEO problem for modern javascript websites

  •        17

Rendora can be seen as a reverse HTTP proxy server sitting between your backend server (e.g. Node.js/Express.js, Python/Django, etc...) and potentially your frontend proxy server (e.g. nginx, traefik, apache, etc...) or even directly to the outside world that does actually nothing but transporting requests and responses as they are except when it detects whitelisted requests according to the config. In that case, Rendora instructs a headless Chrome instance to request and render the corresponding page and then return the server-side rendered page back to the client (i.e. the frontend proxy server or the outside world). This simple functionality makes Rendora a powerful dynamic renderer without actually changing anything in both frontend and backend code. Dynamic rendering means that the server provides server-side rendered HTML to web crawlers such as GoogleBot and BingBot and at the same time provides the typical initial HTML to normal users in order to be rendered at the client side. Dynamic rendering is meant to improve SEO for websites written in modern javascript frameworks like React, Vue, Angular, etc...

https://github.com/rendora/rendora

Tags
Implementation
License
Platform

   




Related Projects

react-snap - ๐Ÿ‘ป Zero-configuration framework-agnostic static prerendering for SPAs

  •    Javascript

Pre-renders web app into static HTML. Uses headless chrome to crawl all available links starting from the root. Heavily inspired by prep and react-snapshot, but written from scratch. Uses best practices to get best loading performance. Zero configuration is the main feature. You do not need to worry how does it work or how to configure it. But if you are curious here are details.

rendertron - A dockerized, headless Chrome rendering solution

  •    Javascript

Rendertron is a dockerized, headless Chrome rendering solution designed to render & serialise web pages on the fly. Rendertron is designed to enable your Progressive Web App (PWA) to serve the correct content to any bot that doesn't render or execute JavaScript. Rendertron runs as a standalone HTTP server. Rendertron renders requested pages using Headless Chrome, auto-detecting when your PWA has completed loading and serializes the response back to the original request. To use Rendertron, your application configures middleware to determine whether to proxy a request to Rendertron. Rendertron is compatible with all client side technologies, including web components.

prep - Pre-renders your web app (React, Vue, Angular,

  •    Javascript

Pre-renders your web app into static HTML based on your specified routes enabling SEO for single page applications.NOTE: prep is now based on Chromeless. We'll shortly release an updated version.

prep - Pre-renders your web app (React, Vue, Angular,

  •    Javascript

Pre-renders your web app into static HTML based on your specified routes enabling SEO for single page applications. NOTE: prep is now based on Chromeless. We'll shortly release an updated version.


serverless-chrome - ๐ŸŒ Run headless Chrome/Chromium on AWS Lambda (maybe Azure, & GCP later)

  •    Javascript

Serverless Chrome contains everything you need to get started running headless Chrome on AWS Lambda (possibly Azure and GCP Functions soon). Why? Because it's neat. It also opens up interesting possibilities for using the Chrome DevTools Protocol (and tools like Chromeless or Puppeteer) in serverless architectures and doing testing/CI, web-scraping, pre-rendering, etc.

universal-router - A simple middleware-style router for isomorphic JavaScript web apps

  •    Javascript

A simple middleware-style router that can be used in both client-side (e.g. React, Vue.js) and server-side applications (e.g. Node.js/Express, Koa).Play with an example on JSFiddle, CodePen, JS Bin in your browser or try RunKit node.js playground.

headless-chrome-crawler - Distributed crawler powered by Headless Chrome

  •    Javascript

Crawlers based on simple requests to HTML files are generally fast. However, it sometimes ends up capturing empty bodies, especially when the websites are built on such modern frontend frameworks as AngularJS, React and Vue.js. Note: headless-chrome-crawler contains Puppeteer. During installation, it automatically downloads a recent version of Chromium. To skip the download, see Environment variables.

headless-devtools - Lets you perform Chrome DevTools actions from code by leveraging Headless Chrome+Puppeteer

  •    Javascript

Lets you perform Chrome DevTools actions from code by leveraging Headless Chrome+Puppeteer. Chrome DevTools is great for getting valuable information about your app ๐Ÿ•ต๏ธ‍โ™‚๏ธ. Using headless-devtools you can automate this process ๐Ÿค–. One use-case is to collect this data over time ๐Ÿ“ˆ, which can help you keep your app in good health ๐Ÿ‘ฉ‍โš•๏ธ.

isomorphic-flux-boilerplate - ES7 Isomorphic Flux/ReactJS Boilerplate

  •    Javascript

A wonderfull boilerplate for Flux/ReactJS universal applications, running on koajs. Koa will be our server for the server side rendering, we use alt for our Flux architecture and react-router for routing in our app.

react-router-server - Server Side Rendering library for React Router v4.

  •    Javascript

Server Side Rendering library for React Router v4. If anyone is interested in taking over this project please let me know.

prerender-spa-plugin - Prerenders static HTML in a single-page application.

  •    Javascript

Flexible, framework-agnostic static site generation for sites and SPAs built with webpack. ๐Ÿ‘‰ This is the stable 3.x version of prerender-spa-plugin based on puppeteer. If you're looking for the (now-deprecated) 2.x version, based on PhantomJS, take a look at the v2 branch.

prerender - Node server that uses Headless Chrome to render a javascript-rendered page as HTML

  •    Javascript

Prerender is a node server that uses Headless Chrome to render HTML, screenshots, PDFs, and HAR files out of any web page. The Prerender server listens for an http request, takes the URL and loads it in Headless Chrome, waits for the page to finish loading by waiting for the network to be idle, and then returns your content. The Prerender server can be used in conjunction with our Prerender.io middleware in order to serve the prerendered HTML of your javascript website to search engines (Google, Bing, etc) and social networks (Facebook, Twitter, etc) for SEO. We run the Prerender server at scale for SEO needs at https://prerender.io/.

loadable-components - React code splitting made easy โœ‚๏ธโœจ

  •    Javascript

React code splitting made easy. Reduce your bundle size without stress โœ‚๏ธโœจ. Webpack allows modern code splitting via the dynamic import syntax. Loadable Components makes it possible to use that awesome feature with React. It is compatible with react-router and server side rendering. The API is designed to be as simple as possible to avoid useless complexity and boilerplate.

puppeteer - Headless Chrome Node API

  •    Javascript

Puppeteer is a Node library which provides a high-level API to control headless Chrome or Chromium over the DevTools Protocol. It can also be configured to use full (non-headless) Chrome or Chromium. Note: When you install Puppeteer, it downloads a recent version of Chromium (~170Mb Mac, ~282Mb Linux, ~280Mb Win) that is guaranteed to work with the API. To skip the download, see Environment variables.

crate - ๐Ÿ‘•๐Ÿ‘–๐Ÿ“ฆ A sample web and mobile application built with Node, Express, React, React Native, Redux and GraphQL

  •    Javascript

๐Ÿ‘•๐Ÿ‘–๐Ÿ“ฆ A sample web and mobile application built with Node, Express, React, React Native, Redux and GraphQL. Very basic replica of stitchfix.com / krate.in (allows users to get monthly subscription of trendy clothes and accessories).