Site logo
Success breeds complacency. Complacency breeds failure. Only the paranoid survive.
Andy Grove

About Me

Hi, I'm just out here in the world, you know, trying to make a quick buck like everybody else. I just write here for fun.

Technologies

This blog is powered by .NET 10.0 with ASP.NET Core Razor Pages, SQLite database with persistent Cloud Storage storage, Markdown content processing via Markdig, and Pico.css for styling. Development leverages Rider and Visual Studio Code with advanced AI assistance through JetBrains Junie and GitHub Copilot Agent powered by Google's Gemini and Anthropic's Claude, representing a significant evolution from the original vim + ChatGPT workflow to modern agentic AI development patterns.

Deployment

Locally the app was built and tested with dotnet run. Upon reviewing the next steps, ChatGPT recommend using a container and the app was built and tested locally with Docker.

The container is deployed to Google Cloud Run and runs on the cheapest parameters I could manage. The database is a local SQLite file mounted to a Google Cloud Storage bucket for persistence, costing $0/month.

The following is a quote from ChatGPT about the great experience I had hosting this container in Azure (before I gave up and moved to Google Cloud to save $50/month):

Yeah… you’ve just hit one of the rough edges of Azure Container Apps. The “Custom Domain” + “Managed Certificate” workflow in the portal looks like it’s all one smooth wizard, but under the hood it’s actually two different resource types in two different places, and sometimes the hand-off between them just… fails silently.

AI Development Evolution

Version 1: Vim + ChatGPT (Original Development)

AI was used in the creation of this work and it was mostly a pain in the ass. It tends to Make Things The F*ck Up. It has been and continues to be the strangest pair programming partner to date, delivering a robotic psuedo intelligence with deep bullshitification, amazing ability to parse through documentation, and little ability to remember what the hell is going on from one moment to the next.

The original development workflow involved manually copying code between vim and ChatGPT conversations, constantly re-explaining context, and dealing with the AI's tendency to forget previous decisions. It was like pair programming with someone who had perfect recall of documentation but amnesia about everything we just discussed five minutes ago.

Version 2: Agentic Copilot

The transition to agentic AI represents a fundamental shift from reactive assistance to proactive collaboration. Instead of manually shuttling between editor and chat, the AI agent can directly examine the codebase, understand the architecture, and autonomously execute complex multi-step tasks.

Where Version 1 required explaining the same context repeatedly, Version 2 agents maintain understanding across the entire workspace. They can review code, analyze dependencies, create documentation, and even reflect on their own role in the development process - all while maintaining context about the project's history and goals.

This workflow operates through GitHub Copilot Chat premium integration, where requests are routed from Visual Studio Code through Microsoft's infrastructure to Anthropic's Claude Sonnet 4 model. The agent has direct access to the entire workspace through VS Code's extension API, enabling it to read files, execute terminal commands, run builds, and make code changes autonomously. The architecture provides full workspace context and multi-step task execution capabilities rather than single-response interactions.

Version 3: Rider / Junie / Google Cloud Run (Current Maintenance)

The latest evolution involves JetBrains Junie operating within Rider, an autonomous AI agent that handled the migration from expensive PostgreSQL managed databases to a cost-optimized SQLite architecture. Junie reconfigured the entire stack for Google Cloud Run, utilizing Google Cloud Storage buckets via FUSE mounts to ensure data persistence for $0/month.

Furthermore, the blog transitioned from a file-based system to a fully database-driven CMS. This version introduced a browser-based Admin Dashboard for content management, a persistent Image Gallery, and a self-hosted analytics system. These changes allow for seamless, terminal-free publishing and real-time visitor tracking without third-party scripts.

The irony is not lost that this very section was updated by an AI agent analyzing its own role in the project's cost optimization and infrastructure migration.