Hi, I'm John

I build products
with AI agents,
and show my work.

I started with a running app I needed. It needed people to hear about it, so I built that too. Then that needed robots and screenshots. Twenty-plus years of writing code, and this is the most fun I've had doing it. This is where I write down how it's going, including the parts that broke.

Start here

Every tool I built fixes a problem the last one made. See how Pheidi, Merge & Tell, NightForge, and Screenery run each other. The stack →

John Farrell, smiling at a bar
That's me, smiling way too hard.

~100/mo

commits on side projects

20+yrs

shipping software

4

tools that run each other

all in

on agentic dev

What I'm building

Four tools, one person, and a lot of arrows. Every arrow is something one project really does for another. Click one for the story.

How my projects feed each other. The full list of links follows the picture. Merge & Tell → Pheidi: Drafts the posts for every Pheidi merge, for @pheiditraining on X, Bluesky, and Mastodon. Pheidi → Merge & Tell: First real customer. A Pheidi PR where three cards disagreed about one channel rebuilt Merge & Tell's PR page. Screenery → Pheidi: Hosts Pheidi's docs screenshots, Play Store shots, and listing video. A test fails the build if the pictures and the pages drift apart. Pheidi → Screenery: The worked example in Screenery's own CI-setup tests. Pheidi → NightForge: sync-docs, the skill that keeps docs honest, was born in Pheidi and ported into NightForge. NightForge → Pheidi: Runs Pheidi's weekly docs sweep, nightly error sweep, and CodeRabbit re-reviews. NightForge → Merge & Tell: Runs Merge & Tell's weekly docs sweep and CodeRabbit re-reviews. NightForge → Auspex Fatalis: Runs the Auspex Fatalis docs sweep through its own sync-docs port. Screenery → Merge & Tell: Reshoots every Merge & Tell screen on each merge. Public pages use Screenery shots by name, as a rule. Screenery → Auspex Fatalis: Posts a screenshot gallery on every Auspex Fatalis pull request, and serves the help-article images. Screenery → This site: Every live screenshot on this site. Nobody here exports a PNG by hand. Merge & Tell → This site: Writes the 'Recent updates' on the product pages here, from the PRs that shipped them. Merge & Tell → Auspex Fatalis: Drafts the posts for Auspex Fatalis merges, steered by the repo's .marketing.yml. EventBell → Merge & Tell: EventBell's placeholder splash page taught Merge & Tell to leave a field empty instead of inventing one. Merge & Tell → Screenery: Screenery's merges get drafted posts too. Merge & Tell → NightForge: NightForge's skill changes get drafted posts too. Pheidi Merge & Tell NightForge Screenery this site EventBell Auspex Fatalis
Solid lines are wired up today. Dashed ones are next. Hover a line for what it does, click it for the story.

How I work now

I run agents like a small team. On a hot side project I'll push close to a hundred commits in a month: researched, planned, written, reviewed, shipped, with me in the loop the whole way. Claude Code, sub-agents, MCP servers, evals. Daily drivers, all of it.

The interesting part isn't the prompts. (Sorry, prompt engineers.) It's the operations around them. Where to put a harness. How to design feedback so the agent actually learns from the codebase. When to spin off parallel work. When to slow down and demand a human review. It's the whole reason I keep harping on my 90/90/90 theory: everyone ships 90%, and the last ten points are the whole game.

Underneath all of it I'm the same person who likes being in the thick of it: talking to users, debating tradeoffs, pushing things out the door. I believe in servant leadership. Software is easy. Humans are the genuinely hard part, and the genuinely fun part.

EQ > IQ. Agents > alone.

Everything I'm building

The top of this list is what I'm building right now. The bottom is how I got here. Shipping software since 1999.

Pheidi's today screen: a 2.7 mile run with pace and heart-rate targets, above this week's schedule.

Pheidi

Running training plans · Side project · 2026

Personalized running plans for 5K to marathon that reschedule when life happens. Built on polarized training and real sports science. Free.

Latest · Your watch doesn't care what brand it is anymore

pheidi.training ↗

The Merge & Tell homepage: "You've never shipped more. Nobody's heard a thing." next to a merged pull request and the post it drafted.

Merge & Tell

Dev marketing · SaaS · 2026

Watches merged pull requests and drafts the posts about them for X, Bluesky, LinkedIn, Discord, and a changelog. A human approves every draft before it goes out. It wrote the update notes on this site, too.

Latest · The site stopped calling itself an alpha nobody could pay

merge.tel ↗

NightForge

Claude Code skills · Open source · 2026

The robot night shift for all my repos. One plugin of Claude Code skills that read the error logs, fix what broke, keep the docs honest, and spend the CodeRabbit reviews where they matter. Every project runs the same pipeline.

github.com/jfreal/nightforge ↗

The Screenery homepage: "Screenshots that stay fresh."

Screenery

Dev tool · SaaS · 2026

A package registry for product screenshots. CI pushes them on every build, and each one gets a URL that updates itself on release. The live screenshots on this page come from it.

app.screenery.dev ↗

Auspex Fatalis league standings: a dark, gothic screen showing the player in second place of five.

Auspex Fatalis

Kill Team league app · Side project · 2026

Runs a small in-person Kill Team league from your phone. Score reporting, a schedule with no rematches, standings, and a finals bracket. Sign in with Discord, since that's where the league already hangs out.

Latest · A quest claim in an archived league used to have nowhere to go

auspexfatalis.com ↗

The Wooden Nutmeg homepage with the Colchester deep-dive: 18 budget books, 132 charts, 3,100 documents.

Wooden Nutmeg

Civic data · AI-assisted analysis · 2026

Connecticut town budgets, traced to the primary sources. It started as eighteen years of Colchester budgets and now covers all 169 CT towns. Drafted with Claude, spot-checked against the source PDFs (yes, really).

woodennutmeg.com ↗

Wake Windows' today screen: a countdown to the next nap and the day's nap schedule.

Wake Windows

Baby sleep planner · Side project · 2026

A nap planner for parents of babies up to two years old. Give it age, wake windows, and bedtime, and it lays out the day. Suggestions are checked against published guidance, and everything stays on your device.

wake-windows.netlify.app ↗

The EventBell homepage: "Your Discord events announce themselves."

EventBell

Discord bot · Early days · 2026

Your Discord events announce themselves. Pick a channel once and every scheduled event gets reminders, on time, in everyone's time zone. Setup runs through an MCP server, so your agent can do it (there's a small web console for the humans).

eventbell.app ↗

KT24 Calculator screenshot

KT24 Calculator

Tabletop game tool · Side project

A damage and probability calculator for Kill Team 2024. Compare attacker and defender matchups side by side. I took it over because I needed Vespid weapon math. Now I just keep it current.

ktcalc.com ↗

Power Inbox portal

Power Inbox Portal

Customer web portal · Sr. Developer

Customer self-service for a high-volume email platform. Lets users manage domains, senders, and deliverability without filing a ticket. ASP.NET on top of Service Bus and Redis.

Movid HEP

Movid HEP

Health-tech startup · Co-founder & tech lead

A health-tech startup I co-founded with a physical therapist who hated paper home-exercise programs. Notebook sketch to Startup Weekend Hartford 2012 winner to a real, revenue-generating business.

Before the side projects took over

The most rewarding thing I've done professionally was building, growing, and nurturing a ten-person engineering org.

Offsite dinner, Thailand
Movid HEP, out in the wild

At BTE I hired and grew a team of ten developers and PMs from a one-person shop. Movid HEP went from a notebook sketch to a Startup Weekend Hartford 2012 win to a revenue-generating business.

Tech I reach for

I've used a lot of things over the years. These are today's daily drivers.

  • C#
  • .NET
  • TypeScript
  • JavaScript
  • Vue
  • Blazor
  • PostgreSQL
  • Redis
  • HTML
  • CSS
  • Git

Started on Classic ASP, then PHP/MySQL, eventually C# and .NET. HTML, CSS, and JavaScript have been along for the whole ride.

Nice things people have said

I've worked with John on a number of complex web dev projects. He's a pro and someone I can count on, whether to advise on best approach or dive deep to resolve some obscure bug. An excellent communicator who's always made himself accessible to us regardless of geographic location.

David Buonomo, President & CTO, Blue Atlas Interactive

When I first met John I was surprised by his friendliness, kindness, and tolerance. He's an experienced manager and a talented developer. His management style makes the whole team love him. Any team will benefit from working with John.

Denis Gvozd, Co-founder, Dev Team Inc

John has done an extraordinary job of sitting down with me, analyzing my problems, and using outside-the-box thinking to come up with creative solutions. Other developers stray down the wrong path and waste your money because they don't fully understand your needs.

Ryan Andrew, CEO

John is a talented IT professional who consistently receives positive feedback on his work and has been requested to return to client sites as additional needs arise.

Lisa Drew, Senior Technical Recruiter

Sometimes you come across an individual who really makes you question your own abilities. John is such a person. He produces excellent quality code using the right technology and truly understands the depths of what he's using.

Mark Adams, Sr. .NET Developer & Application Architect, JBS Software