0.5.4 • Published 5 days ago

elacca v0.5.4

Weekly downloads
-
License
MIT
Repository
github
Last release
5 days ago

Reduce your Next.js app server code size by disabling SSR for specific pages.

Only works with pages, not app directory

Why

  • Improve cold start times in serverless environments
  • Improve rendering times, since the server no longer needs to render the page to html
  • Improve memory usage on the server (your pages no longer load React components code in memory)
  • Makes edge Vercel deploy possible if your current bundle size is more than 2Mb compressed
  • When SSR is not very useful, for example when making dashboards, where SEO is not important

Install

npm i -D elacca

Usage

Full application example in the example-app folder.

// next.config.js
const { withElacca } = require('elacca')

/** @type {import('next').NextConfig} */
const config = {}

const elacca = withElacca({})

const nextConfig = elacca(config) // notice the double invocation

module.exports = nextConfig

When using the pages directory, you can add a directive to disable SSR for a specific page:

// pages/index.js
'skip ssr'

export default function Home() {
    return <div>hello world</div>
}

How It Works

To have an intuitive understanding of how this works, you can check out how this plugin transforms pages in the example-app/elacca-outputs folder.

  • When a page has a "skip ssr" directive, this plugin will transform the page code
  • On the server the page renders a component that returns null
  • On the client the page renders null until the component mounts, removing the need to hydrate the page
  • This is implemented as a babel plugin that only runs on pages files, so your build should remain fast (all other files are not parsed by babel, usually the code inside the pages folder is not much)

Why The Name

From the Dune wiki:

The Elacca drug is a narcotic that was formed by the burning of Elacca Wood of the planet Ecaz. Its main characteristic when administered was that it would eliminate the user's will for self-preservation

0.5.4

5 days ago

0.5.3

1 month ago

0.5.0

2 months ago

0.4.1

2 months ago

0.4.0

2 months ago

0.5.2

2 months ago

0.5.1

2 months ago

0.3.4

8 months ago

0.3.3

8 months ago

0.3.2

8 months ago

0.3.1

8 months ago

0.3.0

8 months ago

0.2.1

8 months ago

0.2.0

9 months ago

0.1.1

9 months ago

0.1.0

9 months ago

0.0.2

9 months ago

0.0.1

9 months ago