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

@10x-media/content-lock

v0.1.0-beta.2

Published

Planned and unplanned maintenance windows that freeze Payload content: 503 on every write channel, read-only admin, localized banners.

Readme

Banner

@10x-media/content-lock

Planned and unplanned maintenance windows for Payload v3. While a window is active, every write to the frozen collections and globals is rejected with a 503 on every channel, the admin turns read-only, and a banner tells editors why and until when.

npm

Part of the @10x-media Payload plugins collection. In beta: published under the beta dist-tag until a stable 1.0.

Features

  • Lock windows as documents: start now or schedule ahead, announce in advance, end at a time or by hand, with drafts and time zones.
  • Blocks writes on REST, GraphQL, the admin and the Local API, including overrideAccess: true, with Retry-After.
  • Maintenance code (migrations, imports) writes through a lock with withoutContentLock.
  • Freeze everything, configured groups, or individual collections and globals; exempt what the public site writes to.
  • An admin banner that pages through windows, with localized per-window messages and live lock value tokens.
  • Works with @10x-media/jobs: full locks pause the queues, interrupted jobs fail cleanly or defer until the lock ends.
  • Typed translations with per-key overrides via @10x-media/content-lock/i18n.

Quick start

pnpm add @10x-media/content-lock
// payload.config.ts
import { buildConfig } from 'payload'
import { contentLock } from '@10x-media/content-lock'

export default buildConfig({
  plugins: [
    contentLock({
      groups: [{ key: 'catalog', label: 'Catalog', collections: ['products', 'categories'] }],
    }),
  ],
})

Then regenerate the import map, and on Postgres create a migration. Open Content locks in the admin and press Lock now.

Documentation

Full documentation at docs.10xmedia.de:

License

MIT. Copyright 10x Media GmbH.