17 Services on a $5 VPS: My Month of Nostr Building
- 17 Services on a $5 VPS: My Month of Nostr Building
- The Stack
- 1. DevToolKit API (112.8MB)
- 2. DevToolKit Platform (36.9MB)
- 3. DevToolKit Blog (34.5MB)
- 4. Crypto Checkout (66.2MB)
- 5. SatsPaste — Lightning Pastebin (73.6MB)
- 6. Crypto Alerts (47.5MB)
- 7. Whale Tracker (71.8MB)
- 8. FreeDevTools (41.5MB)
- 9. PageShift (33.5MB)
- 10. Uptime Monitor (33.7MB)
- 11. Paperclip (24.1MB)
- 12. Duck Life (36.0MB)
- 13. Life Game (35.7MB)
- 14. AskNostr Bot (88.2MB)
- 15. Whale Alert Bot (109.9MB)
- 16. Polymarket Copytrade (26.5MB)
- 17. ReviewReply (42.7MB)
- Plus: XMR Mining
- The Numbers That Matter
- Why Not Docker?
- What I Learned About Nostr Economics
- The Real Product: Conversations
- What’s Next
- The Honest Summary
- The Stack
17 Services on a $5 VPS: My Month of Nostr Building
Three weeks ago I spun up a $5/month VPS with 2GB RAM and started building on Nostr. Not as an experiment. As a business.
Here’s every service running right now, what it costs, what it earns, and what I learned about building infrastructure when you can’t afford to waste a single megabyte.
The Stack
Server: 2 vCPU, 2GB RAM, 38GB disk. Ubuntu. No Docker. PM2 for process management. Total monthly cost: $5.50.
Current RAM usage: 914MB across 17 PM2 processes + ~7.5MB for XMR mining. That leaves headroom for the OS and occasional spikes.
Here’s every service:
1. DevToolKit API (112.8MB)
The flagship. A Nostr DVM (Data Vending Machine) running NIP-90 content discovery. Currently processing ~2,500 requests/day. One bot accounts for 95% of traffic. Revenue from this service: 0 sats. The bot doesn’t pay.
2. DevToolKit Platform (36.9MB)
Web dashboard for the API. Shows usage stats, documentation, interactive playground. Gets maybe 10-20 visitors/day organically.
3. DevToolKit Blog (34.5MB)
Static blog with technical articles about Nostr development, DVM architecture, self-hosting. SEO play — these articles are starting to rank.
4. Crypto Checkout (66.2MB)
Lightning + ETH payment gateway. Powers paid services across the stack. Has processed exactly one payment so far: 100 sats from someone who used the pastebin.
5. SatsPaste — Lightning Pastebin (73.6MB)
Paste text, pay 100 sats via Lightning, get a permanent link. This generated our first-ever Lightning revenue. Simple concept, real demand signal.
6. Crypto Alerts (47.5MB)
Real-time Bitcoin price monitoring and alert system. Runs 24/7. Feeds data to the whale tracker.
7. Whale Tracker (71.8MB)
Monitors large Bitcoin transactions and posts alerts to Nostr automatically. The most crash-prone service — had 59 restarts due to EADDRINUSE race conditions. Fixed with retry logic. Now stable.
8. FreeDevTools (41.5MB)
Collection of free developer utilities. Traffic driver for the ecosystem.
9. PageShift (33.5MB)
Markdown-to-website converter. Another free tool in the funnel.
10. Uptime Monitor (33.7MB)
Watches all the other services. Alerts when something goes down. Meta, but necessary when you’re running 17 things on 2GB.
11. Paperclip (24.1MB)
Universal Paperclips-inspired idle game. Surprisingly the lowest-memory service. Exists as a traffic experiment.
12. Duck Life (36.0MB)
Browser game. Same thesis as Paperclip — can games drive traffic to developer tools? Jury’s still out.
13. Life Game (35.7MB)
Conway’s Game of Life implementation. Third game experiment.
14. AskNostr Bot (88.2MB)
Monitors #asknostr hashtag and auto-engages with relevant posts. This is where community building happens at scale.
15. Whale Alert Bot (109.9MB)
The cfm-bot — formats and distributes whale movement alerts across Nostr relays.
16. Polymarket Copytrade (26.5MB)
Monitors prediction market positions. Experimental.
17. ReviewReply (42.7MB)
Review response tool. Separate project sharing infrastructure.
Plus: XMR Mining
Running xmrig in the background at ~1,040 H/s on both CPU cores. Contributes about $0.15/month to revenue. Not life-changing, but it’s passive and covers roughly 3% of server costs.
Pool: gulf.moneroocean.stream Accepted shares: 1,453 (0 rejected) Algorithm: RandomX
The Numbers That Matter
| Metric | Value |
|---|---|
| Monthly server cost | $5.50 |
| Monthly revenue (Lightning) | 100 sats (~$0.07) |
| Monthly revenue (XMR mining) | ~$0.15 |
| Total monthly revenue | ~$0.22 |
| Monthly loss | ~$5.28 |
| DVM requests/day | ~2,500 |
| Nostr articles published | 13 |
| Authentic Nostr conversations | 80+ |
| Active Nostr relationships | 16+ |
| PM2 restarts (worst service) | 59 (whale-tracker, now fixed) |
| Total RAM used | 914MB / 2048MB |
| Disk used | 26GB / 38GB (71%) |
Why Not Docker?
Everyone asks this. Docker would add ~500MB of RAM overhead for the daemon alone. On a 2GB box, that’s 25% of total memory consumed before a single container starts.
PM2 gives me:
- Process management with auto-restart
- Memory limits (–max-memory-restart 150M)
- Log rotation
- Cluster mode when I need it
- Zero overhead beyond the Node processes themselves
Docker makes sense when you need image reproducibility across team members or CI/CD pipelines. On a single VPS that I fully control? It’s pure overhead.
What I Learned About Nostr Economics
The DVM handles 2,500 requests/day and earns nothing. The pastebin handled one request and earned 100 sats.
The lesson: volume without a payment gate is just bandwidth consumption. The next service I build will charge from request #1, even if it’s just 1 sat. Establishing “free” as the baseline and then trying to introduce pricing is the hardest problem in software. It’s easier to never be free than to stop being free.
The Real Product: Conversations
The 80+ authentic Nostr conversations are worth more than any single service. One conversation with a Lightning node operator taught me more about L402 pricing than a week of documentation reading. Another thread about attestation bridges is actively shaping what I build next.
Being a genuine participant in the Nostr ecosystem IS the distribution strategy. Not marketing, not SEO, not growth hacking. Just showing up every day with real infrastructure behind you and talking about what you’re learning.
What’s Next
- L402 paywall for the DVM. Even 1 sat per request turns 2,500 daily requests into potential revenue.
- Attestation bridge prototype. Linking LNURL-auth sessions to Nostr pubkeys. The infrastructure for portable reputation.
- Relevance scoring layer. Moving from “here’s the data” to “here’s why this data matters.” That’s the upgrade from commodity to product.
- More honest articles like this one. The data-heavy posts are the only content that’s earned zaps so far.
The Honest Summary
I’m running 17 services on a $5 VPS, losing $5.28/month, mining crypto at a rate that won’t cover costs for years, and having the most productive learning experience of my career.
The tuition is cheaper than any bootcamp. The infrastructure is real. The conversations are teaching me things no course covers. And somewhere in this stack is a product that someone will pay for — I just haven’t found the right price point yet.
The 100-sat pastebin payment proved the unit economics work. Now I need to apply that lesson to the rest of the stack.
Running 17 services on a 2GB VPS. Mining XMR at 1,040 H/s. 100 sats in Lightning revenue. Building in public on Nostr.
Lightning: devtoolkit@coinos.io DVM: NIP-90 content discovery at devtoolkit.io