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 🙏

© 2026 – Pkg Stats / Ryan Hefner

eleventy-plugin-standard-site

v1.0.0

Published

11ty plugin to generate and publish Standard.site records on your AT Protocol PDS for your site.

Readme

eleventy-plugin-standard-site

11ty plugin to generate and publish Standard.site records on your AT Protocol PDS for your site.

Installation

This project supports Node.js 18 and later. You can install the plugin from npm:

npm install eleventy-plugin-standard-site

You can view package details on npmjs.com or npmx.dev.

Usage

Add the plugin to your Eleventy configuration file, e.g.:

import pluginStandardSite from "eleventy-plugin-standard-site";

export default function (eleventyConfig) {
  eleventyConfig.addPlugin(pluginStandardSite, {
    // Publication details for your site
    publicationName: "My Site",
    publicationUrl: "https://example.com",
    // You can use your ATProto DID or handle
    identifier: "did:plc:abc123",
    // Please use an app-password!
    password: "app-password-xyz",

    // Optional: brief description of the publication
    publicationDescription: "A blog where I write about my life!",
    // Optional: whether to automatically extract text content from posts
    // and include in their document records, defaults to true
    includeTextContent: true,
    // Optional: whether the publication should appear in discovery feeds, defaults to true
    showInDiscover: true,
    // Optional: PDS URL, defaults to "https://bsky.social"
    pds: "https://bsky.social",
    // Optional: path to an icon image file to be used in the publication record
    publicationIconPath: "./path/to/icon/image.jpg",
    // Optional: theme definition for the publication; if set, must include all colors
    themeColors: {
      bg: { r: 255, g: 255, b: 255 },
      fg: { r: 31, g: 41, b: 55 },
      accent: { r: 59, g: 130, b: 246 },
      accentFg: { r: 255, g: 255, b: 255 }
    }
  });
}

The plugin will get triggered on build time after Eleventy has generated the output files, and will integrate your website with Standard.site lexicons as follows:

  • One site.standard.publication record will be created (or updated) for the site as a whole, containing the publication metadata you provided in the plugin options.
  • The .well-known/site.standard.publication endpoint will be created in your output directory, verifying the publication record's AT URI.
  • Each generated HTML page will get a <link rel="site.standard.publication" ... /> tag in its <head>, pointing to the publication record URI.
  • One site.standard.document record will be created (or updated) for each page whose front matter sets standardSiteDocument: true, containing page metadata and a reference to the page URL.
  • Each generated HTML page published as a site.standard.document will get a <link rel="site.standard.document" ... /> tag in its <head>, pointing to the document record URI.

Metadata for documents will be taken from the page's front matter. The example below lists all supported fields:

---
# Required
title: "My First Post"
date: 2026-06-20
standardSiteDocument: true

# Optional
description: "This is the description of my first post."
bskyPostRef: "at://did:plc:abc123/app.bsky.feed.post/def456"
coverImagePath: "./path/to/cover/image.jpg"
---

The date field is used as the publishedAt value for the document record. You can refer to Eleventy documentation on content dates for alternatives.

The textContent field of the document record is automatically derived from the page's rendered HTML output (with tags stripped), unless includeTextContent is set to false on the plugin config.

Additionally, after publishing, a generated document page will include the following two link tags (and any other HTML page will include the first one):

<link rel="site.standard.publication" href="at://did:plc:yourDID/site.standard.publication/rkey" />
<link rel="site.standard.document" href="at://did:plc:yourDID/site.standard.document/rkey" />

Contributing

To set up the development environment, clone the repository and install dependencies with npm install. Development environment requires Node.js 22 or later.

Pull requests are welcome! For major changes, please open an issue first to discuss what you would like to change.

Please make sure to update tests as appropriate.

License

This project is licensed under the MIT License. See the LICENSE file for details.