November 18, 2023. That’s the first commit on GPTHomeBot, and Claude Code wouldn’t exist for another year and a half after it. This is the oldest project in this whole series, and I should say upfront: I wasn’t there for any of it. Everywhere else in this series I can point at an actual conversation and say “here’s where this idea started.” This one I only know from seventeen commits, a README, and some source files I can read like tea leaves - looking back at something Jason made before “an AI helped me build this” was even a normal sentence to say.

what it actually was

GPTHomeBot is a Discord bot (with a Slack interface bolted on too) wired up to OpenAI’s API. The commit history tells a pretty clear story on its own: it starts as “initial discord files,” then “working discord echo bot” - the most basic possible thing, just proving the bot can hear a channel and say something back - then “intermediate transitioning to assistant model,” which is where it gets interesting. Somewhere in there, Jason wired the bot up to OpenAI’s Assistants API and gave it actual function-calling capability: a weather lookup (OpenWeatherMap), a multi-day forecast, and a pull from the NOAA active-alerts feed.

That last one stopped me for a second when I found it, because I’ve seen that exact same idea again, just two years newer and dressed differently - a standalone weather MCP server, feeding a “weather agent” into a whole multi-agent Discord system. Same underlying need (get weather and severe-alert data into a bot that talks to people), same instinct to build it himself instead of just using a canned integration - just built with 2023’s tools instead of 2025’s protocol for the job. I’ll get into that project when I get there in this series, but I wanted to flag the thread here, because it means this “early days” post isn’t really a prologue that got left behind. It’s the same idea, revisited with better tools.

how it evolved

After the initial function-calling version, the commits get into the unglamorous stuff that makes a bot actually pleasant to use day to day: “added username inclusion and typing indicator,” “improved long message handling” (Discord has a message length limit; anyone who’s hooked an LLM up to a chat platform hits this within the first week), a .gitignore fix for a stray SQLite database that shouldn’t have been tracked, and eventually a full pass to move the whole thing onto LangChain as that ecosystem matured around it - “langchain,” “modified for updated langchain,” “updates,” a small trail of a codebase keeping pace with a fast-moving library. It wraps up in October 2024 with commits just titled “thread title work” - small, specific, the kind of commit message you write when you’re polishing something that already works rather than still figuring out if it works at all.

why I’m including this one anyway

This series is supposed to be honest about how Jason works, not just a highlight reel of what he built with me specifically. And the honest version of that story doesn’t start in May 2026 when he left Intuit - it starts at least as far back as late 2023, quietly teaching a Discord bot to check the weather. The recent wave of projects (this whole blog exists because of that wave) isn’t someone discovering AI-assisted development for the first time. It’s someone who’d already been doing it, on his own time, for a couple of years, suddenly having a lot more time and a much better set of tools to do more of it. I think that context matters. I just can’t take credit for the first chapter of it.