
“AI will write 90% of code by tomorrow.” “Developers will be obsolete in five years.” Tech Twitter loves a good doom spiral. Engagement farms thrive on fear. Scary sells. But here is what the data actually shows: AI is not a replacement. AI is amplification, and that amplification cuts both ways. AI is chewing through…
Read more…

In my previous post, we discussed the initial setup of the new Copilot SDK. This post will cover how we actually hook up the official @github/copilot-sdk inside an Electron and Angular application. Why is this structure necessary? When building a desktop application, we want a clean separation of concerns. We need to run the SDK…
Read more…

Starting a new project with a fresh SDK is always an interesting way to spend a weekend. I’ve been digging into the new Copilot SDK from Microsoft, and it has the potential to change how we think about integrated AI. Here is a look at how to get it running and why I think the…
Read more…

Here’s a question I’ve been chewing on lately: could a custom-built model for JavaScript/TypeScript actually outperform a flagship, general-purpose LLM while using a fraction of the memory and cost? For a lot of real-world developer tasks, the answer in early 2026 is yes. Now, I’m not claiming specialists win everywhere. That would be silly. But…
Read more…

I’ve always loved working with plain old CSVs for my analysis and scripting needs. They are simple, portable, and just work everywhere. So when I got handed a Microsoft Access database that I needed to break out into individual CSV files, I figured I’d whip up a little toolchain to handle it reliably on my…
Read more…

Once I got the command-line version working exactly how I wanted, I noticed I was doing the same thing over and over: pick an Access file, choose an output folder, hit run, then open Finder to dig through the CSVs. It worked great, but it felt a little clunky—especially if I wanted to share it…
Read more…

Now that we’ve covered the technical implementation (see Part 1 and Part 2), let’s see what this agent can actually do. Here are three examples that demonstrate how natural language interactions can replace tedious UI workflows—each one progressively more powerful. Example 1: Quick Lookups The simplest use case is finding information without navigating through menus….
Read more…

We all dislike typing a message to an AI agent and then just staring at a spinning loader for ten seconds with zero feedback. It feels slow and lifeless. In part 2 of this series, I’m going to walk you through how I added proper token streaming over WebSockets so users see the agent’s response…
Read more…

There’s something really satisfying about building an AI agent that can actually take action in your application. In this post, I’ll walk you through how I integrated LangChain tools into my NestJS backend to create an agent capable of searching contacts, creating events, sending messages, and handling a bunch of other tasks. The Tech Stack…
Read more…

At Don’t Panic Labs, we frequently discuss Volatility-Based Decomposition (VBD). It is an architecture practice that groups and boundaries systems by where change occurs. Instead of organizing purely by domains or technical layers, VBD identifies parts of the codebase that change together or change frequently. We use those patterns to inform seams, ownership, and stabilization…
Read more…