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

authorship-notes

v0.3.0

Published

A dependency-free authorship-provenance widget for the open web.

Readme

Authorship Notes

Authorship Notes is an open format for explaining how humans and AI contributed to a work, and who takes responsibility for the result.

The reference implementation is a dependency-free Web Component. It makes no network requests, sets no cookies and requires no Authorship Notes account or registry.

Authorship Notes are self-declared. They are not a certification, an AI detector or proof that a declaration is true.

Project site · Build a note · Download the 0.3.0 starter bundle · Roadmap · Report an issue

Choose an installation path

npm

Install the exact release:

npm install [email protected]

Import it once in the JavaScript entry point used by article pages:

import "authorship-notes";

Canonical self-hosted installation

Download the readable widget from the immutable v0.3.0 release, save it in your own site assets and serve it from your domain:

curl -L \
  https://github.com/iarfhlaith/authorship-notes/releases/download/v0.3.0/authorship-notes.js \
  -o public/assets/authorship-notes.js
<script src="/assets/authorship-notes.js" defer></script>

Self-hosting is the canonical installation because it avoids a runtime dependency on GitHub, npm or an Authorship Notes service. The starter bundle contains the widget, schema, symbol, example record and a working HTML page.

See the installation guide for plain HTML, Astro, upgrades and Content Security Policy guidance.

Add a note

Place the record beside the byline of a work:

<authorship-note placement="below">
  <details>
    <summary>
      Authorship Note — Human-led · AI research and editorial support
    </summary>
    <p>
      I developed the argument and wrote the final article. AI supported
      research and editorial critique.
    </p>
  </details>
  <script type="application/json">
    {
      "work": {
        "title": "My article",
        "url": "https://example.com/my-article"
      },
      "mode": "Human-led",
      "summary": "AI research and editorial support",
      "statement": "I developed the argument and wrote the final article. AI supported research and editorial critique.",
      "contributions": [
        { "label": "Original idea", "value": "Human" },
        { "label": "Research", "value": "Human + AI" },
        { "label": "Writing", "value": "Human" },
        { "label": "Final responsibility", "value": "Human" }
      ],
      "author": "Your name",
      "assurance": "Self-declared",
      "specVersion": "0.1"
    }
  </script>
</authorship-note>

The compact badge opens a disclosure card on desktop and a bottom sheet on mobile. The native <details> remains useful if JavaScript is unavailable.

Create or import a record

The browser-based builder at iarfhlaith.com/authorship-notes#builder creates a live preview, validates specification 0.1 records, imports and revises JSON, and exports an individual record or complete self-hosting bundle. Form data stays in the browser.

Authorship modes

  • Human — generative AI made no material contribution.
  • Human-led — the human created the thesis, structure and substantial expression; AI provided support.
  • Collaborative — human and AI both materially shaped the work.
  • AI-drafted — a human directed and substantively edited a draft produced largely by AI.
  • AI-generated — AI produced most of the ideas, structure and text with limited human intervention.

These are descriptions, not quality grades. Use the mode selection guide and five complete examples when the boundary is unclear.

Documentation

Repository map

authorship-notes/
├── .github/         Tests and structured issue templates
├── assets/          Brand symbol
├── dist/            Readable and minified browser distributions
├── docs/            Guides, specification, principles and roadmap
├── examples/        Plain HTML and all-mode examples
├── schema/          JSON Schema for a note record
├── src/             Dependency-free Web Component source
├── starter/         Source files for the downloadable starter ZIP
└── tests/           Schema, security and browser tests

Development

The published widget has no runtime dependencies. Development uses Node 18 or newer:

npm install
npx playwright install chromium firefox
npm run test:all

CI adds the same suite on WebKit. Run it locally with npm run test:browser:all when the current Playwright WebKit build supports your operating system.

Create and inspect the npm payload:

npm pack --dry-run

The minified widget has an 18 kB size budget. The project targets current Chrome, Safari, Firefox and Edge and a WCAG 2.2 AA reader experience.

Events

The element emits:

  • authorship-note:open
  • authorship-note:close

Event details contain only the authorship mode and interaction state. The widget does not transmit record contents.

Versioning

Software releases use semantic versioning. Widget 0.3.x reads Authorship Notes Specification 0.1 records. The two versions change independently.

Use immutable release or npm versions in production. See the compatibility guide.

License

The reference implementation is available under the MIT License.