Blog

The Latest from Our Team

    Colorful wooden counting toy with four rows of shapes (circles, squares, triangles) in red, orange, yellow, and green on a wooden grid.

    Feature, Story, Task, Bug

    by 

    |

    |  

    in ,

    The last good thing that ever happened to my team was the day we stopped arguing about whether something was a Story or a Task. I want to be honest about the conditions before that day. We had a backlog. We had a board with columns. We had labels. We had a tool — a…

    Read more…

    Magnifying glass over a notebook page, highlighting a blue speech bubble with three dots

    Fall in Love with the Problem

    by 

    |

    |  

    in , ,

    AI has created more change than most of us have seen in our careers. New companies and products are launching at a remarkable pace. Conversational interfaces and agentic workflows have opened up entirely new ways to solve problems (our own Chad Michel recently wrote a book on it, From Buttons to Conversations). AI-native startups are…

    Read more…

    Double exposure: side profile of a man wearing a hat, blended with a cloudy sky backdrop.

    Synthetic Users as a Design Tool

    by 

    |

    |  

    in ,

    Every designer knows the moment when you’ve gotten too close to your own work. You’ve been in the same flow for days, you’ve run it past everyone within arm’s reach, and somewhere along the way you started designing for yourself instead of for the person who’ll actually use it. I hit that wall on a…

    Read more…

    Person typing on a backlit laptop keyboard in a dark, blue-tinged setting, suggesting cybersecurity activity

    Two Branches and Boring Deploys: A Simpler Take on GitFlow

    by 

    |

    |  

    in

    Branching is one of those topics that can start a fight in a team chat. Some developers love GitFlow. Some developers hate it. Both camps are usually right, because they are arguing about different things. On our projects, we want to move quickly without giving up stability. Full classic GitFlow, with release branches, hotfix branches,…

    Read more…

    Person typing on a silver laptop displaying code, with another laptop nearby in a bright office.

    Running OpenAI’s Codex CLI Locally with Ollama

    by 

    |

    |  

    in ,

    I like knowing what’s happening on my machine. When I use a tool, I want to understand what it’s doing, where my code is going, and what I’m paying for. That’s why I spent some time getting OpenAI’s Codex CLI running locally through Ollama, and I think you should try it too. Codex CLI is OpenAI’s…

    Read more…

    Long-exposure street scene showing colorful light trails from moving cars at a busy intersection at night, conveying speed and urban motion.

    Building a Really Snappy Offline-First Flow with TanStack Query

    by 

    |

    |  

    in

    A common issue with modern software is the network call. This can be a problem in two ways. First, these calls can be slow, creating a mediocre user experience. The second problem is that these calls can fail when we are having network problems. So I thought, can we run our UI off an offline…

    Read more…

    Magnifying glass held over binary code (0s and 1s) on a screen, symbolizing data inspection or analysis.

    How to Spot Bad Code (Even If You Don’t Write Any)

    by 

    |

    |  

    in

    You don’t need to know a programming language to tell when code is in rough shape. A lot of “bad code” looks bad in ways anyone can see — the same way you can tell a kitchen is messy without being a chef. You might encounter this more often than you expect. A vendor submits…

    Read more…

    Five wooden cubes sit along a white line of connected squares, culminating in a cluster of four yellow cubes—symbolizing growth or progression toward a goal.

    Deploying Containers to Azure App Services

    by 

    |

    |  

    in

    I’ve been running a project on an Azure App Service for a while now, and I’ve landed on a setup I’m pretty happy with: a single Docker container that bundles the Angular frontend, NestJS API, and Caddy as the web server. The whole thing builds in GitHub Actions, pushes to Azure Container Registry (ACR), and…

    Read more…

    Person standing at a glass-walled balcony, holding a mug, overlooking a lit city skyline; tablet, notebook, and glasses on a desk in the foreground.

    Policies Don’t Lead

    by 

    |

    |  

    in ,

    Over the past year, we’ve spent a lot of time helping organizations figure out what AI actually means for their business. We’ve also been doing the same work ourselves inside Don’t Panic Labs. Along the way, something has become increasingly obvious to me. Almost everyone starts in the same place. Someone asks Legal to draft…

    Read more…

    Laptop on a white table in a data center, screen displaying code, with yellow Ethernet cables on both sides.

    It’s Just Config

    by 

    |

    |  

    in

    Friday, 4:47 PM. An engineer opens a pull request on a billing service. One file changed. One line changed. The reviewer is already in their coat. “LGTM — it’s just config.” The PR merges at 4:58. By Monday morning, the team will have charged 3,800 customers two to four times each, refunded $2.3 million, and…

    Read more…