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

next-og-image

v2.0.0

Published

Generate Open Graph protocol images using Next.js and React components.

Downloads

39

Readme

Next OG Image

Generate Open Graph protocol images for your website using Next.js and React components.

Inspired by Vercel's Open Graph image service 🙂.

Usage

1. Install the next-og-image package

npm install next-og-image

2. Create a Next.js API route

The API route will generate and serve Open Graph images.

It can be placed in any directory inside of pages/api, but it must be named [...path].ts.

For example:

pages/api/og-image/[...path].ts

Learn more about Next.js API routes and catch-all routes.

4. Initialise Next OG Image

Place the following code inside of the [...path].ts API route:

import { createHandler } from 'next-og-image'
const ogImageHandler = createHandler()
export default ogImageHandler

The createHandler function returns a Next.js API handler function.

5. Create a page to render an OG image

Next OG Image converts any Next.js page to a PNG image suitable for use as an Open Graph image.

You can create a Next.js page at any location to render an OG image.

You may want to tell search engines not to index the page, because it's not particularly useful beyond rendering an OG image.

The image generated is 2048x1260 pixels. You may need to make the contents of you page larger than you'd expect. On my website, I have used the zoom property to quickly and easily scale up my design system components.

Here is an example from my personal site: https://ash.gd/this-is-my-jam/28252440-993a-4096-9f7b-9588ff4374ac/og-image.

The PNG version can be accessed at: https://og-image.ash.gd/api/this-is-my-jam/28252440-993a-4096-9f7b-9588ff4374ac/og-image.png.

6. Link to an OG image

Use the following URL structure to link to an OG image:

[url]/api/[apiRoute]/[ogPath].png

| Token | Description | Example | | -------- | --------------------------- | ------------------------------------------------------------ | | url | Website URL. | https://ash.gd | | apiRoute | Path to OG image API route. | og-image | | ogPath | Path to OG image page. | this-is-my-jam/28252440-993a-4096-9f7b-9588ff4374ac/og-image |

For example: https://og-image.ash.gd/api/this-is-my-jam/28252440-993a-4096-9f7b-9588ff4374ac/og-image.png.

Image size

The generated image is 1200x600 pixels, adhering to the 2:1 aspect ratio of Twitter's summary card with large image format.

If you have different requirements for the image size, please comment on #11.

Passing props to the source page

You can use query parameters to customise the source page. Any query parameters included in the request are passed through to the source page, where you can access them using a Next.js data fetching function, or the Next.js router.

Environment variables

Next OG Image must know your website URL in order to load a page to snapshot.

If you deploy to Vercel, this will be handled automatically using the VERCEL_URL environment variable.

If you do not deploy to Vercel, are testing locally, or want to override the URL, you can do so by setting the OG_IMAGE_BASE_URL environment variable.

| Name | Description | Required | | --------------------------------- | -------------------------------------------------------------------------------------------------------------------- | -------- | | OG_IMAGE_BASE_URL | Base URL used to load source pages. If deployed to Vercel, the VERCEL_URL environment variable is used by default. | No | | OG_IMAGE_CHROME_EXECUTABLE_PATH | Path to Chrome. Not required when deployed to Vercel, AWS, or GCP. | No |

Caching

Generated images are cached by the CDN and the client for one year.

Running outside of Vercel, AWS, or GCP

To run Next OG Image outside of Vercel, AWS, or GCP, set the OG_IMAGE_CHROME_EXECUTABLE_PATH environment variable.

For example, on macOS: /Applications/Google Chrome.app/Contents/MacOS/Google Chrome.