serlina

A progressive React serverside-rendering framework.

Motivation

I love using Next.js, but most of my projects need to use our own web server framework while Next.js run it own server. So I begin making a SSR framework (core) that like Next.js but open for server implementation. It does all the building, compiling, rendering-to-string things and give the rest render-to-html things to your own web server.

Of course I know Next.js can custom server and routing, but while Next.js handle the whole http context, I cannot use it in a high layer web framework.

Read the announcing post

Integrations

Quick Start

npm i serlina react react-dom --save

Create a folder structure like:

├── index.js
├── page
│   └── page1.js
// page/page1.js

export default () => {
  return <div>Hello Serlina!</div>
}

And implement a most simple http server:

// index.js

const { Serlina } = require('serlina')
const path = require('path')

const http = require('http')

const serlina = new Serlina({
  baseDir: path.resolve(__dirname, './')
})

serlina.prepare()
  .then(() => {
    http.createServer(async (req, res) => {
        res.writeHead(200, { 'Content-Type': 'text/html' })
        if (req.url === '/page1') {
          const rendered = await serlina.render('page1')
          res.write(rendered.string)
        } else {
          res.write('works!')
        }
        res.end()
    }).listen(8090)
  })
  .catch(console.error)

Open http://localhost:8090/page1, you will see the page you wrote in React!

Development

npm run bootstrap

npm test # run test

GitHub