The Shift Toward Local AI: A Developer’s Perspective

John Hoestje Articles, Artificial Intelligence, Automation, Machine Learning, Programming, Tutorial Leave a Comment

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

Bob Palmer Articles, Development Technologies & Tools, React, Tutorial Leave a Comment

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

Bradley Hicken .NET, Agentic AI & AI-Accelerated Development, Articles, Artificial Intelligence, ASP.NET, Development Technologies & Tools, JavaScript, Tutorial Leave a Comment

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

Chris Vaught Agentic AI & AI-Accelerated Development, Articles, Artificial Intelligence, Development Technologies & Tools, Generative AI & LLMs, JavaScript, Tutorial 1 Comment

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…

From Relic to Relevance: COBOL’s 88-Level Fields for Modern Coders

Luke Zeisset COBOL, Modernization, Programming, Tutorial Leave a Comment

Remember when blockchain was going to change everything? Now AI is the trend dominating every conversation—but some of the most effective programming ideas have been around for decades. This post examines one of COBOL’s lesser-known yet highly practical features: the 88-level field. Far more than a simple boolean, 88-level fields provide a clear, maintainable way to describe data conditions, enforce business rules, and streamline initialization. Through real-world examples, you’ll see how this feature can reduce complexity, eliminate hard-coded values, and make logic more expressive—demonstrating that sometimes proven tools from “old” languages still have lessons worth applying today.