npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

elacca

v0.5.4

Published

<div align='center'> <br/> <br/> <br/> <h3>elacca</h3> <p>Improve your Next.js app cold start time and server load</p> <br/> <br/> </div>

Downloads

68

Readme

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