A progressive React server side rendering framework
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.
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