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

sync2dev

v1.1.0

Published

A simple command-line tool for working together on shared files on a single development server.

Readme

sync2dev

sync2dev is a simple command line tool allowing you to work together on the same development server, without accidentily overriding each others changes without a backup.

It supports file transfer using SSH/SCP or (S)FTP, and authentication using (optionally safed) passwords, or SSH certificates.

Features

  • Easy: Just a single command
  • Automatically upload files to your dev server
  • Prevent others from accidentally overriding your changes
  • Supports SSH/SCP/SFTP/FTP/FTPS
  • Works everywhere: Every OS, Every IDE

Usage

There is only a single command to start the program:

$ sync2dev

On startup, sync2dev will try to find a .sync2dev file in the current or any parent directory. If it can't find any, it will ask you to create a new configuration in the current folder.

>>> WARNING! NEVER COMMIT THE .sync2dev FILE TO YOUR GIT <<<

This file is local to your machine, and may contain the connection string and also usernames and passwords to your development server in plaintext! sync2dev will never upload this file itself, but other tools might. Make sure you exclude the file everywhere, but at least add it to .gitignore.

How does it work?

sync2dev offers the same functionality as most other similar tools or IDE's: Whenever it detects a file change, it uploads the file to a configured server.

But in contrast to those tools, it makes sure that only one person can modify a single file at a time without also triggering a merge in git.

It accomplishes that by comparing the modification timestamps before uploading. If the version on the server is newer than your local version, sync2dev will not allow you to upload the file. It keeps track of the files you changed to make sure you can continue to edit the file even if the server time does not exactly match your local time.

However, you can still regain access to a file by committing your changes: As soon as you commit, you can claim the lock on any file, even if there are newer versions on the server. This is safe if your team members also use sync2dev. The file will be locked for them, so to claim the lock again for themselves, they also have to commit their changes. With both versions committed and safed to your Git repository, you can later resolve the merge conflict (if there is any).