Stop paying for software.
Nearly every tool you subscribe to has a free, open-source twin that you can run on the server from chapter one, in about ten minutes, forever, for nothing. This is where the money actually is.
The thing nobody tells you about GitHub
GitHub is where the world's software lives in the open. Not just fragments — entire, finished, production-quality applications, given away free, that thousands of businesses run every day. Password managers. Analytics. Chat. Project boards. Time tracking. Bookmark managers. Monitoring. Newsletters. Forms. Databases. Whole categories of SaaS have a mature free equivalent sitting right there.
Most people never look, because it feels like it must be harder than it is, or like free software must be worse. Sometimes it is worse. Very often it's better, because it isn't optimizing for a pricing tier that nudges you toward the upgrade.
Here's the swap that made it click for me. I was looking at password management for a client. The hosted product is a fine business at a few dollars per user per month. The same company also gives away the server software, and there is a community version — Vaultwarden — that runs on a small VPS and does everything, unlimited users, unlimited everything. I installed it in about fifteen minutes. Cost: zero, forever. Same apps, same browser extensions, same security. That single afternoon paid for the server for the next several years.
How to actually find them
Three approaches, in order of how much I use them:
- Just ask your agent. Literally: "I pay $X/month for [tool]. Is there a self-hostable open-source alternative that would run on this server? Give me your honest recommendation, and tell me if I'd be downgrading." That last clause matters — you want the truth, not a yes.
- The awesome-selfhosted list. A famous, well-maintained GitHub list of essentially every self-hostable app in existence, organized by category. Search it for your category and you will find three options you'd never heard of.
- Search GitHub for "[the tool you pay for] alternative." Crude, and it works constantly.
How to judge one in ninety seconds
You are about to run a stranger's software on your server. That deserves ninety seconds of attention. Open the GitHub page and check four things:
| Check | What you want | Why |
|---|---|---|
| Last commit | Within the last few months | Abandoned software stops getting security fixes. This is the single most important signal. |
| Stars | A few thousand or more | Rough proxy for "many people rely on this and problems get found." |
| Open issues | Some, being replied to | Zero issues means nobody uses it. Hundreds ignored means nobody maintains it. |
| A Docker install | Yes, ideally one file | Means installing it is one command instead of an afternoon. See below. |
If those four look right, install it. If they don't, walk away — there's almost always another option in the same category.
Self-hosting means you are now the person responsible for updates and backups. Nobody is doing it for you. This is genuinely the trade-off, and it's the honest reason not everything should be self-hosted. Two mitigations: have your agent set up automatic backups the same day you install anything (ask for it explicitly — it will not volunteer), and check for updates on a schedule you actually keep. If a tool holds something you truly cannot lose and you know you won't maintain it, paying someone else is a legitimate, adult decision. Just make it on purpose.
Docker, in one paragraph
Docker is the reason all this is easy now. It packages an application together with everything it needs to run into one sealed box. You don't install the app and its database and its right version of some language runtime and pray they get along. You run one command and the box appears, working, isolated from everything else on your server. If you hate it, you delete the box and it's like it was never there.
Practically, most projects hand you a file called docker-compose.yml, and installing them looks like this:
# grab the project
git clone https://github.com/some/project.git
cd project
# start it
docker compose up -d
That's the whole install for a shocking number of real, serious applications. You do not need to understand Docker deeply. You need to know it exists, prefer projects that offer it, and let your agent handle the details.
What's actually worth running
These are categories where the free version genuinely competes, based on what I run day to day. I'm deliberately not naming a single winner in each — that changes, and you should ask your agent for the current best option and why.
- Password manager. Unlimited users, unlimited vaults, real browser extensions and phone apps. Replaces a per-seat subscription outright. Start here — it's the highest value-to-effort ratio of anything on this list.
- Website analytics. Lightweight, privacy-respecting, no cookie banner needed, and you own the data. Replaces the paid analytics tier most small sites don't need.
- Uptime monitoring. Pings your sites every minute and messages you the moment one goes down. This is the tool that has saved me the most embarrassment, and it costs nothing.
- Team chat. A full self-hosted chat platform with mobile push. This is where every alert from every tool I run lands, in one place, on my phone. Wiring your alerts into a chat channel instead of email is a small change with an outsized effect — email alerts get ignored within a week.
- Project boards and task tracking. Kanban boards, task lists, the works. Free and good.
- Time tracking, bookmarks, read-it-later, notes. All of it. All free. All fine.
- Automation glue. Tools that connect A to B when C happens — the self-hosted equivalent of the automation SaaS everyone pays for.
Add them one at a time. Get one working, use it for a week, then add the next. The failure mode here is installing nine things in a weekend, understanding none of them, and abandoning all of them.
Add up what you currently pay, monthly, for tools that are on that list. For most small businesses it lands somewhere between $80 and $300 a month. Now compare that to the $6 server. That gap is the entire argument, and it's why this chapter exists.