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

@rmdes/indiekit-post-type-page

v1.0.5

Published

Page post type for Indiekit - creates root-level slash pages like /about, /now, /uses

Readme

@rmdes/indiekit-post-type-page

Page post type for Indiekit. Creates root-level "slash pages" like /about, /now, /uses, /colophon.

What It Does

Enables creating static pages (as opposed to dated blog posts) that live at root-level paths. Pages don't have dates in their URLs and are stored separately from posts.

Example:

  • Standard post: /articles/2026/02/13/my-article/
  • Page: /about/

Perfect for:

  • /about - Who you are
  • /now - What you're doing now (nownownow.com)
  • /uses - Tools and gear you use (uses.tech)
  • /colophon - How your site is built
  • /contact - How to reach you

See slashpages.net for more ideas.

Installation

npm install @rmdes/indiekit-post-type-page

Usage

Add to your Indiekit configuration:

export default {
  plugins: [
    "@rmdes/indiekit-post-type-page",
    // ... other plugins
  ],
};

IMPORTANT: Load this plugin BEFORE the preset plugin:

plugins: [
  // Post types FIRST
  "@indiekit/post-type-article",
  "@indiekit/post-type-note",
  "@rmdes/indiekit-post-type-page",

  // Preset AFTER
  "@rmdes/indiekit-preset-eleventy",
],

Creating Pages

Via Admin UI

  1. Log in to Indiekit admin
  2. Click "New page" (or navigate to /create?type=page)
  3. Fill in title and content
  4. Set slug (e.g., about for /about)
  5. Publish

Via Micropub

Include category[]=page in your Micropub request:

POST /micropub
Content-Type: application/x-www-form-urlencoded

h=entry
&name=About
&content=This is my about page.
&mp-slug=about
&category[]=page

Or use a Micropub client that supports custom post types.

Configuration

Default Behavior

Pages are stored at pages/{slug}.md and generate URLs at /{slug}.

// Default configuration (with @rmdes/indiekit-preset-eleventy)
post: {
  path: "pages/{slug}.md",     // File: content/pages/about.md
  url: "{slug}",               // URL: /about
}

Custom Paths

Override defaults if needed:

export default {
  plugins: ["@rmdes/indiekit-post-type-page"],

  "@rmdes/indiekit-post-type-page": {
    post: {
      path: "static/{slug}.md",    // Custom file path
      url: "pages/{slug}",          // Custom URL path
    },
  },
};

How It Works

  1. Post Type Detection: When creating a post, Indiekit checks if properties.type === "page" or category includes "page"
  2. File Storage: The post is saved to content/pages/{slug}.md (when using the Eleventy preset)
  3. URL Generation: Eleventy builds the page at /content/pages/{slug}/ (from the file path)
  4. Web Serving: The static HTML is served at /{slug} (via nginx rewrites or direct Eleventy output)

Fields

Pages support the following fields:

| Field | Required | Description | |-------|----------|-------------| | name | Yes | Page title (e.g., "About", "Now") | | content | Yes | Page content (Markdown or HTML) | | summary | No | Page description (for meta tags) | | category | No | Categories/tags | | post-status | No | draft or published | | visibility | No | public, unlisted, or private |

Compatible Presets

This plugin works with:

  • @rmdes/indiekit-preset-eleventy (recommended, includes special handling for pages)
  • @indiekit/preset-eleventy (base preset)
  • @indiekit/preset-hugo
  • @indiekit/preset-jekyll

When using @rmdes/indiekit-preset-eleventy, pages are automatically stored in pages/ directory and configured with the correct layout.

License

MIT