Closing the Gap: How a Mac Mini and AI Reignited 20 Years of Ideas
Published: (March 2, 2026 at 05:41 PM EST)
7 min read
Source: Dev.to
Source: Dev.to
[](https://dev.to/charlieseay)
I turned 40‑something today. I'm not going to tell you the exact number because it doesn't matter and also because I'm a little bit in denial. What I will tell you is that I've been carrying a notebook — sometimes physical, sometimes digital, always somewhere — full of ideas for the better part of 20 years.
* App concepts.
* Business plans.
* Side projects.
* Systems I wanted to build.
* Problems I knew how to solve but never had the runway to sit down and solve them.
The ideas were never the problem.
---
## The gap
If you've worked in tech long enough, you know the gap. It's the space between *knowing what to build* and *actually building it*. Not because you're lazy — because the activation energy is enormous.
You want to build an iOS app? Great. Learn Swift. Learn SwiftUI. Learn Xcode's opinions about how your project should be structured. Set up certificates. Figure out StoreKit. That's before you write a single line of business logic.
You want to self‑host something? Cool. Spin up a container. Configure a reverse proxy. Set up DNS. Wire up authentication. Debug the one nginx directive that's silently eating your auth headers. That's before anyone can actually use the thing.
Every idea came with a tax — hours of scaffolding, configuration, and yak‑shaving before you got to the part that mattered. And when you're working a full‑time job, raising a family, and trying to maintain some semblance of a life outside of a terminal, that tax is a deal‑breaker.
So the notebook grew. And the projects didn't.
---
## What changed
Three things converged in the last year, and I don't think any one of them works without the others.
### 1. The Mac Mini became a lab
I've always had a home machine. But the **M4 Pro Mac Mini** hit a sweet spot I hadn't seen before: enough power to run Docker stacks, enough storage to host media, enough headroom to experiment with local AI models — and it runs 24/7 at barely a whisper on the power bill.
It's not a server rack. It's a **$1,600 box** on a shelf that runs my entire infrastructure:
* Plex, Radarr, Sonarr
* A reverse proxy, SSO, a dashboard, a self‑assessment platform, a portfolio site, and a kids' reading app
All on one machine, all containerized, all accessible from anywhere through a Cloudflare Tunnel.
The barrier to deploying something went from “figure out hosting” to “write a compose file and add a proxy host.” That matters more than it sounds.
### 2. Obsidian became the operating system for ideas
I'd tried every note‑taking system: Notion, OneNote, Apple Notes, Google Docs, plain‑text files in a folder called “notes” that I'd forget about in six months.
Obsidian stuck because it works the way my brain works: everything is a file, everything links to everything else, and the structure emerges from the connections rather than being imposed upfront. My vault isn't a notebook — it's a **knowledge graph**.
* Projects link to research.
* Research links to ideas.
* Ideas link to technical specs.
* Specs link to build logs.
When I sit down to work on something, the context is already there. I'm not starting from scratch — I'm continuing a thread.
### 3. AI became a co‑builder
This is the one that closed the gap.
I'm not talking about asking ChatGPT to write a README. I'm talking about AI as a development partner — something that can hold context across an entire project, scaffold code in languages I'm still learning, debug infrastructure issues by reading logs and configs, and maintain documentation as we go.
**Typical workflow**
1. I describe what I want to build.
2. We plan it together — phased, with verification steps, with a tech spec that lives in the vault.
3. We build it, phase by phase.
4. When a phase is done, we test it, document it, and checkpoint it to Git.
I built a complete iOS app — from concept to TestFlight — in a few weeks. Not because AI wrote it for me, but because AI handled the parts that used to stop me cold: the Swift syntax I didn't know yet, the StoreKit integration I'd never done, the Xcode build errors that would have cost me a weekend of Stack Overflow.
The ideas in my notebook finally had a way to become real things. Not prototypes. Not half‑finished repos. Deployed, running, usable things.
---
## What I've shipped (last month)
* **This site** — the portfolio and blog you're reading right now. Astro, self‑hosted, public.
* **A learning platform** — a self‑hosted tool for reviewing and sharpening technical skills. Quiz engine, learning tracks, certification mapping.
* **An iOS app** — a native app built in SwiftUI, from first line of code to TestFlight, in a language I was still learning when I started.
* **The infrastructure itself** — the home lab that runs all of it: Docker stacks, reverse proxy, SSO, dashboard, DNS routing, IaC. All documented, all containerized.
None of these are finished. All of them are real. That's the difference.
---
## The execution stack
| Layer | What | Why |
|----------------|----------------------------------------|---------------------------------------|
| **Hardware** | Mac Mini M4 Pro, 24 GB, 1 TB NVMe | Silent, powerful, always on |
| **Notes** | Obsidian vault (iCloud‑synced) | Knowledge graph, not a notebook |
| **Containers** | Docker Desktop + Portainer | Everything runs in containers |
| **Routing** | Cloudflare Tunnel + Nginx Proxy Manager| Zero open ports, public access |
| **Auth** | Authentik | Self‑hosted SSO, Google OAuth |
| **AI** | Claude Code + Gemini | Planning, building, documenting |
| **Version control** | Git + `/checkpoint` | Every session ends with a commit |
| **Sites** | Astro (static) | Fast, content‑driven, simple |
The key insight isn't any single tool. It's that the *entire pipeline* — from idea to deployed product — now fits on one machine and moves fast enough to keep the momentum going.
## Keep up with the rate I generate ideas
---
### What I actually learned
Twenty years of carrying ideas around taught me something I didn’t expect: **ideas don’t expire**.
- The iOS app I’m building now started as a scribble in a notebook years ago.
- The self‑assessment platform came from a conversation about certification prep that I’d been thinking about for months.
What **does** expire is motivation. Motivation dies when the distance between “I have an idea” and “I have a working thing” is measured in **months** instead of **days**.
The gap was never talent, imagination, or time‑management. The gap was **tooling**. The cost of turning a thought into a running application was simply too high for someone with a day job and a life.
That cost just dropped by an order of magnitude.
---
### What’s next
The notebook isn’t empty yet. There are still ideas in there — some good, some terrible, some I won’t know until I build them. But the backlog is moving now, and the system that moves it is **documented, repeatable, and improving**.
I’m not writing this to sell you on AI, home labs, or Obsidian. I’m writing it because if you’re someone who’s been carrying ideas around for years — if you’ve got a graveyard of half‑started repos and abandoned side projects — the execution gap is smaller than it’s ever been.
- The tools exist.
- The hardware is affordable.
- The AI is good enough to be a real partner, not just a fancy autocomplete.
**The only thing left is to start.**
*Originally published at [charlieseay.com](https://charlieseay.com/blog/closing-the-gap/)*