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

xrelease

v0.4.0

Published

xrelease (pronounced cross-release) helps you setup automated releases for your project for any language

Readme

xrelease — Unified Release Automation for Any Project

CI Release: Automated with xrelease

xrelease provides a consistent, automated release process across all programming languages and frameworks. Create versioned releases with changelogs and Git tags using the same workflow everywhere, regardless of whether you're working with Python, Go, Scala, Node, Swift, or any other language.

About

xrelease solves the challenge of maintaining different release workflows for each language or framework. It offers a standardized approach that works universally across your projects.

  • One consistent workflow for all projects
  • Automated versioning, changelogs, and git tags
  • Zero-config operation with full customization options

Features

  • Language agnostic: Works with any language (Python, Go, Scala, Node, Swift, etc.)
  • Automated essentials: Handles versioning, changelogs, git tags automatically
  • Consistency: Same workflow everywhere - learn once, use everywhere
  • Zero-config: Works out-of-the-box with sensible defaults
  • Fully extensible: Customize with hooks and plugins when needed
  • CI/CD integration: Seamlessly integrates with GitHub Actions and other CI systems

Quick Start

  1. Install xrelease
npm install -g xrelease
  1. Initialize in your project
xrelease init
  1. Create a release
xrelease create

Your project now has an updated version, changelog, and git tag!

Common Commands

xrelease init          # Setup xrelease for your project
xrelease create        # Create a release - defaults to patch
xrelease create -M     # Major release
xrelease create -m     # Minor release
xrelease create -p     # Patch release

CLI Options

xrelease init

Sets up automated releases for your project.

-y, --yes              # Skip prompts and use defaults
-l, --language <type>  # Project language (node, go)

xrelease create

Creates a new release, using the .xrelease.yml config steps created in xrelease init

-M, --major           # Create major release
-m, --minor           # Create minor release
-p, --patch           # Create patch release
--bump <type>         # Specify version bump (major, minor, patch)
--branch <name>       # Branch to create release from
--config <path>       # Path to config file

xrelease add

Add specific components to your release config

workflow   # Add GitHub Actions workflow
changelog  # Add changelog configuration
hooks      # Add Git hooks configuration

Why xrelease?

| Problem | xrelease Solution | | --------------------------------------------- | ------------------------------- | | Different release processes for each language | One consistent workflow | | Manual version tracking and changelog updates | Fully automated releases | | Complex CI/CD setup for release management | One-command CI integration | | No standardization across project repos | Same release pattern everywhere |

Documentation

FAQ

Why does xrelease use package.json for all projects? xrelease uses package.json as the single source of truth for versioning in ALL projects, regardless of language. This provides one consistent way to handle versioning, proven and battle-tested version bumping mechanisms, compatibility with existing tools and CI systems, and minimal configuration (just version, marked as private). Learn more about why package.json.

How does xrelease compare to semantic-release? While semantic-release is a powerful tool that supports multiple languages through plugins, xrelease takes a "batteries included" approach that works out-of-the-box with minimal setup. semantic-release offers extensive customization but requires significant configuration through plugins for most use cases. In contrast, xrelease focuses on providing a simple, ready-to-use release workflow for any language with sensible defaults. If you need a highly customizable release pipeline and don't mind the configuration overhead, semantic-release is excellent. However, if you want to get automated releases working quickly across different projects and languages without wrestling with complex setup, xrelease provides a more straightforward path with its simplified, consistent approach.

Does xrelease work with my CI/CD system? Yes! xrelease is designed to integrate with GitHub Actions, CircleCI, Jenkins, and other CI systems. See our CI/CD Integration guide for details.

Can I customize the release process? Absolutely. While xrelease works without configuration, you can fully customize the release process through the .xrelease.yml configuration file. See our Configuration Guide.

I'm a Scala dev - why use a Node-based tool? Yes, it's built with Node.js, not "sleek, performant Scala with higher-order functions". But like sbt or mill, it's just a build tool - it won't touch your production code. Promise!... maybe

License

MIT

** Terms and conditions may apply, see ymmv