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

@m0saic/community-m

v0.2.0

Published

The Community M — one tile per contributor. Authoring home + bundled seed of the public community-m repository.

Readme

Community M

The m0saic brand mark is 33 tiles. Each one belongs to a person who helped build the m0saic ecosystem: your first accepted community template earns you a tile, forever.

This repository is the Community M. Every tile is a folder, every claim is a pull request, and the m0saic app reads this repo directly, so a merged PR shows up in Mosaic Desktop and inside other people's renders without waiting for an app release.

index.json                     ← generated manifest (the app reads this)
geometry/m-33.m0c              ← the M itself, in m0saic's own format (immutable)
ms/001/                        ← Community M #001 — the Genesis M
  m.json                       ← title, curator, accent, opened/completed
  community-m-001.m0p          ← generated pack: one variant per tile, open it in Mosaic Desktop
  root/                        ← the ROOT award (M #001: the founder) — see below
  slots/NN/                    ← contributor claim #NN (dealt by the scatter)
    slot.json                  ← who, when, which contribution
    slot.m0c                   ← the M with *your* tile labelled — open it in Layout
    tile.png                   ← your square identity mark
    piece.mosaic               ← your short piece (plays after the zoom-in)
    assets/                    ← media your piece references
ms/002/                        ← locked until #001 fills
tools/                         ← zero-dependency node scripts (validate, assemble, new-slot)

How tiles are assigned

Tiles are not chosen; they are dealt. The next claim always lands on the open tile farthest from every claimed tile (farthest-first scatter), so the M looks alive at every fill level instead of filling one region first. Claim order is precomputed into index.json and verified by CI.

  • The scatter runs over the 32 contributor tiles, anchored on the root: claim #1 lands in a top corner, #2 in the opposite corner, and so on inward. The order is the same for every M.
  • The root (the V-tip) is never dealt — see "The root tile" below.

One person, one tile. Later templates earn attribution and Pro credit, not another tile. An M is complete when its 32 contributor tiles are claimed; completed Ms are frozen.

The root tile

The tile at the bottom of the M — the V-tip, where the eye settles — is the root. It is never dealt. Every M's 32 other tiles record participation ("I contributed something accepted"); the root records distinction: it is awarded to a contribution the community recognizes as unusually important — a template that becomes a de facto standard, that materially expands what people can do with m0saic, or that the community elevates. It is the only way to a second tile, and there is no limit to how many roots one person can earn — but only by award, never by claim or by timing. An M may complete with its root still reserved; the award can come later and finish the mark.

Root tiles across Ms form a canon: check the root of each M and you find the work the community chose to stand where the founder stood. M #001's root is the founder — m0saic itself is the first contribution. The award's criteria and process are deliberately unpublished; they will be decided with the community as it forms (maintainer selection, nomination, voting, usage signal…). Contributors cannot claim a root; awards land as ms/<id>/root/.

Each M records when it opened and when it completed (m.json): M #001 opened on the genesis epoch, 2026-04-15; every later M opens the moment the previous one completes. completedAt is stamped from the 33rd claim and never moves afterwards, even if tiles are edited later — so the manifest keeps an honest record of how quickly each M filled.

Provenance

Tile art and pieces are referenced by path, never embedded: the PNG on disk is the artifact (viewable, diffable, hashable), and slot.json pins its SHA-256 so the claim record points at exact bytes. A later edit is an explicit re-pin in the record, not silent drift. When an M completes it is frozen; a one-time archival pack with the images embedded can then be minted as a self-contained monument file.

Claim a tile

See CONTRIBUTING.md. Short version: get a community template accepted, then open a PR here that adds one folder under ms/<current>/slots/.

Where it shows up

  • Mosaic Desktop → Community — the current M, the contributor list (oldest first), and every completed M.
  • Render Hero — while a render runs, the M fills in; sometimes it is a Community M, with your tile and your GitHub link.
  • @m0saic/brand/community-m/v1 — a core template that renders your provenance video: the M, a zoom into your tile, then your piece.

Tools

node tools/validate.mjs            # every rule CI enforces
node tools/assemble.mjs            # regenerate index.json + the .m0p packs
node tools/assemble.mjs --check    # CI mode: fail if generated files are stale
node tools/new-slot.mjs --m 001 --handle octocat --name "Mona" --url https://github.com/octocat
node tools/claim-order.mjs 001     # print the claim order for an M