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

uplate-cli

v0.0.1

Published

CLI for initializing/upgrading boilerplates from git.

Downloads

10

Readme

🍽️ uplate — upgrade + boilerplate

Starter repos are easy to clone, but painful to keep alive.

uplate turns any git repo into a living boilerplate. Clone it detached (no upstream), track which commit you started from, and apply upstream changes later with conservative 3-way merges.

Why

Tools like gitpick clone boilerplates cleanly, but that's it — you're on your own when the template updates. uplate adds an upgrade path: it simulates a 3-way merge in a temp directory, so you keep your changes and get the template's changes.

  • [x] Clone any git repo as a detached boilerplate
  • [x] Upgrade with conservative 3-way merges
  • [x] AI agents can handle conflicts — uplate upgrade --prompt prints a ready-to-paste resolution prompt
  • [x] Works with GitHub, GitLab, any git host
  • [x] Dry-run upgrades before applying
  • [x] Supports monorepos with subpath selection

Install

Requires git. That's it. No install needed? npx uplate-cli works too.

brew install blankeos/tap/uplate # Homebrew (macOS/Linux)
npm install -g uplate-cli        # or npm
bun install -g uplate-cli        # or bun
cargo binstall uplate            # or cargo-binstall (prebuilt binary, faster)
cargo install uplate             # or cargo (build from source)
curl -sSL https://raw.githubusercontent.com/uplate/uplate/main/install.sh | sh # or linux/macos (via curl)

Quick start

# Create a project from a boilerplate
uplate create blankeos/solid-launch my-app

# Check if updates are available
cd my-app
uplate status

# Preview the upgrade
uplate upgrade --dry-run

# Apply it
uplate upgrade

Commands

| Command | Description | | --------------------------------------------- | -------------------------------------------------- | | uplate create <source> [destination] | Clone a boilerplate as a detached git project | | uplate adopt <source> [--base <commit/tag>] | Link an existing project to its boilerplate source | | uplate status | Check if a template update is available | | uplate upgrade [--dry-run] [--prompt] | Apply template changes via 3-way merge |

Source formats

# GitHub shorthand (owner/repo)
uplate create blankeos/solid-launch

# GitHub with subpath (for monorepos)
uplate create blankeos/solid-launch/apps/web

# Full GitHub URL with branch
uplate create https://github.com/blankeos/solid-launch/tree/dev/apps/web

# Any git host
uplate create https://gitlab.com/group/project

# GitLab with subpath
uplate create https://gitlab.com/group/project/-/tree/main/templates/vite

Upgrade workflow

When you run uplate upgrade, it:

  1. Clones the old and new template versions into a temp directory
  2. Creates a 3-way merge: yours (your project) ← theirs (new template) over base (old template)
  3. If the merge is clean, applies the resulting patch to your project
  4. If conflicts arise, your working tree is untouched — use --prompt for an AI-agent-ready prompt
uplate upgrade               # Apply clean upgrades
uplate upgrade --dry-run     # Preview changes first
uplate upgrade --prompt      # Print a conflict prompt for coding agents

How it works

uplate stores metadata in .uplate.jsonc at your project root, tracking the template source, base commit, and last-upgraded commit. All operations use git under the hood — no proprietary formats, no lock-in.

Adopting existing projects

Already created a project from a template without uplate? Adopt it retroactively:

cd my-existing-project
uplate adopt blankeos/solid-launch --base 2f1e3a4

License

MIT.