Data, Dirt, and Agentic AI: Why I Coded a Gardening App | Blog Skip to main content
Cover image for Data, Dirt, and Agentic AI: Why I Coded a Gardening App

Data, Dirt, and Agentic AI: Why I Coded a Gardening App

Published on 8 min read

tl;dr: I wanted to build a garden with my three-year-old, avoid subsidizing grocery monopolies with my paycheck, and stress-test the bleeding edge of Agentic AI coding tools on a low-stakes project. The result? A custom gardening app with a 160-crop database and a constraint-satisfaction solver, a lesson in companion planting, and a thriving mutant sweet potato named “Lil’ Penny.”


My daughter, Penny, is three years old now, which means my household operates in a constant state of high-energy, unpredictable chaos. Recently, she’s become absolutely fascinated by the small garden they have at her preschool. She likes the dirt. She likes the worms.

At the same time, I’ve been looking at our grocery bills. If you follow folks like Austin Frerick, Matt Stoller, or the Institute for Local Self-Reliance, you already know that the current cost of produce isn’t just a lingering symptom of supply chain woes — it’s the predictable result of unchecked corporate consolidation in the grocery sector. Since 2000, the top four grocery firms’ market share has ballooned from 42.5% to 67%, and a Kansas City Fed study found that 60% of the variation in food price pass-through over four decades is explained by this kind of concentration. Food-at-home prices are up nearly 30% since 2020. When a handful of conglomerates control the market, a bell pepper suddenly costs what a gallon of gas used to.

So, I decided it was time to build our own raised beds. It would be a great weekend project to keep a three-year-old busy, and maybe we’d get some tomatoes out of it.

There was just one problem: I am incredibly time-strapped, and my botanical intuition is roughly zero. If I was going to do this, I wanted to maximize my chances of it actually working on the first try. And because I am fundamentally incapable of doing anything without over-engineering a data pipeline for it, I decided to code my own gardening app. I needed it to track planting schedules and local weather, but more importantly, to optimize companion planting — the practice of pairing plants that benefit each other through pest reduction, improved pollination, and shared soil nutrients. If you pay a water bill in San Diego — where rates are projected to rise 61% through 2029 — using data to pair the right plants together maximizes shade, retains soil moisture, and keeps the utility bill from rivaling my mortgage.


A Sandbox for Bleeding-Edge AI

I also had a secondary, professional motive. The landscape of computational biology and software engineering is currently being radically reshaped by Agentic AI coding assistants. To stay marketable, I make it a point to stay on the absolute bleeding edge of these tools.

Building a gardening app from scratch was the perfect low-stakes sandbox. As I’ve written about recently, giving autonomous AI agents access to your important, production-level code is a fantastic way to accidentally delete your life’s work or join a botnet. I prefer my AI agents to YOLO responsibly. If an AI agent hallucinated a terrible database schema or wrote a completely broken UI component, the worst that would happen is I’d plant my radishes a week late.

So I cycled through contenders: Kilo Code’s new stealth model, NVIDIA’s Nemotron, Qwen 3.5 running locally via LM Studio, Google’s Anti-Gravity, and the list goes on. I wanted to answer the hot questions in the field for myself — can you really run a competitive coding agent locally on a MacBook with no API costs? Is the latest open-source model as good as the benchmarks claim?

The honest answer? They kind of work. Each tool had moments where it impressed me. But here’s what I learned as a parent with maybe 45 minutes of free time after bedtime: when your time is the scarce resource, accuracy beats everything. I kept coming back to Claude Code because it gave me the correct answer on the first try more often than anything else I tested. It’s expensive to serve, but if a cheaper tool costs me an extra hour of debugging at 10pm when I could be sleeping? That’s not actually cheaper. The real currency isn’t dollars — it’s the number of toddler-free minutes you have before you pass out on the couch.


Under the Hood

For the fellow nerds in the audience, here’s what the app actually does. HortiLogic is a parametric garden planner built on Square Foot Gardening principles — the method that produces up to 2-3x more harvest per square foot compared to traditional row planting, with a fraction of the water.

The core of the app is a constraint-satisfaction solver that fills your raised beds while juggling five competing objectives simultaneously:

  • Companion planting rules — enemy crops are never placed adjacent to each other (sorry, tomatoes and fennel)
  • Water-need grouping — crops on the same row are matched by water intensity, mirroring how real drip emitter tubing works. Research shows this kind of hydrozoning can cut landscape water use by 20-50%.
  • Height optimization — tall and trellisable crops get placed on the north side of your beds to minimize shading on shorter neighbors
  • Seasonality filtering — enter your ZIP code and the entire app recalculates planting windows against your local frost dates
  • Diversity scoring — the solver favors variety across botanical families, because monocultures attract pests

All of this runs against a 160+ crop database sourced from Mel Bartholomew’s Square Foot Gardening, Louise Riotte’s Carrots Love Tomatoes, and university extension guides. The tech stack is TypeScript (strict mode), React 18, Vite, Tailwind, and Zod for validation. The whole thing runs in the browser with no backend — your garden data never leaves your device.

And because I’m a firm believer in test-driven development: 504 tests across 33 suites. If the solver tells you basil and tomatoes are friends, it’s because the test suite says so too.


The Reality of Dirt, Gophers, and Mutants

Of course, all the predictive algorithms in the world can’t account for local wildlife. Here in Southern California, gophers absolutely rule the subterranean landscape, so step one was stapling heavy-duty gopher wire to the bottom of each box before the soil even went in.


In a political and economic climate that often feels entirely out of our control, there is something deeply restorative about building something tangible with your hands. The app is running. The solver works. The data says my basil and tomatoes are going to be very happy neighbors. But the real ROI on this project isn’t measured in optimized water usage or lines of TypeScript.

It’s measured in a three-year-old’s hands in the dirt, a family’s mutant sweet potato defying the odds, and one fewer trip to the grocery store monopoly.

The data pipeline can wait until after bedtime.


Grocery Consolidation & Food Prices:

San Diego Water Rates:

Gardening Science:

AI Tools & Security:

HortiLogic:

Tags:

← Back to Blog