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

spendwise

v1.0.1

Published

A Simple and easy-to-use envelope-budgeting app

Readme

Spend Wise is envelope budgeting that runs where you want it - as a desktop app, or as a small server you host yourself and reach from any browser. Same app, same single data file.

No account. No cloud. No subscription. No telemetry. Your finances are a JSON file on your own disk, and the app works with the network unplugged.

The one request it ever makes is a public read of this project's latest release tag, so it can tell you an update exists - no identifier, nothing about your money, and one checkbox in Settings turns it off for good.

What it does

Budget in envelopes. Each budget is a little savings account: it gets a monthly allotment, and unspent money stays in it. Groceries left over in May is still there in June - no zeroing out, no starting over.

Spending flows in on its own. Assign an expense to an envelope and it draws from that balance instead of counting against the month twice. Every envelope shows what's left at a glance: a full green line when untouched, amber when it's nearly gone, red when it's overdrawn.

Save up for the big, irregular stuff. Goal budgets fill toward a target - the annual insurance bill, a vacation - and stop contributing once they're full. Give one a due date and it works out the monthly deposit for you. Spend from it and contributions resume automatically.

Fund budgets from a percentage. Point an envelope at other groups and it takes a cut of them, live - freelance tax savings at 33% of self-employment income minus expenses, recalculated as you type and carried forward every month.

Close out the month when you're done: balances roll over, recurring lines copy forward, savings gets a snapshot, and next month is waiting for you.

See where it actually went. Tag anything; the Insights view turns those tags into spending and income trends, per-tag averages, and your savings trajectory over the years.

Budget together. Two people editing the same month merge field by field rather than one clobbering the other - you both keep your edits.

Change your mind later. Past months are view-only until you unlock them. Edit one and every later month's balances and savings history recompute correctly, after taking a backup and showing you exactly what changed.

Install

Desktop Releases

Grab the latest Windows installer or portable .exe from Releases. That's the whole setup - it keeps its database in %APPDATA%/Spend Wise/db.json.

On macOS or Linux, run it from source (see docs/development.md) or host the web version below.

Web Version

NPM

If NPM is your thing - Electron is never installed, just one process owns the database, so everyone editing through it merges cleanly.

npm i -g spendwise
spendwise-server --set-password   # everyone signs in with this
spendwise-server                  # → http://localhost:4180

Docker

Or with Docker:

docker build -t spendwise .
docker run -d --name spendwise -p 4180:4180 \
  -v /srv/spendwise:/data -e FINANCES_PASSWORD=change-me spendwise

The server speaks plain HTTP and has no TLS of its own. On a LAN that's fine; before putting it on the internet, read docs/hosting.md - reverse proxy configs for Caddy, nginx and Apache, every setting, and an account of the security model.

No server? No problem.

The desktop app can share itself. Set an app password, flip on Web access, and phones and laptops on your network open the printed URL and edit the same live data - until you close the app.

Docs

  • Hosting - self-hosting, Docker, reverse proxies, TLS, configuration, security model.
  • Development - how the money math works, architecture, scripts, tests.

License

MIT - see LICENSE.

Icons are Font Awesome Free (CC BY 4.0).