If you looked at my product lineup without knowing me, you’d struggle to find the pattern. A Homebrew GUI. A dual-pane file manager with Vim keys and a Norton Commander theme. A system monitor that explains your Mac in plain English. And a retro game launcher that plays 7,000 DOS games. Four apps, four completely different categories — all shipped as 1.0s within nine weeks of each other, by one person.
Here’s the story of how that happened, and the one rule that connects all four.
The thirty-year detour
I’m based in Trikala, Greece, and I started programming in 1992, at the age of twelve — GW-BASIC first, then Turbo Pascal, then Turbo C. But my career took the long way around. I worked various IT jobs, and in 2011 I moved abroad into the corporate world: customer service at HP, then Citi, then TCS (Tata Consultancy Services), where I climbed into middle management and worked as a product owner and Service Improvement Manager.
That corporate decade taught me things a pure engineering path never would have — how products live and die, how users actually report problems, how to run a backlog. But I wanted to write code again. So in 2024 I moved back to Greece, took an eight-month game development course at the Hellenic Open University, started tinkering with Swift, and founded Multimodal Solutions. These four apps are the first commercial software I’ve ever shipped.
The first itch: Taphouse
Switching my daily work to the Mac is what showed me what to build. You notice the gaps in your own workflow before you notice anything else.
The first obvious gap was Homebrew. I used it constantly and wanted a clean, native UI instead of the terminal — so I built one. It lived under the internal name “BrewMate” before I gave any real thought to branding; eventually it became Taphouse. Version 1.0 shipped on December 26, 2025. And then I just… kept adding features: services management, dependency trees, Brewfile import/export, disk usage analysis, a menu bar companion, background update checks. It’s now past build 99.
Nine weeks, four launches
The release dates look absurd in a row: Taphouse on December 26, Captain’s Deck on January 16, NostalgiApp on February 16, MacPulse on February 25. Four 1.0s in nine weeks.
The honest explanation is that I didn’t start them at the same time — I’d been building them in parallel over very different periods, and they all happened to reach “ready” in the same window.
NostalgiApp had by far the longest development time, followed by Captain’s Deck. But the compressed launch window meant the first three months of 2026 were the hardest of my professional life: four streams of user reports, bug fixes, and feature requests, on top of my own backlog of things I wanted to build. Today it’s streamlined — all four apps are feature-complete, and my time is split roughly equally between them, mostly ironing out improvements and user suggestions.
The retro thread
Two of the four apps come from the same place: I’m a big retro gamer. I’ve used LaunchBox for years, and I’ve built two period-correct retro PCs — a 486DX2-66 running DOS 6.22 with a Sound Blaster AWE 64, and an Athlon XP 2200+ with a Radeon 9600 Pro and a 3dfx Voodoo 2 for Glide, sharing one CRT through a KVM switch (that project has its own page).
What I loved about LaunchBox was having my entire game library in one place. Nothing like that existed for the Mac — and the real gap was the eXo collections (eXoDOS and its siblings: 7,000+ curated DOS games with metadata and artwork), which were built for Windows and had no clean Mac story at all. So the app was called “ExoMacBox” during development, because the initial focus was just playing those collections natively. Then the scope grew the way scope does: it now supports 70+ platforms through RetroArch, ScummVM, MAME and more — and in a recent update it pulls in your modern library too, launching Steam, Mac App Store, Epic, and GOG games, plus individual Windows executables through Wine or CrossOver, all from one launcher. That’s NostalgiApp.
Captain’s Deck comes from the same nostalgia, pointed at productivity. I wanted something that felt like Norton Commander — I even built a faithful NC theme with period sounds and CRT effects — but was thoroughly modern underneath: SFTP/S3/WebDAV connections, Git integration, archive browsing, a built-in terminal, a JavaScript plugin system. Of the four, it’s the one that has improved the most through user feedback; a surprising number of its features today started as a user email.
MacPulse was born from three ideas. First, novice users deserve a system monitor that explains in plain English what’s actually happening on their Mac, instead of showing them a wall of numbers. Second, technical users should be able to record performance sessions — with detailed analysis and logging — the way gamers benchmark on Windows. And third, more recently: let people use Apple Intelligence to simply ask questions about their Mac.
Effort and revenue don't correlate
Would I place my bets the same way again? Mostly yes — with the caveat that effort and revenue are almost uncorrelated in my lineup. NostalgiApp took by far the longest to build; Taphouse, the quickest to find an audience, was the fastest. If I optimized purely for revenue per hour, I'd have built four Homebrew GUIs. I wouldn't use four Homebrew GUIs, though, and that matters more than it sounds: the apps you actually live in are the ones you keep improving long after launch week, and users can tell.
Taphouse is massively more popular than the rest, thanks to that early press. NostalgiApp does very well because it's genuinely unique — it's the only solution for playing eXo collections on a Mac, and the only all-in-one launcher of its kind. Captain's Deck and MacPulse got similar, steadier traction.
All four apps are niche in some way, so Reddit drives most traffic — the communities around Homebrew, retro gaming, and orthodox file managers are small but extremely high-intent. Taphouse is the exception, where press did the heavy lifting. The surprise for me was how little the channels transfer: an audience for one app almost never converts into an audience for another, even with all four in my email signature.
The AI multiplier
People ask whether AI coding tools changed my output. For me the honest framing is different: they changed my language, not just my speed.
Swift was the newest language in my thirty-year stack. Claude Code became the mediator between the code I could fluently write in languages I’d known for decades and the idiomatic Swift these apps needed. I knew exactly what I wanted to build and how it should be architected — the corporate product years made sure of that — and the agent handled the translation into a language I was still learning, at a pace that let me ship instead of study.
A concrete example: the Setapp integration itself. I handed Claude Code the Setapp framework documentation, and the integration was done in a couple of hours — including the build-flag plumbing to keep the Setapp, direct-download, and Mac App Store variants of each app building from one codebase.
That’s how one person ships and maintains four products: not by typing faster, but by never being blocked on unfamiliar territory.
The fun and the pain
The hardest technical problems were the unglamorous ones: bidirectional terminal path sync over PTY in Captain’s Deck and its privileged helper for admin file operations; SMC fan control with a thermal watchdog in MacPulse; and NostalgiApp’s eXoDOS auto-import — parsing thousands of per-game configurations — plus its crowdsourced self-healing system, where the app fixes a game’s broken launch command and, once a user confirms it works, shares the fix with every other user automatically.
The most fun, without question, was the retro polish nobody asked for: the Norton Commander theme and sounds in Captain’s Deck, and NostalgiApp’s soundtrack modes, screensavers, and themes — the app can sit on a second display as an ambient exhibit of your collection, spinning a vinyl record while it plays a game soundtrack. Features like these are objectively unnecessary. They’re also why I open my own apps every day, which — see above — is the entire strategy.
How I decide what to build next
My answer is unfashionable: don’t start from a market. Start from your own daily friction, then check whether a market exists. All four of my apps pass a simple test — if nobody ever bought this, would I still want it running on my Mac? If the answer is yes, you get three compounding advantages: you’ll never abandon it, you’ll have infinite free user research (you), and the passion shows up in the details users actually notice.
The corporate detour wasn’t wasted either. Twelve years of product ownership and service management means the unsexy half of indie development — triaging reports, running a changelog, communicating with users, prioritizing a backlog across four products — is the part I find easy. If you’re a career developer eyeing the indie path, don’t discount whatever your own detour taught you. It’s probably your edge.
And if you’re wondering whether it’s too late to come back to programming after a decade away from the keyboard: I came back after thirteen years, in my forties, to a language I’d never used, and shipped four apps in nine weeks. The tools have never been kinder to returners.