PHPackages                             wayfair/hypernova-php - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [API Development](/categories/api)
4. /
5. wayfair/hypernova-php

ActiveLibrary[API Development](/categories/api)

wayfair/hypernova-php
=====================

A PHP client for hypernova. https://github.com/airbnb/hypernova

v2.2.0(3y ago)76183.2k↓50%21[4 PRs](https://github.com/wayfair/hypernova-php/pulls)1BSD-2-ClausePHPPHP &gt;=5.6.0CI failing

Since Jan 20Pushed 2mo ago9 watchersCompare

[ Source](https://github.com/wayfair/hypernova-php)[ Packagist](https://packagist.org/packages/wayfair/hypernova-php)[ RSS](/packages/wayfair-hypernova-php/feed)WikiDiscussions master Synced 1mo ago

READMEChangelog (10)Dependencies (3)Versions (13)Used By (1)

Hypernova-PHP [![Build Status](https://camo.githubusercontent.com/8555f7b057921a5e41c3dd36c8e051e35cc8e105e792c5d708a9868e37098b6b/68747470733a2f2f7472617669732d63692e6f72672f776179666169722f68797065726e6f76612d7068702e7376673f6272616e63683d6d6173746572)](https://travis-ci.org/wayfair/hypernova-php)
============================================================================================================================================================================================================================================================================================================

[](#hypernova-php-)

> PHP client for your [Hypernova service](https://github.com/airbnb/hypernova).

Why Hypernova?
--------------

[](#why-hypernova)

The broader question tends to be "how do I Server-Side Render my React app?" You may have this as a business requirement (e.g. SEO) or just want to give users the fastest initial render possible.

Assuming you have a PHP backend (why are you here, otherwise?), generally you will want to stand up a node.js service to do the rendering for you. You could *try* [phpv8js](https://github.com/phpv8/v8js) but I believe it is contraindicated for production use at any scale. That's just my opinion, do your own research 😁

So then - write your own node.js service, or use one off the shelf. Writing your own node.js service isn't terrifically hard - you could reasonably stand up a thing that would render react components for you in ~20 lines of code. We personally went with hypernova because it's lightweight, pluggable (see the plugin system), performant (see the clever bytecode caching in `createVM`), and has nice client-side fallback behavior in case the service has issues.

Getting Started
---------------

[](#getting-started)

`composer require wayfair/hypernova-php`

Make a `Renderer`:

```
use \WF\Hypernova\Renderer;

$renderer = new Renderer('http://localhost:3030/batch');

```

Give it some work:

```
$renderer->addJob('myViewId', ['name' => 'my_module_name', 'data' => ['some' => ['props']]]);

```

Optionally add a plugin or two (see plugin section):

```
$renderer->addPlugin($myPlugin);
$renderer->addPlugin($myOtherPlugin);

```

Then go get your rendered `Response`:

```
$response = $renderer->render();

echo $response->results['myViewId']->html;

```

Plugin API
----------

[](#plugin-api)

This is how you customize client behavior. Common usecases include:

- Logging request metadata like performance timings
- Error logging
- Injecting/removing props
- Inlining stack traces in development environments
- Stopping requests to the service entirely, letting everything fall back to client rendering

Generally, you will want to implement some subset of the lifecycle hooks; maybe you want `onError` handling but have no need for `shouldSendRequest`. For developer convenience, you may extend `\WF\Hypernova\Plugin\BasePlugin` which provides no-op implementations of all of the hooks.

See the [js client docs](https://github.com/airbnb/hypernova-node#plugin-lifecycle-api) for full descriptions of the available hooks.

#### Contributing:

[](#contributing)

Fork it, submit a PR.

#### Run tests:

[](#run-tests)

`composer test`

###  Health Score

51

—

FairBetter than 96% of packages

Maintenance56

Moderate activity, may be stable

Popularity45

Moderate usage in the ecosystem

Community24

Small or concentrated contributor base

Maturity65

Established project with proven stability

 Bus Factor2

2 contributors hold 50%+ of commits

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~288 days

Recently: every ~404 days

Total

8

Last Release

1389d ago

Major Versions

v1.2 → v2.02018-02-23

### Community

Maintainers

![](https://www.gravatar.com/avatar/4c2e8c1cfc55cac374115601d2b17d45cee11e99e2be800d0691d22e067d339d?d=identicon)[roippi](/maintainers/roippi)

---

Top Contributors

[![pardeep26k](https://avatars.githubusercontent.com/u/6321958?v=4)](https://github.com/pardeep26k "pardeep26k (16 commits)")[![roippi](https://avatars.githubusercontent.com/u/4590638?v=4)](https://github.com/roippi "roippi (12 commits)")[![andrewrota](https://avatars.githubusercontent.com/u/718017?v=4)](https://github.com/andrewrota "andrewrota (4 commits)")[![ballercat](https://avatars.githubusercontent.com/u/743990?v=4)](https://github.com/ballercat "ballercat (2 commits)")[![sumanas27](https://avatars.githubusercontent.com/u/34478920?v=4)](https://github.com/sumanas27 "sumanas27 (1 commits)")[![dependabot[bot]](https://avatars.githubusercontent.com/in/29110?v=4)](https://github.com/dependabot[bot] "dependabot[bot] (1 commits)")[![JasonTolliver](https://avatars.githubusercontent.com/u/346273?v=4)](https://github.com/JasonTolliver "JasonTolliver (1 commits)")[![morganpackard](https://avatars.githubusercontent.com/u/1010021?v=4)](https://github.com/morganpackard "morganpackard (1 commits)")

---

Tags

hacktoberfesthypernovahypernova-phpreactreacthypernovawayfair

###  Code Quality

TestsPHPUnit

### Embed Badge

![Health badge](/badges/wayfair-hypernova-php/health.svg)

```
[![Health](https://phpackages.com/badges/wayfair-hypernova-php/health.svg)](https://phpackages.com/packages/wayfair-hypernova-php)
```

###  Alternatives

[sylius/sylius

E-Commerce platform for PHP, based on Symfony framework.

8.4k5.6M651](/packages/sylius-sylius)[wheelpros/fitment-platform-api

Magento 2 (Open Source)

12.1k1.2k](/packages/wheelpros-fitment-platform-api)[tencentcloud/tencentcloud-sdk-php

TencentCloudApi php sdk

3731.2M42](/packages/tencentcloud-tencentcloud-sdk-php)[commercetools/commercetools-sdk

The official PHP SDK for the commercetools Composable Commerce APIs

19281.5k](/packages/commercetools-commercetools-sdk)[exinone/mixin-sdk-php

Mixin-Network SDK for PHP, modify from ExinOne/laravel-mixin-sdk

242.5k4](/packages/exinone-mixin-sdk-php)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
