Skip to main content

Command Palette

Search for a command to run...

I Built an App Without Writing a Single Line of Code (And It Was Like Arguing with a 7-Year-Old)

Published
3 min read
I Built an App Without Writing a Single Line of Code (And It Was Like Arguing with a 7-Year-Old)

You know that feeling when your port is already in use, and you're pretty sure you killed that process, but apparently you didn't? Yeah, me too.

I was working on a project that juggled multiple ports and localhost aliases like a circus performer. During testing, threads would sometimes zombie their way into immortality, clutching onto ports even after I'd hit the kill switch. Or I'd launch a process in the background, forget about it like that gym membership I bought in January, and then wonder why port 3000 was giving me attitude.

Now, I'm a terminal person. A quick lsof or netstat usually tells me everything I need to know. But here's the thing: when you've got multiple terminals open, each one spewing logs like a conspiracy theorist's Twitter feed, sometimes you just want something simple. A nice little UI that says, "Hey, here's what's hogging your ports."

So I thought, why not put AI to the test?

The Experiment: Zero Lines of Code

Usually, I use AI for the boring stuff—generating small methods, explaining gnarly code, that sort of thing. But this time, I decided to go all in: I would not write a single line of code. Everything—and I mean everything—had to be generated by the AI agent.

Spoiler alert: It was exactly like arguing with my 7-year-old.

Sometimes the AI would listen and do exactly what I asked. Other times, it would nod along, seem to understand perfectly, and then produce something that had absolutely nothing to do with my request. "I asked you to add error handling, not rewrite the entire UI in Comic Sans."

The Prompt Hacking Marathon

What followed was an iterative dance of prompt refinement. I'd ask for something, get 80% of what I wanted, then spend the next hour explaining why the other 20% was important. It was like being a manager who can't code but has very specific opinions about font sizes.

"No, I need the app to show the interface name, not just the port."

"When I said 'Electron app,' I didn't mean Electron the particle physics concept."

"Please stop trying to make it responsive when it's a desktop app."

After multiple rounds of this delightful back-and-forth, I emerged victorious with Network Monitor—a simple Electron app that does exactly what I need:

  • Shows all applications using network connections

  • Displays the ports they're using

  • Lists which network interface they're on (en0, lo0, those weird utun things)

  • Has a search feature (because scrolling is for chumps)

  • Works on macOS Apple Silicon without requiring kernel extensions (because I value my sanity)

What I Learned

  1. AI is incredibly powerful... and incredibly literal. You need to be specific. Very specific. "Add a button" might get you a button that launches nukes.

  2. Iteration is everything. The first version was a hot mess. The tenth version was getting there. By version 20-something, it actually worked.

  3. The AI doesn't know what you want until you know what you want. Half the battle was figuring out my own requirements.

  4. Sometimes the AI makes brilliant suggestions. It added dark/light theme support and those nice app-specific icons without me even asking. When it works, it works.

  5. You still need to understand what's happening. Even though I didn't write the code, I had to understand it well enough to direct the AI. You can't debug what you don't comprehend.

The Result

The app actually works! It's a production-grade Electron application with:

  • Real-time network monitoring

  • Filtering by listening sockets

  • JSON export functionality

  • Theme support

  • App-specific icons with color-coded categories

  • And all the other bells and whistles I didn't know I needed until the AI suggested them

Is it perfect? No. Would I have written some things differently? Absolutely. But did I achieve my goal of creating a functional app without touching a code editor?

Yes. Yes, I did.

You can check out Network Monitor on GitHub