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 🙏

© 2025 – Pkg Stats / Ryan Hefner

penmark-cms

v1.0.0

Published

A package to enable a CMS embedded within your website

Readme

Penmark 📝🐧

A lightweight CMS you can embed directly into your Markdown-based, Github-backed website/blog. No need to switch between multiple websites, your website/blog is the only place you need.

  • Open source 🙌
  • No tracking/ads 📡🚫
  • WYSIWYG or Markdown support M⬇✍
  • Own your data: drafts are stored in your repo 📝

This package is a set of 3 components that allow you to enable this CMS experience:

  • Login: used to login to get GitHub credentials
  • Drafts: used to create & edit drafts (stored in your own GitHub repo)
  • Edit: used to edit existing blog posts

Getting started

Here is how to import these 3 components:

  1. Login Component:
    1. Add a hidden page of your blog (for instance, /login). This is intended to be only used by the editor of the blog, not readers of the blog. Anybody accessing this page will see the login buttons.
    2. Add the following script to the body:
      <script type="module" src="https://cdn.jsdelivr.net/npm/[email protected]/dist/LoginClient.js"></script>
  2. Drafts Component:
    1. In your home page of your website, add the following script:
      <script type="module" src="https://cdn.jsdelivr.net/npm/[email protected]/dist/DraftsClient.js"></script>
    2. This will only be visible when you are logged in, and only GitHub users who have contributor access to the underlying repository will be able to see the drafts.
  3. Edit Component:
    1. In each page of your individual blog post, add the following script:
      <script type="module" src="https://cdn.jsdelivr.net/npm/[email protected]/dist/PostClient.js"></script>
    2. This will add an edit button only for logged in users.

Inspired by utterances.