Learn how to estimate software development time with a 6-step framework covering scope, sizing methods, risk buffers, and stakeholder buy-in.
The Shift Toward Local AI: A Developer’s Perspective
AI has moved fast, faster than most of us expected, and the cost of keeping up is starting to show. What began as inexpensive, wide-open access to powerful cloud models has shifted into a landscape of rising token prices, stricter quotas, and unpredictable availability. More teams are starting to ask a question that would have sounded unrealistic a year ago: should we start hosting our AI models locally?
In this post, I’ll walk through why token costs and model access are becoming harder to rely on, why open models and local hardware are closing the gap, and what actually happened when I ran a full agentic workflow on my own machine, starting with the cost problem that kicked this off.
Building a React Component Library for Next.js with Storybook
In my last post, Implementing GitHub OAuth with NextAuth.js, we set up a standard single sign on flow with GitHub OAuth in NextAuth.js. This article assumes that you have followed along with that article already, and have your own version of that project locally. If not, but you already have a Next.js project, then you can follow along here just the same.
Last time, we set up a very basic dashboard to demonstrate displaying a signed-in user’s name, avatar, and some usage data from the GitHub API. Since then, NextAuth.js has evolved into Auth.js, but the GitHub implementation remains largely the same. However, if you haven’t upgraded your Next.js projects in a while, I would recommend doing so first.
In this post, we’ll pick up where we left off: upgrading your project’s dependencies, then decomposing your components into a scalable library using atomic design principles (atoms, molecules, organisms, templates, and pages). From there, we’ll install and configure Storybook for Next.js and Tailwind, write your first component stories in Component Story Format 3, and set up shared fixtures so you can preview and test components without depending on live GitHub API calls.
From 38 Seconds to 1.5: A Claude Code Performance Win
A sluggish ASP.NET page with 3,850 checkboxes was taking 38 seconds to load. By collaborating with Claude Code and shifting to client-side rendering, load times dropped to just 1.5 seconds — a 25× performance boost. Here’s how AI-assisted refactoring transformed the page and the development process.
AI in Coding: Using ChatGPT and Copilot to Build JavaScript Animations
Artificial intelligence isn’t just changing how we write code—it’s transforming how we think about creativity in development. In this post, I revisit the playful spirit of early programming through a series of AI-assisted experiments using ChatGPT, GitHub Copilot, and JavaScript Canvas on CodePen. Along the way, I uncover practical lessons for developers on using AI to accelerate learning, inspire exploration, and rekindle the joy of creative coding…





