How I Shipped My First Indie Windows App as a Self-Taught Developer

How I Shipped My First Indie Windows App as a Self-Taught Developer

1 5
calendar_todayschedule4 min read
— Originally published at pulsemonitor.hashnode.dev

I didn't set out to build a software brand.

I just wanted to see my CPU temperature without opening a browser tab, alt-tabbing out of a game, or installing yet another bloated system tool that wanted to run at startup, phone home, and upsell me on a pro version.

So I built my own. And then I shipped it. And then I built another one.

This is the story of how that happened — and what I learned along the way as someone who has never once sat in a computer science lecture.

The itch I couldn't stop scratching
I game. I stream. I like knowing what my hardware is doing.

The existing tools — HWiNFO, HWMonitor, MSI Afterburner — are brilliant pieces of software. But they're also built for people who want to configure 47 different sensor graphs and export data to a CSV every 30 seconds. I just wanted a clean overlay that showed me CPU, GPU, RAM and network at a glance without taking up half my screen.

So one evening I opened VS Code and started messing around with Python.

That was a mistake. A good one.

Building it
I'm self-taught. I've never had a senior dev to ask questions, no team to code review my work, no structured learning path beyond YouTube, docs, and a lot of trial and error.

My stack for PulseMonitor ended up being:

Python 3.11 — comfortable territory for me

PyQt6 — for the UI. Steep learning curve but incredibly powerful once it clicks

psutil — for reading system stats. An absolute gem of a library

PyInstaller — for packaging everything into a single portable .exe

That last one nearly broke me.

PyInstaller is great in theory. In practice, packaging a PyQt6 app with GPU monitoring dependencies into a standalone executable that works on someone else's machine — a machine with no Python installed, different hardware, possibly Windows 10 instead of 11 — is a special kind of pain.

I hit missing DLL errors. I hit hidden import issues. I hit a version of the app that worked perfectly on my PC and silently crashed on everything else. Every fix revealed a new problem underneath it.

But I kept going. Not because I'm particularly disciplined, but because I genuinely wanted the thing to exist.

Shipping it
The first version of PulseMonitor was rough. It showed CPU and RAM usage in a small window. That was basically it.

But it worked. It ran. It was portable — no installer, just download and run. And it solved the problem I built it to solve.

I put it on Gumroad for free, threw together a GitHub Pages site, submitted it to a few software directories, and posted about it on X.

The MajorGeeks review came in at 5/5. Softpedia gave it the same. That felt unreal for something I'd built alone in my spare time.

Then I started getting download numbers. Real people, on real machines, using something I made.

That feeling doesn't get old.

What I got wrong
A lot, honestly.

I underestimated packaging. The gap between "it runs on my machine" and "it runs on any machine" is enormous when you're dealing with PyInstaller and native dependencies. Budget more time for this than you think you need.

I shipped too late. I kept polishing before releasing. In hindsight, getting v1.0 out the door earlier would have been better. Feedback from real users is worth more than another week of self-review.

I ignored SEO completely. My app pages had great copy but no keyword strategy, no schema markup, no FAQ sections. I only fixed this recently. Don't make the same mistake — do it from day one.

I didn't think about distribution. Building the app is maybe 40% of the work. Getting it in front of people is the other 60%, and I had no plan for that at the start.

What I got right
I kept it simple and I kept it free.

PulseMonitor does one thing well. It's not trying to be HWiNFO. It's not packed with features nobody asked for. It's a clean, lightweight overlay that solves a specific problem cleanly. That clarity helped with everything — the design, the copy, the positioning.

Keeping it free removed the biggest barrier to people trying it. No payment friction, no trial period, no nag screens. Just a useful tool that works.

And making it portable — no installer, no admin rights required, just a single .exe you can run from a USB stick — turned out to be a genuine differentiator. A lot of people specifically look for portable apps. It's a real niche with a real audience.

What's next
PulseMonitor is now on v1.1.0, with network monitoring, a mini gaming overlay, process manager, startup manager, performance history graphs, light and dark themes, and CSV export. It went from a CPU temperature widget to a proper system monitor.

I've also shipped a second app — SweptPC, a portable Windows PC cleaner — under the same brand, VaultSoft.

The goal is to keep building useful, free, portable Windows tools. No subscriptions. No upsells. Just software that respects your time and your machine.

If any of this resonates — if you're self-taught, building something in your spare time, wondering if it's worth shipping — it is. Ship the rough version. Fix it after.

PulseMonitor and SweptPC are free to download at vaultsoft.github.io. If they save you time, a coffee is always appreciated over on Ko-fi.

1 Comment

0 votes
🔥 Join developers growing publicly
Share your knowledge, build in public, and grow your developer presence with a global community.

More Posts

Local-First: The Browser as the Vault

Pocket Portfolio - Apr 20

How I Built a React Portfolio in 7 Days That Landed ₹1.2L in Freelance Work

Dharanidharan - Feb 9

I Wrote a Script to Fix Audible's Unreadable PDF Filenames

snapsynapseverified - Apr 20

The Audit Trail of Things: Using Hashgraph as a Digital Caliper for Provenance

Ken W. Algerverified - Apr 28

Dashboard Operasional Armada Rental Mobil dengan Python + FastAPI

Masbadar - Mar 12
chevron_left
134 Points6 Badges
1Posts
0Comments
Self-taught indie developer from the UK building free portable Windows utilities. Creator of PulseMo... Show more

Related Jobs

View all jobs →

Commenters (This Week)

1 comment
1 comment
1 comment

Contribute meaningful comments to climb the leaderboard and earn badges!