whatisgithub

What is hypernova?

airbnb/hypernova — explained in plain English

Analysis updated 2026-06-26

5,794JavaScriptAudience · developerComplexity · 4/5Setup · hard

In one sentence

Archived Airbnb tool that lets a Ruby or Python backend server render React components on the server by sending requests to a small Node.js sidecar, giving faster page loads without rewriting your backend in Node.

Mindmap

mindmap
  root((Hypernova))
    What it does
      SSR sidecar service
      React from non-Node
      HTML before JS loads
    How it works
      Backend sends request
      Node renders component
      HTML returned inline
      Client hydrates
    Tech Stack
      Node.js sidecar
      React components
      hypernova-ruby gem
    Status
      Archived by Airbnb
      No longer maintained
      Fork for new use
Click or tap to explore — scroll the page freely

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

What do people build with it?

USE CASE 1

Add server-side React rendering to a Ruby on Rails app without migrating the backend to Node.js

USE CASE 2

Serve pre-rendered HTML to users for faster first-page loads and better search engine indexing

USE CASE 3

Study the sidecar SSR architecture pattern as a reference for building similar systems in other tech stacks

USE CASE 4

Use the fallback mechanism to safely degrade to client-side rendering if the Hypernova service is unavailable

What is it built with?

JavaScriptNode.jsReactRuby

How does it compare?

airbnb/hypernovaangular-app/angular-appdocumentationjs/documentation
Stars5,7945,7975,798
LanguageJavaScriptJavaScriptJavaScript
Setup difficultyhardhardeasy
Complexity4/53/52/5
Audiencedeveloperdeveloperdeveloper

Figures from each repo's GitHub metadata at analysis time.

How do you get it running?

Difficulty · hard Time to first run · 1h+

Requires running both your main backend server and a separate Node.js Hypernova service, then wiring them together with the language-specific client library.

So what is it?

Hypernova is an archived project from Airbnb that solved a specific problem: they had a backend server written in a language like Ruby or Python, and they wanted to render React components on the server before sending HTML to the browser, but Node.js was the only runtime that could actually execute React code. Hypernova solved this by running a small Node.js service as a sidecar, which the main server could send requests to whenever it needed a React component rendered to HTML. The way it works is that your main application server collects the data needed for a page, then sends an HTTP request to the Hypernova service with that data and the name of the component to render. Hypernova executes the JavaScript, produces an HTML string, and sends it back. The main server then embeds that HTML in the full page response. When the page reaches the browser, the JavaScript picks up where the server left off and makes the page interactive. This approach gives users faster page loads and better accessibility because the content is present in the HTML from the start, rather than being assembled in the browser after JavaScript loads. It also avoids the problem of maintaining two separate template systems, one for the server language and one for JavaScript. Hypernova includes client libraries for different server languages. The README shows examples using Ruby on Rails with the hypernova-ruby gem and React with the hypernova-react package. If the Hypernova service goes down or fails to render a component, the client libraries fall back to client-side rendering so the page still works. Note: Airbnb has archived this repository and is no longer maintaining it, as they no longer use this approach internally. The code remains available for reference or forking.

Copy-paste prompts

Prompt 1
Show me how to wire up Hypernova with a Ruby on Rails app so that a React component gets rendered on the server and the resulting HTML is embedded in the Rails layout
Prompt 2
How does Hypernova handle the handoff from server-rendered HTML to client-side JavaScript interactivity? Walk me through the hydration step
Prompt 3
Set up a minimal Hypernova Node.js service that accepts render requests for a single React component and returns the HTML string
Prompt 4
What happens in Hypernova when the rendering service goes down or times out? Show me how the fallback to client-side rendering works
Prompt 5
Explain the data flow in a Hypernova setup: from when the Rails controller has the data to when the final HTML page is sent to the user

Frequently asked questions

What is hypernova?

Archived Airbnb tool that lets a Ruby or Python backend server render React components on the server by sending requests to a small Node.js sidecar, giving faster page loads without rewriting your backend in Node.

What language is hypernova written in?

Mainly JavaScript. The stack also includes JavaScript, Node.js, React.

How hard is hypernova to set up?

Setup difficulty is rated hard, with roughly 1h+ to a first successful run.

Who is hypernova for?

Mainly developer.

Open on GitHub → Ask about another repo

This repo across BitVibe Labs

Verify against the repo before relying on details.