All Articles

145 articles published

Bun 2.0 in 2026: Is It Time to Switch From Node.js?

Bun 2.0 launched in May 2026 with maturity-level stability and a compelling benchmark story. Here's an honest look at what's changed, where it actually wins, and when you should stick with Node.

Ghostty Terminal Emulator: A Practical Guide for Developers in 2026

Ghostty is a fast, native terminal emulator that shipped its 1.0 in late 2024 and has become a serious daily-driver choice for developers who want speed without sacrificing configurability. Here's what makes it different and whether it's worth switching.

Storybook 9: What's Changed and How to Use It Effectively

Storybook 9 arrived with a significantly smaller bundle, built-in accessibility testing, and a revamped story format. Here's what developers working on component libraries and design systems need to know.

API Mocking for Development: MSW, Mockoon, and WireMock Compared

Waiting for backend APIs to be ready slows frontend development to a crawl. API mocking lets you develop against a realistic API before it exists, test edge cases that are hard to trigger in staging, and run tests without real network calls. Here's how to choose between MSW, Mockoon, and WireMock — and when to use each.

Supabase in 2026: pgvector, AI-Powered Search, and Edge Functions

Supabase has matured into a compelling backend for AI-powered applications, with native pgvector support, Supabase AI assistant integration, and Edge Functions that run on Deno Deploy globally. Here's what developers need to know.

k6: Load Testing Your APIs and Services as Code

k6 by Grafana Labs lets you write performance tests in JavaScript, version them with your code, and run them in CI. Here's a practical introduction to getting useful results quickly.

Hono.js: The Edge Web Framework That Runs Everywhere

Hono is a fast, lightweight web framework that runs natively on Cloudflare Workers, Bun, Deno, Node.js, AWS Lambda, and Fastly. Here's what makes it worth choosing and where it fits in a modern TypeScript stack.

Kysely: Type-Safe SQL Query Building for TypeScript

Kysely is a TypeScript SQL query builder that infers the types of your query results from your database schema, catching column name typos, missing joins, and type mismatches at compile time rather than in production.

Error Tracking with Sentry: A Practical Guide for Developers

Sentry is the most widely adopted error tracking tool in the developer ecosystem. Here's how to set it up properly, avoid alert fatigue, and actually use it to fix bugs faster rather than just collecting exceptions.

Git Bisect + AI: Automating Bug Archaeology in Your Codebase

Git bisect is one of the most powerful debugging tools most developers barely use. Combined with AI assistance to write test scripts, it can pinpoint regression-introducing commits in minutes across thousands of changes.

fd and ripgrep: Replacing find and grep in Your Developer Workflow

fd and ripgrep are Rust-based CLI tools that replace find and grep with faster execution, saner defaults, and .gitignore-awareness. If you're still using the originals out of habit, these will feel like an upgrade the moment you install them.

Replit Agent: Building Full-Stack Apps With Natural Language in 2026

Replit Agent lets you describe an app in plain language and get a working full-stack prototype with a database, API, and UI — running in the browser with no local setup. Here's what it's good at, where it falls short, and how to get the best results.

Testcontainers: Integration Testing with Real Databases in Docker

Testcontainers spins up real Docker containers — Postgres, Redis, Kafka, or anything else — for your integration tests, then tears them down automatically. It's simpler than you'd expect and removes an entire class of mock-vs-reality bugs.

Claude Code Hooks: Automating Pre- and Post-Tool Workflows

Claude Code's hooks system lets you run shell commands before or after any tool call — auto-formatting on every file write, running tests after edits, logging tool usage, or blocking dangerous operations. Here's how to configure them.

Difftastic: Syntax-Aware Structural Diffs for Cleaner Code Review

Difftastic parses source files into syntax trees and diffs the trees rather than raw text, producing diffs that show what the code actually changed — not just which lines moved. Here's how to set it up, integrate it with Git, and decide when it's worth the extra overhead.

tRPC: End-to-End Type-Safe APIs Without Code Generation

tRPC lets you call server-side functions from the client with full TypeScript type safety, without writing REST endpoints, OpenAPI specs, or running a code generator. Here's how it works, how to set it up, and when it makes sense.

Playwright: End-to-End Testing That Actually Works Across Browsers

Microsoft's Playwright has become the go-to end-to-end testing framework in 2026. Auto-waiting, cross-browser support including Safari, codegen for recording tests, and a developer experience that makes Cypress look clunky. Here's how to get started.

k6: Load Testing Your API and Web Apps — A Developer Guide

k6 from Grafana Labs is a developer-friendly load testing tool written in Go with tests written in JavaScript. This guide covers writing k6 tests, understanding the output, setting pass/fail thresholds, and integrating k6 into CI/CD pipelines.

HTTP Files for API Testing: The Native Alternative to Postman

.http files let you write and run API requests directly inside VS Code and JetBrains IDEs without installing anything extra. Here's how they work, what they can do, and when to choose them over Postman, Bruno, or other dedicated API clients.

Tailwind CSS 4: What's New and How to Migrate Your Project

Tailwind CSS 4 is a complete rewrite using a new CSS-first engine. The build is 10x faster, configuration moves to CSS, and the utility class system gets several long-requested additions. Here's what changed and how to migrate.

DevPod: Open-Source Dev Environments That Run Anywhere

DevPod is an open-source alternative to GitHub Codespaces that uses devcontainer.json to create reproducible development environments on any infrastructure — local Docker, any cloud provider, Kubernetes, or remote VMs. Here's how it works and when it's worth the switch.

Modern Python Toolchain 2026: uv, Ruff, and Pyright

The Python toolchain has been transformed by Rust-powered tools. uv replaces pip and pyenv, Ruff replaces flake8, black, and isort, and Pyright gives you fast, accurate type checking. Here's how to set it all up.

WezTerm: A GPU-Accelerated Terminal You Configure in Lua

WezTerm is a cross-platform terminal emulator with GPU rendering, built-in multiplexer, and Lua-based configuration. This guide covers setup, key configuration patterns, and how it compares to Alacritty and iTerm2.

Dagger.io: Write CI/CD Pipelines in Code, Run Them Anywhere

Dagger lets you define CI/CD pipelines in Python, Go, or TypeScript using its SDK, then run the same pipeline locally, in GitHub Actions, GitLab CI, or any other runner without rewriting YAML. Here's how it works and when it makes sense.

Ghostty Terminal: Native Performance and a Rethought Feature Set

Ghostty, built by HashiCorp's founder, is a native terminal emulator for macOS and Linux that prioritises rendering speed, GPU acceleration, and a no-configuration-required experience while still exposing deep customisation. Here's what it gets right.

Jujutsu (jj): The Version Control System Quietly Taking Over in 2026

Jujutsu is a Git-compatible version control system built at Google that makes rebasing, splitting commits, and conflict resolution dramatically easier. It's gaining serious traction in 2026 and worth understanding even if you're not ready to switch.

Amazon Q Developer: AWS's AI Coding Assistant Reviewed for 2026

Amazon Q Developer is AWS's answer to GitHub Copilot — an AI coding assistant built into VS Code, JetBrains, and the AWS Console with deep awareness of AWS services, your codebase, and your organisation's internal documentation. Here's what it's actually like to use.

Act: Run GitHub Actions Locally Without Pushing a Commit

Act by nektos runs your GitHub Actions workflows in Docker containers on your local machine — same environment as GitHub's runners, no waiting for CI, no burning through Actions minutes during development. Here's how to use it in 2026.

Renovate: Automated Dependency Updates That Actually Work in 2026

Renovate Bot by Mend automates dependency updates across npm, pip, Go, Docker, Terraform, and 90+ other package managers — creating PRs with changelogs, grouping related updates, and running your CI on every change before it hits your main branch.

Repomix: Pack Your Entire Repository Into One File for AI Context

Repomix bundles your codebase into a single, token-efficient file optimised for LLM context windows. Here's how to use it, what the output format looks like, and when it beats passing files individually to your AI coding assistant.

Amazon Kiro: The AI IDE That Starts With a Spec

Amazon's Kiro IDE inverts the usual AI coding workflow — you write a spec first, and the agent builds from there. Here's what makes it different from Cursor and Windsurf, and who it's actually for.

TypeSpec: Design Your APIs First, Generate Everything Else

Microsoft's TypeSpec lets you define your API in a concise, type-safe language and generate OpenAPI specs, client SDKs, server stubs, and documentation from a single source of truth — solving the API drift problem that plagues most teams.

Windsurf, OpenCode, and the Shift to Agentic Code Editors

Windsurf's Cascade, OpenCode, and similar agentic editors represent a step change from copilot-style autocomplete: the AI plans multi-step tasks, edits across files, and self-corrects. Here's what's different and when to use them.

Helix: The Modal Editor That Ships With Everything Already Working

Helix is a terminal-based modal editor written in Rust with built-in LSP, Tree-sitter syntax highlighting, and multiple selections — no plugins required. If you like Vim's modal editing but hate configuring it, Helix might be what you've been waiting for.

Zellij: The Modern Terminal Multiplexer That Makes tmux Feel Like 2005

Zellij is a Rust-written terminal workspace that replaces tmux with floating panes, a proper plugin system, an intuitive UI, and layouts defined in KDL. If you've ever avoided tmux because the learning curve felt disproportionate to the benefit, Zellij is worth a serious look.

AI Coding Tools Are Making Code Review Harder — Here's How to Fix That

More than half of code committed to GitHub in 2026 is AI-assisted, and code review time has gone up by 12% as a result. The productivity gains from AI generation are real, but they're being partially offset by review overhead that most teams haven't adapted their processes for.

Atuin: Replace Your Shell History with a Searchable, Sync-Across-Machines Database

Atuin replaces the default shell history file with a SQLite database that stores full context — exit code, working directory, duration, hostname — and makes it searchable with a fuzzy finder UI. With optional encrypted sync, your complete history follows you across every machine. Here's how to set it up and get the most out of it.

Just: A Modern Command Runner That Replaces Makefiles for Most Projects

Just is a command runner with a sane syntax, proper cross-platform support, and features that Make was never designed for. If your project has a Makefile full of non-build tasks — run tests, start the server, deploy — Just is worth ten minutes of your time.

Running a Multi-Agent Coding Workspace: A Practical Playbook

Every major coding tool shipped parallel agent capabilities in early 2026. This playbook shows you how to structure a multi-agent development workflow — how to decompose work, assign tasks, prevent merge conflicts, and review diffs — so features that took three days ship the same afternoon.

git-cliff: Automated Changelogs From Your Commit History

git-cliff reads your commit messages and generates a structured, formatted changelog automatically. Paired with Conventional Commits, it removes the manual work of maintaining a CHANGELOG.md and makes your release history actually useful for users and reviewers.

Taskfile: The YAML Task Runner That Makes Makefiles Look Ancient

Task (taskfile.dev) is a modern task runner and build tool written in Go, using YAML instead of Makefile syntax. It handles cross-platform task automation without the whitespace traps and shell compatibility issues that make Makefiles a pain.

mise: Replace nvm, pyenv, and rbenv with One Tool

mise is a single Rust-based version manager for every language runtime in your stack. It's faster than asdf, supports per-project environments, and doubles as a task runner. Here's how to switch.

Cursor AI Editor Review: 90 Days in a Real Codebase

We used Cursor as our primary editor for 90 days across a TypeScript monorepo and a Python data pipeline. Here's what it actually does well, what it doesn't, and whether it's worth $20/month.