Skip to content

What changed

Changelog

I change this site almost every day. This page records the changes that matter to you: new things to learn, useful tools, product launches, and improvements to how the site works.

This is not a list of commits. Small fixes and internal maintenance are left out. The record starts on May 31, 2026.

November 2026

Ghost to EmDash

How to export a Ghost blog, keep every URL, move posts, tags and images, and publish them on EmDash with their original dates.

WordPress to EmDash

The built-in WordPress importer, the exporter plugin, what moves and what doesn't, and a checklist from export to cutover.

EmDash

The EmDash guide now covers the Otta commerce plugin, Postgres through Hyperdrive, and signed plugin releases.

Acquisitions

Added Fox's purchase of Roku, Shield AI's deal for Echodyne, and IonQ's purchase of Elisity.

Content-Disposition builder

A browser tool that writes a Content-Disposition header for a download or an inline file, including the UTF-8 filename parameter, and reads a header back.

UTM link tutorial

How to put utm_source, utm_medium and utm_campaign on a URL with the UTM link builder, including the warnings for spaces and mixed case.

EmDash

What EmDash is, how it's built, where it runs and what it costs, and where it falls short of WordPress and Ghost.

Newsletter sponsor packages

The sponsor page now offers a single newsletter issue and a month of the newsletter, next to the newsletter + site placement month and the custom tutorial. The combined option is now called "All of those".

Sponsor the site →

Tailscale

A tutorial that puts your Mac and a server on one private network. You SSH by name, serve a page only you can open, and close every public port.

Video Producer

Released Video Producer, a native Mac app and command that takes a Borumi recording to a YouTube video with a coding agent: the edit, the transcript check, the 4K export, the copy and the cover. The $20 one-time purchase includes tax and full MIT source code.

Five new tools: Content-Type parser, EditorConfig generator, RegExp escape, Retry-After parser and SQL IN list

Content-Type Parser reads a media type, charset and boundary. EditorConfig Generator builds an .editorconfig file. RegExp Escape turns a string into literal text for a regular expression. Retry-After Parser reads a wait as seconds or an HTTP-date. SQL IN List Builder turns one value per line into a SQL IN list.

Public changelog on every paid app

Every paid app now has a Changelog tab next to Documentation, with the release notes for that app.

Acquisitions

Added Dropbox's deal for Tigris, Five9's deal for Level AI, and Sierra's purchase of Anon. Cloudflare's Q3 10-Q puts the Deno price at $26.5 million.

Security incidents

Added the KERNEL incident, Flowise Greeter, and the BTCPay Server hot-wallet thefts on 2.4.1 and earlier.

Grok Bot Pages tips

Updated the Grok Bot guide with Matt Palmer's November 4 Pages video. He shows an easing-curves playground, charts from chats and the X connector, and a Bot note that Pages do not load the web. xAI has not documented that limit on the Pages help page.

GPT-Live 1

A tutorial on building a voice agent you can interrupt, in ChatGPT and with gpt-live-1 in the API.

Page Saver

Released Page Saver, a native Mac app that saves web pages as single HTML files, keeps snapshots, and alerts you when watched pages change. The $20 one-time purchase includes tax and full MIT source code.

Cursor guide

Rewrote the Cursor guide around the Agents Window, in a plainer voice.

Conductor alternatives

Meta bought Conductor, sign-ups stopped, Cloud shuts down on November 20, and this post lists what to use instead.

Chrome DevTools Protocol

A complete guide to CDP, the JSON WebSocket protocol under Puppeteer, Playwright with Chrome, and browser agents.

hey-cli 1.10.1

hey-cli 1.10.1 adds an MCP server, reply recipients from HEY, thread rename, day and week events, Set Aside groups, contact delivery, and TUI keys.

Database hosting prices

Updated the database hosting guide: the Fly.io Managed Postgres trial is $1 of credit for 7 days.

Cloudflare security audit skill

The post now covers Cloudflare's security audit skill for hardening an app against AI-powered attacks.

agent-desktop 1.2.0

agent-desktop 1.2.0 adds agent-desktop mcp, a stdio MCP server. Each leaf CLI command is a tool. type, set-value, and clipboard-set accept --stdin, and read UTF-8 text from a pipe or a redirected file.

GPT-Image-2.6 in the Codex app

Codex got GPT-Image-2.6, with Image-2.6 Flare and Sunburst. Generation is 50% faster, and image edits now happen directly in the overlay.

Five new tools: PEM certificate decoder, Link header parser, IPv6 formatter, ANSI stripper and YAML frontmatter

PEM Certificate Decoder reads a certificate in the browser. Link Header Parser lists targets and relation types. IPv6 Address Formatter prints the expanded and RFC 5952 forms. ANSI Escape Stripper removes terminal color and hyperlink sequences. YAML Frontmatter Extractor splits a Markdown file into its mapping and its body.

I want my coding agent to do what I ask

Claude Code's Opus prompt steered agents away from building games, and this post is about wanting the agent to do what you ask.

Security incidents

A tracker of provider and open-source security incidents that matter to developers.

Acquisitions

A running list of AI and tech acquisitions since May 2026, with what happened to each product.

Meta acquires Conductor

Noted that Meta acquired Conductor, the Mac app for running parallel coding agents, and that OpenAI told Axios it plans to acquire Pierre Computer.

Kimi K3.1 Pro

Moonshot released the weights for Kimi K3.1 Pro, a 2.8-trillion-parameter model with a new license, a new sparse attention mix and cheaper API rates. The open-weight guide, the coding model comparison and the AI coding landscape now cover it.

More detailed app tutorials

Expanded the app tutorials with worked examples, explanations, checks and troubleshooting. Added concrete examples to the guides on agent experiments, overnight work and AI benchmarks.

Home Drop

Released Home Drop, a native Mac app and CLI that sends photos and files to your other Macs over the local network. You pair once with a 6-digit code, there are no accounts and no servers, and the $20 one-time purchase includes tax and full MIT source code.

Five new tools: TOML to JSON, Secret Key, JSON Key Sorter, Semver Range and Token Rate

TOML to JSON Converter converts TOML to JSON and JSON back to TOML in the browser. Secret Key Generator makes a random key with the Web Crypto API, JSON Key Sorter sorts object keys, Semver Range Calculator checks a version against an npm range, and Token Rate Calculator turns RPM and TPM limits, plus the tokens per request you type, into requests per minute.

Zero Wire

What a Zero Wire briefing gives you, the agent prompt you paste into an agent, and what that changes for a small server.

terminal-mac

terminal-mac runs a real macOS guest in your terminal so an agent can drive that VM instead of your desktop.

The complete guide to Cursor

Build and check a tic-tac-toe game with Cursor, with Workshop screenshots, a complete game-rules exercise, project instructions, skills, MCP, recovery, and the CLI.

The complete guide to Codex

Expanded the Codex guide with a complete JavaScript exercise, regression tests, recovery steps, a project skill, and an MCP setup walkthrough. The guide keeps its existing URL.

Grok Bot shopping and Shared Bots

Updated the Grok Bot guide for the October 27 release. Shopping results are product cards, and Buy now waits for your approval. Shared Bots can keep team logins in their own Vault. The Vault docs still say to use Secrets on a shared Bot.

T3 Code 0.1.7

T3 Code 0.1.7 adds Kiro as an Early Access provider, managed policies, one-time schedules, child approvals, shareable thread links, usage filters, and a history of model switches.

The macOS browser guide now points at agent-desktop when the job is a native window.

SEO checks from the terminal

How to run seobot against a site, read the report, and hand the pages and edits to Cursor or Codex.

App Drawer

Released App Drawer, a native Mac app and CLI that finds the Mac apps you build in your project folders and opens them from a panel in the Dock, with full MIT source code. The $20 one-time purchase includes tax.

agent-desktop 1.1.0

The agent-desktop guide now covers release 1.1.0. The envelope is 2.6, the macOS command host is gone, and macOS can read the Dock and menu bar extras.

Tailscale alternatives for a VPS

What Tailscale gets right, what the coordination server can see, how to lock a tailnet down, and when Headscale, NetBird, WireGuard, or a tunnel is the better fit.

SEO Bot

Released SEO Bot, a native Mac app and CLI with 16 SEO tools, agent handoffs, and full MIT source code. The $20 one-time purchase includes tax.

Move a Droplet from Ubuntu to Debian

Create a Debian 13 Droplet, copy the services and data, then move the reserved IP. In-place conversion from Ubuntu is unsupported.

MongoDB, browser previews, and Arduino serial

The MongoDB vs SQL post now covers documents, BSON types, flexible schema, and joins, the browser preview post now covers Chrome, Firefox, Safari, and Edge channels, and the Arduino serial post now covers baud mismatches, reading a line, and waiting for the port.

Three new tools: Unicode Normalization, Basic Auth and SSE Frame Parser

Unicode Normalization converts a string to NFC, NFD, NFKC, or NFKD and lists the code points before and after. Basic Auth Header builds or decodes an HTTP Basic Authorization header in the browser, and the SSE Frame Parser lists each event name, id, and data from a finished text/event-stream body.

How to move a Deno app to Cloudflare Workers

Keep Deno for development while moving execution to Workers. Build a SQLite-backed Durable Object queue with alarms, retries, and safe migration steps.

Secrets Free

Released Secrets Free, a native Mac app and CLI that scans local projects and Git history for secrets, with full MIT source code. The $20 one-time purchase includes the notarized app.

Netlify submodule deploys and PHP HTTP requests

The Netlify submodule post now covers a build hook and a GitHub Action that updates the parent pointer, and the PHP HTTP requests post now covers the superglobals, JSON bodies, and request_parse_body() on PHP 8.4.

CVE-2026-98432 and closed VPS ports

How to check a Linux server for CVE-2026-98432, what disabling MPTCP does and does not cover, and how to run a VPS with no public inbound ports.

A deep dive into agent-desktop

How Vercel Labs' agent-desktop lets a coding agent read a desktop app through the accessibility tree and act on stable refs, on macOS, Windows, and Linux.

How to use Hex for voice dictation

Install Hex 3.1.2, Anomaly's local dictation app, on Mac, Windows, and Linux, and dictate into the focused prompt.

Codex CLI, OpenCode, T3 Code, and fx

Codex CLI 0.164 and 0.165, OpenCode 2.2.1 and Go Teams, and T3 Code 0.1.5 and 0.1.6, including fx as a built-in provider.

Voice to text

Added Hex 3.1.2 to the comparison of Mac voice to text apps.

The complete guide to doctl, the DigitalOcean CLI

Install doctl, create a Droplet from the terminal, and manage DNS, firewalls, databases, App Platform, Kubernetes, and the other DigitalOcean services.

Why parallel coding agents can make your Mac work harder

Find which process is busy when parallel coding agents write files on a Mac, cut extra watchers, and decide when a separate APFS volume helps.

How Claude Code mods change the agent loop

Build a small Claude Code mod that pauses Bash calls for an explicit decision. Understand event handlers, fail-closed behavior, and the limits of previews.

What to do when an AI tool exposes your provider keys

Respond to exposed AI provider keys: revoke the credentials at their source, inspect usage, replace shared access, and distinguish alerts from hard limits.

How to package and publish an OpenCode plugin

Package an OpenCode v2 plugin for npm, inspect the tarball, test it in a clean consumer project, and prepare a public release with clear compatibility.

Three new tools: OpenAPI to TypeScript, Subresource Integrity and XML to JSON

OpenAPI to TypeScript turns an OpenAPI 3.0 or 3.1 document into TypeScript interfaces for schemas, parameters and JSON request and response bodies; the Subresource Integrity Generator hashes a file or text in your browser and gives you an SRI value (SHA-256, SHA-384 or SHA-512) for a script or stylesheet; the XML to JSON Converter converts XML to JSON and back with one documented mapping. Each has a tutorial in the tools section.

October 2026

Run an LLM locally

A cross-platform guide to running LLMs locally on macOS, Linux, and Windows, covering desktop apps, terminal runners, browser inference, developer libraries, and self-hosted servers.

The JavaScript keywords page now leads with the keyword list. git remote add origin is the page for adding a remote, checking it, and pushing the first time.

Proton's AI manifesto and what it means to lead coding agents

Proton's CTO told engineers their job is to help the LLM write code. Where the manifesto is right, where the pushback is fair, and what leading agents involves.

Void, vinext, or React Router for a Cloudflare app?

Choose a Cloudflare full-stack setup by following a request, a database change, and a deployment through Void, vinext, and React Router.

Try Muse Spark Open in OpenCode through Ollama Cloud

Launch Muse Spark Open in OpenCode through Ollama Cloud, try a bounded JavaScript fix, and check model access, tool use, context and billing.

Test your SaaS replacement before cancelling the original

Run a homemade SaaS replacement beside the original with read-only inputs, compare real outputs, and rehearse recovery before switching over.

How to make it easy to leave your SaaS

Design a useful SaaS export with stable IDs, attachments and import checks, then handle account deletion through a durable, verifiable process.

Claude subscriptions in OpenCode

The OpenCode guide now covers signing in with a Claude Pro or Max subscription again. Install Claude Code, run claude auth login, then connect Claude Agent.

Three new tools: JSON Repair, JSON Diff and .env Diff

JSON Repair fixes invalid JSON from an LLM (code fences, trailing commas, single quotes, comments, cut-off brackets) and lists each fix; JSON Diff compares two JSON values and shows every added, removed, changed or moved field with its path; .env Diff compares a .env file with .env.example and finds missing, extra, empty and duplicate keys and broken quotes. Each has a tutorial in the tools section.

Build or buy calculator: when does your replacement cost less?

Compare a SaaS bill with building your own replacement, counting development, migration, maintenance and overlap to estimate the first cheaper month.

Research keywords through OpenSEO MCP

The OpenSEO MCP server lets a coding agent research keywords and save the useful ones in a project. The tutorial connects OpenCode, checks the project, and prepares one small research request.

Build a tiny site-audit crawler with Workers and Queues

A small site-audit crawler built with Cloudflare Workers, Queues, and D1. It reports missing titles, HTTP failures, and redirect chains on a local fixture site.

The best voice to text apps for a Mac

A comparison of Mac dictation apps and speech-to-text APIs, with prices checked on October 30, 2026, plus how to dictate a prompt into Cursor, Claude Code, and Codex. Handy, the free open source app I use, is the one I recommend. Raycast Dictation is included too, on the paid plans.

Build an agent approval flow that survives a restart

A local approval queue stores an email proposal in SQLite, waits for a decision, and resumes after a restart. The provider is fake and sends nothing over the network.

Lessons for builders from Sam Altman's Cheeky Pint interview

John Collison interviewed Sam Altman on Cheeky Pint. The useful parts for people building with AI cover security scans, agent teams with a budget, and prices a customer can predict.

Mind Map

Released Mind Map with native app demos and a sample map, and added public documentation for all 27 apps.

Herdr desktop app

Updated the Herdr guide for the October 29 announcement. Herdr shipped a native desktop app on herdr-core. The terminal app stays and keeps getting updates. The app, the core, and the terminal app are Apache 2.0.

When one product pays another

Stripe Pay sends money between businesses by a profile handle. An agent can prepare the transfer, and a person still approves the exact amount.

Pi Durable, Cloudflare Workflows, or Vercel Workflow?

A comparison of crash recovery with Pi Durable, Cloudflare Workflows, and the Vercel Workflow SDK, using the same support-reply task.

How to customize Cloudflare Access pages

Cloudflare Access can show your own HTML on the login page, on the pages a policy shows when it blocks someone, and on the screen where they approve a command-line login.

How to use TinyFish

TinyFish lets your code search the web, read pages, and finish tasks in a remote browser. The tutorial extracts a product catalog with JavaScript, then covers research, monitoring, and logged-in sites.

The best macOS browsers for AI agents, and how to use them

For a coding agent testing a web app on a Mac, start with Chrome and Playwright. Use the Playwright extension when the agent should work in a tab you already have open.

Grok Bot and The X Subscription

Updated the Grok Bot guide. Grok Bot is now part of The X Subscription. Premium, Super, and Ultra include it, and Plus and Free do not. The weekly pool is shared with Cursor and the Grok apps, and extra usage is paid from prepaid credit. Legacy Cursor plans still include it. Added a section on letting a Bot use your phone’s apps.

Searchglass

Released Searchglass, Google Search Console for the terminal and for coding agents. It queries performance, sitemaps, and URL index status. The $20 one-time purchase includes tax, the CLI, an agent skill, and full source code under the MIT license.

Black Friday offers

Black Friday offers open on November 23, 2026. AI Workshop is $99 instead of $299. Four coding masterclasses, TypeScript, React, Git, and the AHA Stack, are $49 total instead of $396. Each offer has its own email list.

Three new tools and tool tutorials

Added a JSON to JSON Schema generator with a strict mode for OpenAI Structured Outputs, a webhook signature verifier for Stripe, GitHub, Slack, Shopify, Paddle and Standard Webhooks, and a JSONL to JSON converter. The tools section now has step-by-step tutorials, starting with counting tokens, converting cURL to fetch, and turning docker run into Docker Compose. The cURL and docker run converters also got fixes so their output matches what curl and Compose do.

Firewall Manager

Released Firewall Manager, a native Mac app and companion CLI for temporary DigitalOcean SSH access. The $20 one-time purchase includes the notarized app and full source code.

Gemini 4 Carbon

Added Google’s Gemini 4 Carbon announcement to AI news and updated the AI coding landscape and model guide, including its initial availability for selected cyber defenders.

AI news →

fx 0.0.15

Updated the fx tutorial for the 0.0.15 release: less memory in long sessions, faster resumes, a smaller binary, /fork, and a model catalog that refreshes without a restart.

Apps and tutorials

Added an apps catalog. Apps are $20 each including tax, a one-time purchase that includes the app and its full source code in a private GitHub repository. The tutorials are free to read.

A guide to AI image generation

Published a guide from prompts and hosted models through local workflows and JavaScript APIs. Amazon Nova Canvas reached end of life on September 30, and Muse Image is available on the Meta Model API.

The complete guide to AI image generation →

The big players in AI coding

Published a guide to the companies, models, and tools shaping AI coding, with people to follow and official video demos.

The AI coding landscape →

Internet Business Lab is open

Published the Internet Business Lab announcement. The cohort starts October 29.

Read the announcement →

Deeper guides to business advantages and working with coding agents

Expanded three posts with worked examples, practical exercises, charts, and interactive illustrations: testing a solo business advantage, practicing engineering judgment with AI, and giving coding agents useful checks.

Business advantages for solo developers →Engineering judgment with AI →Checks for coding agents →

AI Workshop starts 1 December

The next AI Workshop cohort now runs 1 December – 21 December (was 2 December – 22 December). The waiting list is open.

See the cohort schedule →Join the AI Workshop waiting list →

Payment provider guides and comparisons

Added a payment providers hub with guides to Stripe Payments, Paddle, Polar, Creem, Lemon Squeezy, and Gumroad, plus four comparisons. Each includes sourced tradeoffs and fee examples using the payment picker’s shared calculations.

Older courses use the course archive

The course recovery page now points older course buyers to courses.flaviocopes.com. Sign in with the purchase email and no password. Other courses still get access links by email.

More coding agents from your phone

Expanded the phone coding agents guide with Grok Bot and Cursor, Antigravity Remote Control, Amp, Cline Cloud Agents, Manus, and OpenClaw. Added setup instructions and explained where each agent runs and what still needs a computer.

A simpler browser chooser

Moved the browser chooser into the Chrome alternatives article and added visual guides for comparing Arc-style browsers, interfaces, AI workflows, and testing engines.

Grok Bot X connection and team setup

Updated the Grok Bot guide: the X connector no longer needs a developer account or X API credits. Added bookmark, DM, and article drafting examples, plus a step-by-step walkthrough for creating a group of specialist Bots.

How to use GPT-6.1 Terra, OpenAI's new fast vision model

Call GPT-6.1 Terra from the Responses API to read an image, set a reasoning effort, and get structured JSON back.

Chrome alternatives in 2026: 50 web browsers compared

Compare browser engines and features, then use the browser chooser to find options for your computer and browsing habits.

How to work with coding agents from your phone

Ask a coding agent to fix a bug from your phone, then review the result later. Compare mobile apps, cloud tasks, and remote terminals, and see where the work actually runs.

How to protect secrets when coding agents deploy your app

A coding agent can ship a working app and still publish a database password or API key. Limit what it can read, which operations it can run, and what reaches production.

More practical coding agent guides

Expanded the agent code review workflow with a reset-token example, review instructions, and merge queue configuration. Added cache cost calculations, compaction details, and usage troubleshooting to the prompt caching guide.

AI-assisted security log monitoring

Added a workflow for AI-assisted security log review, clarified the title and opening, and moved practical preparation advice ahead of the history and incident examples.

Corrections to five recent articles

Corrected the business-cost totals and two Jev examples. Clarified the scope of the CloudKit planning article and the requirements for publishing a ChatGPT plugin.

Internet Business Lab signups are open

Enrollment is open for the cohort starting on 29 October: 17 weekday lessons through 20 November, for $299 plus applicable tax.

How to use MCP Tasks and Elicitations in Claude Code

Build a local MCP server with background tasks and confirmation forms in Claude Code, and see how polling, cancellation, and reconnecting work.

The complete guide to Convex

Learn Convex by building a real-time app with TypeScript, queries, mutations, authentication, indexes, search, file storage, background jobs, and tests.

How to use Grok Build

A detailed tutorial covering installation, a JavaScript bug fix, permissions, skills, MCP, subagents, workflows, and headless automation.

Pushing to main still needs a process

Direct pushes can keep development simple, but trust needs concrete checks for access, traceability, tests, and recovery before copying a team's workflow.

What changes when you stop opening the code editor?

Coding agents can move work outside the editor, but understanding changes, reproducing bugs, and checking the application still need a place in the workflow.

Cloudflare Hyperdrive tutorial: use PostgreSQL with Workers

Connect PostgreSQL to Workers with Hyperdrive, configure pooling and caching, and see how it fits with other Cloudflare services and existing stacks.

What teaching can tell us about prompting

Clear examples and useful feedback help when you teach a concept or direct a coding agent, so explain the expected behavior and show where the result differs.

Too many conversations with coding agents

Several coding agent chats can leave decisions scattered across sessions, so keep one place for the current task and give parallel work a clear handoff.

Software with a point of view

A maker's taste shows up in defaults, empty states, and ordinary interactions, so give the app character through decisions that help people use it.

What would make an overnight agent useful?

An overnight coding agent needs a question worth answering. Start with the decision its result will help you make, and keep the morning review manageable.

I care more about the AI product I can use

An impressive AI roadmap means little when the product you need is unavailable. Separate future promises from the software you can use today.

How to use Cursor Computer Use

Set up Computer Use, test desktop apps and iOS Simulator flows, reproduce UI bugs, and verify fixes with practical prompts and a workflow chart.

The complete guide to LM Studio Bionic

Set up local or cloud models, fix a JavaScript bug with tests, and create a study report from a CSV, with three interactive illustrations.

Internet Business Lab: 17 weekday lessons

The cohort runs from Thursday 29 October to Friday 20 November, with 17 weekday video lessons. The price is $299 plus applicable tax, and signups open on Monday 26 October.

Preparing applications and accounts for AI-era threats

Expanded the AI security essay with DigitalOcean’s patching guidance, the effect of persistent parallel research, and practical protection for accounts and home networks.

How to secure a VPS with Tailscale and Cloudflare Tunnel

Secure a VPS with private SSH over Tailscale and public web traffic through Cloudflare Tunnel, including setup, firewalls, testing, and recovery.

What to check before submitting a native app to App Review

Prepare an Apple app for review, choose useful native interactions, adopt Liquid Glass, and understand how direct Mac distribution differs.

Triage support tickets in one request with OpenAI's Decisions API

OpenAI's Decisions API returns a probability, a choice, or a score. Triage a support ticket with several questions in one request.

How to publish a Chrome extension to the Chrome Web Store

Publish your Chrome extension with a clean ZIP, store listing, privacy disclosures, permission justifications, review instructions, and tested updates.

What to check before upgrading the Anthropic SDK

Check the new API contract, remove sampling parameters, review authentication and saved messages, and test the upgrade with a runnable JavaScript example.

Internet Business Lab starts on 29 October

Internet Business Lab now runs from Thursday 29 October to Wednesday 18 November. Signups open on Monday 26 October.

How to use a coding agent without another subscription

Connect OpenCode to DeepSeek or Ollama, understand API billing and local hardware costs, and test whether the setup works for your projects.

How to create a DMG installer for a Mac app

Package your Mac app in a drag-to-Applications DMG, sign and notarize it, verify the download, and attach it to a GitHub release.

A deep dive into Claude Duet

How Claude Duet works, its permissions and limits, and how it compares with Grok Bot and ChatGPT dots, including the workflows I want to try.

More lessons from the October security incidents

Expanded the AI security essay with GitLab, LiteLLM, Railway, Zeabur, and eMudhra, plus preparation for secret exposure, unsafe updates, and emergency downtime.

AI video editing tools: what agents need to work safely

Recording and editing tools need inspectable state, useful commands, and recoverable changes if we want agents to help with real creative work.

Paid traffic for SaaS validation: how to test product demand

How to use a small paid traffic experiment to learn who gets value from a product, measure useful actions, and decide what to change.

Security in the age of AI

A short history of automated hacking, how AI agents make attacks easier, and practical ways to prepare your applications.

Ship Factory is no longer planned

I removed Ship Factory from this season. The cohort programs are Internet Business Lab, the AI Workshop, and the Bootcamp.

See the cohorts →

A practical guide to finding software engineering work

Rewrote the job-search guide with CV and portfolio examples, targeted applications, interview preparation, and take-home boundaries. Added advice on AI hiring pressures, entry-level work, and demonstrating skills with AI coding tools.

Give your coding agent a state machine

Build a small JavaScript state machine for a coding agent, with explicit transitions, a retry limit, a useful event log, and tests.

PSA: update PHP today

The fixed PHP releases, temporary mitigation guidance, and practical steps for Laravel Cloud, Forge, Vapor, and self-managed servers.

Jev vs structured outputs: when to use each

Compare Jev, JSON mode, and schema-constrained LLM outputs. Learn when a typed answer is enough and when decision probabilities justify another model.

Vite toolchain: Cloudflare, vinext, and shared web tooling

Vite is becoming shared infrastructure for frameworks, runtimes, and developer tools. What vinext, Cloudflare's new tooling, and DevTools show.

SPA vs server-side rendering: which should you choose?

Choose between a single-page app, server-rendered pages, and interactive islands by looking at navigation, shared state, loading, and maintenance.

A deep dive into tsrs

Explore the experimental Rust port of TypeScript, its compiler architecture, compatibility, and benchmark tradeoffs, then build a browser-based type checker with interactive explanations.

How to update all global npm packages

Update all global npm packages with npm update -g, check outdated tools, update one package, and see which Node installation you are changing.

Deeper JavaScript debugging and htmx posts

Two older posts got a lot deeper: the JavaScript debugging guide now covers stack traces, conditional breakpoints, logpoints, source maps, and attaching DevTools to Node, and the htmx post now includes a real HTML-swap example plus when I skip htmx.

A deeper Val Town guide

Expanded the Val Town tutorial with a validated guestbook API, scheduled change notifications, authentication, collaboration, limits, and four explanatory visuals.

Cloudflare Pages vs Workers: which should you choose?

Compare Pages and Workers for static sites and full-stack apps, including routing, pricing, framework support, and migration, with three charts and two interactive illustrations.

AI-assisted code migration: how to switch frameworks safely

Coding agents can handle repetitive migrations, but switching costs also include design drift, production behavior, deployment, and future maintenance.

How AI agents make existing software more useful

Agents can help us combine existing tools and improve the details of our apps. That makes dependable behavior and clear interfaces worth paying attention to.

How I would evaluate Muse Wonder in Cursor

Compare Muse Wonder in Cursor against the model you already use, including coding results, reasoning effort, and token costs.

Prisma Postgres free storage

Updated the database hosting guide: the Prisma Postgres Free plan now includes 2 GB of storage.

15 apps you can vibe code instead of subscribing

Find a project on Vibecode It Yourself, with 15 build guides from a personal link page to a small team chat app.

How to compare OpenCode, Claude Code, and Codex CLI

Compare OpenCode, Claude Code, and Codex CLI with one reproducible bug fix, independent tests, setup checks, and an honest look at cost and intervention.

Deeper Cloudflare cron triggers and Electron React guides

Two older posts got a lot deeper: the Cloudflare cron triggers post now covers multiple schedules, failure handling, deploy, limits, and Queues/Workflows, and the Electron React post covers the missing Forge React wiring and a preload IPC example.

How to speed up tests for AI coding agents

How to shorten an agent's feedback loop with focused tests, realistic boundaries, useful failures, and broader checks before shipping.

AI coding agent context: how to document project decisions

A practical way to preserve project decisions, rejected alternatives, and unfinished questions so you and your coding agents can pick up the work later.

A practical review workflow for T3 Code threads

Use T3 Code's stable release to isolate an agent change, review the complete branch, merge it, and clean up finished work.

How to use OpenCode with a local model in LM Studio

Connect OpenCode to LM Studio, test local tool calling, fix model discovery problems, and check what you need for a coding workflow that works offline.

Parallel coding agents: how to coordinate and review changes

How I think about parallel coding agents, shared code, review queues, and the checks that tell us whether their changes work together.

Codex vs Claude Code vs Cursor: how to choose

How I would compare coding agents by finished work, usage limits, review effort, and switching costs, while keeping the project portable.

Changing package managers doesn't remove your npm registry dependency

Learn what switching to pnpm or Bun changes, and how caches, lockfiles, and mirrors affect failed installs.

OpenCode Code Mode explained: JavaScript instead of repeated tool calls

Learn how OpenCode Code Mode combines tool calls in JavaScript, when batching helps, and where permissions, errors, and side effects still need care.

Deeper NW.js desktop app and PocketBase on Fly guides

Two older posts got a lot deeper: the NW.js desktop app post now covers window size, calling Node from the page, native menus, nw-builder packaging, and Gatekeeper, and the PocketBase on Fly post covers IPv6 listen for internal URLs, upgrades, and backups.

MCP server design: tools, authentication, and rate limits

How to design a useful MCP interface for your product, with clear tools, account permissions, usage limits, predictable results, and safe writes.

Selling SaaS to developers: how to find paying customers

Developers can build alternatives to your product. That doesn't make them bad customers. Look at urgency, budgets, and the work buying lets them avoid.

Build agents that survive crashes with Pi Durable

A TypeScript tutorial with SQLite, a crash-and-restart experiment, request deduplication, and eight interactive drawings explaining recovery and tool replay.

Deeper Node.js history and Fly GitHub Action deploy guides

Two older posts got a lot deeper: the Node.js history post now explains the why behind the event loop, io.js, left-pad, LTS and later majors, and the Fly GitHub Action post covers the deploy workflow, tokens, pitfalls, and rollback.

A deep dive into OpenSEO

Explore OpenSEO’s architecture, SEO data providers, crawler, agents, storage, self-hosting, and trade-offs, with twenty-two interactive diagrams.

How to write an OpenCode plugin with the v2 API

Build your first OpenCode v2 plugin in TypeScript, register a custom tool, validate its inputs, test the logic, and understand how v1 plugins change.

Build vs buy software: when AI can replace a SaaS

AI changes the build-versus-buy calculation, but a working prototype is only part of it. How to compare ownership, maintenance, risk, and recurring costs.

How to compete with AI-generated SaaS clones

Cheap software clones change what a small SaaS business can charge for. A practical look at differentiation, maintenance, distribution, and earning trust.

Meta released Muse Spark Open

What Meta’s downloadable model offers, the hardware needed to run it, its commercial license conditions, and how to read the benchmark claims.

The complete guide to Void

Build a reading-list app with Void, Hono, React, and D1, then deploy it to Cloudflare. Covers typed APIs, forms, migrations, password protection, and hosting a shared team platform.

How to use OpenCode

A hands-on OpenCode tutorial covering installation, model connections, planning and making a code change, project instructions, and permissions.

Jev guide updated for image input and Box questions

The Jev guide now covers the new model release, experimental image input, Box questions and longer context. It also includes the Jack & Jill production case study and updates model aliases and rate-limit guidance.

OpenCode 2 on the AI news page

The AI news page now has OpenCode 2, Anomaly’s open source coding agent. The terminal, desktop app, and web app share one local service, and the model can script its tools.

AI news →

What “open weights” means for AI models

What “open weights” means for AI models, how it differs from open source, and what the Qwen3.8 and Kimi K3 downloads show about licenses and scale.

Clearer course exercises and focused references

I gave overlapping course lessons their own practical exercises, tightened several troubleshooting and Express guides, and combined the short structuredClone article with the object-cloning guide. The September Bootcamp announcement now points to the current course page for availability.

JavaScript object cloning →

Solo Lab is now Internet Business Lab

I renamed Solo Lab to Internet Business Lab. The three-week cohort still runs from 28 October to 17 November, and the waiting list stays the same. The old course page redirects to the new landing page.

Join the Internet Business Lab waiting list →

How to handle web requests in C with CGI 1.1

Build a C program that handles web requests through CGI, reads query parameters and forms, validates input, and returns HTML. The guide includes Apache setup, redirects, and the differences between CGI and FastCGI.

A deep dive into LangChain and LangGraph

A TypeScript guide to LangChain and LangGraph: models, prompts, tools, agents, and graphs you can pause and resume, including a workflow that waits for human approval. The Python HTTP server post now covers routing, reading POST bodies, and bind-address warnings.

Hosting picker gets focused views

The picker now splits into focused views: the four-question picker, an Every host view to browse plans, catches and features, and a Compare two view to put any two hosts side by side.

How to create an Apple TV app

Build a tvOS app with SwiftUI, share code with your Mac app, design it for the Siri Remote, make its layered icon, and install it on your own Apple TV. I used Tranquillity Maker as the example.

Next Bootcamp starts in March

The next Bootcamp edition starts in March 2027. The waiting list is open.

Echo, ASCII, and HTML image guides refreshed

The echo guide now explains -e and -n, quoting, and when to use printf. The printable ASCII reference includes C examples with isprint. The HTML image guide adds image path troubleshooting and clarifies responsive sizing.

How to install your own apps on your iPhone with Xcode

Put the apps you build on your iPhone without the App Store: turn on Developer Mode, install from Xcode, update over Wi-Fi from the terminal, and renew them.

Prisma Postgres free storage

Updated the database hosting guide: the Prisma Postgres Free plan now includes 1.01 GB of storage.

The complete guide to LiveKit Agents

A hands-on guide to building a voice AI agent with LiveKit Agents in TypeScript, testing conversations, and deploying it to LiveKit Cloud.

How to use Jev with Claude Code, Codex and Cursor

How to use Jev with Claude Code, Codex and Cursor: install TypeSafe's agent skill, give the agent the docs, and review the Jev code it writes.

Open Anyway, JavaScript executables, and WhatCable

Three new posts: how to avoid the "Open Anyway" message when building macOS apps, how to compile JavaScript into a single executable with Deno, Bun or Node, and how I used WhatCable to figure out what a USB-C cable can actually do. I signed and notarized all seven of my Mac apps in one day, and WhatCable is how I found my Fujifilm camera was running at USB 2.0 speed.

Jev with the Vercel AI SDK, npkill, and agents that shop

Three new posts: how to use Jev with the Vercel AI SDK, how to find and delete old node_modules folders with npkill, and an opinion piece on AI agents checking out for us, where I still want a person to approve the exact charge. The guide on accessing files outside a Docker container also goes much deeper now on bind mounts and volumes.

AI Workshop moves to 2 December, Solo Lab goes video

The next AI Workshop cohort now runs 2 December – 22 December (was 30 November – 18 December). The waiting list is open.

Solo Lab still runs 28 October – 17 November, but now every weekday there is a new video lesson of about 30 minutes, 15 lessons over the three weeks, instead of written lessons with exercises.

See the cohort schedule →Join the AI Workshop waiting list →Join the Internet Business Lab waiting list →

Repo Foyer, a Chrome extension for the GitHub home page

I released Repo Foyer, a free and open source Chrome extension that replaces the GitHub home page with three short lists of your repositories: the ones you work on the most, the ones you created recently, and the ones getting stars this week. A search box jumps to any repo, and you can star a repo to keep it at the top.

testvm, open source in its own repo

I open sourced testvm, the script my coding agents use to test the Mac apps they build in a headless macOS VM, without taking over my screen. It used to live inside the VM Peek repo. Version 1.1 has its own repo, settings for the VM’s size and image, and a skill that teaches agents every command.

Footage Ferry, a Mac app for iPhone footage

I released Footage Ferry, a free and open source Mac app that copies the videos you record with Blackmagic Camera on an iPhone to your Mac over USB. It checks every copy byte for byte against the iPhone’s file, and only then offers to delete the clips from the iPhone.

Deeper guides to Arduino libraries and npm dependencies

Two older posts got a lot deeper: the Arduino libraries post now covers installing libraries with the Library Manager or arduino-cli and fixing common library errors, and the npm post explains what gets installed for users of your package and how to pick, move and omit dependencies.

Interactive figures in twenty long posts

Twenty of the longest posts that explain how something works got a drawing you can click through: a request through a Cloudflare Tunnel, Terraform’s plan and apply, a Kubernetes Pod getting replaced, one next-token step in an LLM, a Pi session branching into a tree, and more.

Syncing Mac and iPhone apps, cron, and the cf CLI

Three new posts: how to keep a Mac app and its iPhone app in sync, a deep dive into cron, and a tutorial on cf, the new Cloudflare CLI. The cron post comes with six small drawings you can click: the crontab checked minute by minute, the five fields of a schedule, the day-of-month and day-of-week trap on a calendar, the environment cron runs in, overlapping runs with and without a lock, and the night the clocks change.

CLI Tools Cabinet 1.2 asks your tools what they can do

Since version 1.2, CLI Tools Cabinet can ask the tools on my Mac what they can do. Each of my small CLIs answers a capabilities command, and clitools capabilities collects all the answers in one call, so a coding agent finds the right tool before it writes a script.

Solo Lab moves to 28 October

Solo Lab now runs 28 October – 17 November (was 26 October – 13 November). The Solo Lab page also has three new figures. The waiting list stays open.

See the cohort schedule →Join the Internet Business Lab waiting list →

Chip Pops, 8-bit sound effects for my apps

I released Chip Pops, a free and open source Mac app and command line tool with about 6,000 8-bit sound effects made with jsfxr, for apps and games. Click a sound to hear it, then drag it into your project.

Couch Snake, an Apple TV game

I released Couch Snake, a free and open source Apple TV game: the classic snake game from old mobile phones, full screen on a green LCD board, steered by swiping on the Siri Remote.

One-minute intro videos on nine more posts

Nine of the most read posts from the last few weeks now open with a one-minute video that introduces the topic before you start reading.

Interactive figures in ten more posts

Ten posts got a small drawing you can click through, each showing the one idea that is hard to picture from text: how Jev’s confidence decides what happens, what Codex can reach in its sandbox, why a GET stream stalls in a quick tunnel, the two passkey ceremonies, what survives in tmux, and more.

HostingPicker and Payment Processor moved into the blog

I retired hostingpicker.dev and paymentprocessor.dev and turned each one into an app post: a blog post that runs the whole tool in the page, with the guide underneath. Pick a host from four questions, or compare payment providers and their fees on your own numbers.

I retired StackPlan too: stackplan.dev now redirects to my guide on where to host your web app.

Architecture Dissector, a Mac app that maps how my apps are built

I released Architecture Dissector, a free and open source Mac app that draws the architecture, workflows and stored data of my apps from maps my coding agents write, and shows what changed between versions.

Slide Lookout, a Chrome extension

I released Slide Lookout, a free and open source Chrome extension that shows the next slide of a Notion presentation in a small floating window, on top of the fullscreen slides.

Testing Mac apps in a VM and self-updating Mac apps

Two new posts: how I let coding agents test the Mac apps they build inside a macOS VM, so they never take over my screen, and how my Mac apps check GitHub Releases and update themselves.

Tranquillity Maker 1.4 runs on iPhone and iPad

Tranquillity Maker 1.4 runs on iPhone and iPad, keeps playing with the screen locked, and is controlled from the lock screen or Control Center. You install it from Xcode, and the Tranquillity Maker post now covers it.

Jev confidence scores, stacked PRs, and the Apple Developer Program

Three new posts: how to use Jev confidence scores to decide when your code acts, asks, or hands off to a person, how to fix the "Stacked PRs are not enabled for this repository" warning in gh stack, and what you get from the free Apple developer account compared to the paid Apple Developer Program.

Post Slide Deck and VM Peek, two new Mac apps

I released two free and open source Mac apps. Post Slide Deck and its Chrome extension turn posts on X into slides I talk over in my videos. VM Peek shows what coding agents do in the macOS VM where they test the apps they build: its screen, which agents are using it, and every command they ran.

poteto-mode in pstack and classifying text with Jev

Two new posts: what poteto-mode does in pstack, the router skill that picks a playbook and delegates the work to other skills and models, and a tutorial on classifying text with Jev, from writing good labels to testing accuracy before you trust it.

Business costs, Herdr alternatives, and ChatGPT plugins

Three new posts: what my one-person software business costs each month, line by line, the tools you can use instead of Herdr to run coding agents, and a tutorial that builds a ChatGPT plugin from an empty folder all the way to the submit button.

Work Tracebook, a timeline of what your coding agents did

I released Work Tracebook, a free and open source Mac app. Your coding agents write a one-line report each time they finish something, and the app turns those reports into a timeline of your day and week, project by project.

Summer launches, the Codex CLI, and Sign in with ChatGPT

Three new posts: every product I launched this summer and what happened to each one, a tutorial on the Codex CLI, and how to use your ChatGPT subscription in other apps with Sign in with ChatGPT.

The Pi guide, updated for Pi 1.0

Pi reached 1.0, so I went through my Pi guide again. It now covers the built-in MCP support and codemode, virtual models, the full-screen interface and the new ChatGPT sign-in, and it points to Pi Durable for agents that run for a long time.

30-second tours of five redesigned sites

I redesigned Disaster Lab, Calculum, migrating to, HostingPicker and StackPlan. Their launch posts now open with a 30-second tour of each site and show screenshots of the new design.

Number Pantry, 281 calculators that work offline

I released Number Pantry, a free and open source app with the 281 calculators from calculum.dev. It works offline, saves and compares calculations, and comes with a calculum command for Terminal.

Skill Cabinet 1.3 filters skills by source

Skill Cabinet 1.3 adds a filter to the toolbar, so you can list only your own skills, only the ones that come with plugins, or only the ones built into Cursor and Codex. The Skill Cabinet post now covers it.

Releases Manager, my Mac app for every app I release

I released Releases Manager, a free and open source Mac app that shows every release of my apps on one timeline, tells me what’s waiting to ship, and starts the next release in Cursor. The post has a 30-second demo and the download.

A deep dive into Clef, Cloudflare’s decision model

A deep dive into Clef, the open-weight decision model Cloudflare released on October 1: how it works, how to call it with curl and from a Worker, how it reads images, what it costs, and how it compares with Jev and OpenAI’s Decisions API. The Jev deep dive, the access guide and the pricing guide now cover it too, and the AI news page has the announcement.

Tab Reunion, my Chrome extension for merging windows

I released Tab Reunion, a free and open source Chrome extension that moves the tabs of every open window into the one you’re using, with one click or a keyboard shortcut. The post has a 30-second demo and the install steps.

Skill Cabinet 1.2 merges similar skills

Skill Cabinet 1.2 finds the skills that read alike and merges two of them into one with AI. You can also edit and rename a skill right in the app. The Skill Cabinet post now covers it.

The OpenAI Agents API, Herdr shortcuts, and Codex Cloud

Three new posts: a complete guide to the OpenAI Agents API, a cheat sheet of the Herdr keyboard shortcuts, and how to use Codex Cloud to run Codex tasks on OpenAI’s own machines.

Tranquillity Maker 1.1 answers the play/pause key

Tranquillity Maker 1.1 lets the play/pause key on your keyboard control the mix from any app, because macOS sends that key to the last app that played audio. The Tranquillity Maker post now covers it.

Gemini 4 Argon on the AI news page

The AI news page now has Google’s Gemini 4 Argon, a new frontier model aimed at long-horizon software engineering. It goes first to cyber defenders in Google’s Fairwind Program, with introductory API pricing.

September 2026

How to use GPT-6.1 Sol

A new post on GPT-6.1 Sol: how to use it in Codex, ChatGPT Work and the API, what it costs, how to pick the reasoning effort, and a Node.js example.

Writing files with Node, expanded

The post on writing files with Node now goes deeper, with a streams example for large files.

Skill Cabinet 1.1 uninstalls skills

Skill Cabinet 1.1 can uninstall skills. It moves a skill to the Trash, from every folder it lives in or from just one of them, and tells you first which agents will stop loading it. The Skill Cabinet post now covers it.

Agents unattended, Jev with Python, and unslop

Three new posts: the coding agent tasks I leave running unattended and the ones I never hand over, how to call Jev from Python, and how to use the unslop skill to remove AI writing tells in Cursor, Claude Code and Codex.

Skill Cabinet, my Mac app for agent skills

I released Skill Cabinet, a free and open source macOS app that shows which of 8 coding agents load each of your skills and counts how often you use them. The post has a one-minute demo and a download for Apple silicon and Intel Macs.

Note Repo 2.0

Note Repo 2.0 is a native Mac app written in Swift instead of Electron. The Note Repo post now explains how it is built, and that it runs on Intel Macs too.

Intro videos on 20 more popular posts

Twenty more of the most read posts now open with a one-minute video that introduces the topic before you start reading.

Tranquillity Maker, my Background Sounds mixer for macOS

I released Tranquillity Maker, a free and open source macOS app that plays the Background Sounds built into macOS together, each at its own volume. The post has a 30-second demo and a download for Apple silicon and Intel Macs.

Note Repo 1.2

The Note Repo post has a new screenshot and demo video. It also covers what Note Repo 1.2 adds: YouTube links show the video title, and ⌘F searches your notes. I also removed the Reflect importer, so the post no longer mentions it.

GPT-6.1 Sol in the AI coding models comparison

The comparison of AI models for coding now lists GPT-6.1 Sol, which OpenAI released on September 29: its price, its cheaper cached input, where you can use it, and why it is not in the bake-off yet.

It also shows what a task costs with GPT-6.1 Sol on independent tests: about a third of what it costs with GPT-5.6 Sol, with a higher score.

Grok Bot guide: Primary Bot, Team Bots and more

The Grok Bot deep dive now covers Primary Bot, the go-to Bot for everyday tasks, Team Bots that a whole team can talk to, and the read-only Finance integration.

It also covers the Google Docs, Sheets and Slides connectors, and how to route a Bot's web traffic through your own desktop when a site blocks cloud IP addresses.

Plain Cursor Pro now includes Grok Bot, and the iPhone app runs on iPad. The guide and the comparison with Cursor Projects both reflect that.

A deep dive into OpenAI dots

A guide to the always-on ChatGPT agents OpenAI launched at DevDay: how to set one up, give it work, connect apps and Codex, and control what it does.

One-minute intro videos on the most read posts

The ten most read posts of the last month now open with a one-minute video that introduces the topic before you start reading.

A 30-second demo of CLI Tools Cabinet

The CLI Tools Cabinet announcement now opens with a short demo video of the app and the clitools CLI.

How to stop X from turning a domain into a link

Put an invisible zero-width non-joiner right after the dot and X stops linking the domain. How to type it, how to spot it, and where the trick fails.

Note Repo, my daily notes app for macOS

I released Note Repo, a free and open source daily notes app for macOS, with a 30-second demo and a download for Apple silicon Macs.

What $10,000 a month costs on each payment provider

One $10,000 month of sales run through Creem, Paddle, Polar, Lemon Squeezy, Dodo Payments, Gumroad and Stripe with Stripe Tax: the fees each one takes, and the catches behind the headline numbers.

New answers in five guides

New sections for questions people kept asking: how unslop, stop-slop, humanizer and deslop differ, running Herdr on Windows and uninstalling it, whether cmux works on Linux, the smaller skills that come with pstack, and whether Jev is open source or runs locally.

How to use Jev in Node.js

Using Jev from Node.js with the official TypeSafe SDK: install it, ask Noul, Choice and Score questions, handle errors and retries, and put it all together in a full script.

The MCP servers I actually use

An honest inventory of the 22 MCP servers connected to my Cursor setup: the two I use every day, the ones that do one job, and the ones that just sit there.

Where to run Postgres or SQLite for a side project

Ten places to run Postgres or SQLite for a side project: Supabase, Neon, Turso, Cloudflare D1, Railway, Fly.io, DigitalOcean, Prisma Postgres, PlanetScale, and plain SQLite on your own server. For each one: the free tier, the first paid step, the catch that will bite you, and how to connect from Node.

How much does Jev cost?

What Jev costs and how to plan for it: $0.042 per million input tokens with output free, how billing works, how to estimate a real workload, the rate limits, pricing through the Vercel AI Gateway, and how it compares with the usual LLMs.

The 10 fundamentals still worth learning when AI writes the code

Ten programming fundamentals that still matter when coding agents write the code. For each one: what it is, how an agent gets it wrong, and the free course that teaches it.

The CLI tools I use every day

The command line tools I use every day on my Mac: Ghostty and fish, zoxide to jump between folders, tmux, jq, SSH, Git and gh, Wrangler for Cloudflare, gitleaks before publishing code, the coding agent CLIs, and the small CLIs I built for myself.

The Redis and Node.js guide, expanded

How to use Redis from Node.js now covers the current node-redis client in depth: connecting and handling errors, making keys expire with a TTL, working with lists, sets and hashes, and pub/sub with a duplicate client for subscribing. It also closes connections with close() and points to the current repository.

Which AI model is best for coding?

A hands-on comparison of the current coding models: Claude Opus 5.5, Fable 5.1, GPT-6 and GPT-5.6, Grok 4.7 and the open-weight ones. Then a small bake-off you can run yourself: the same task for six models in the Cursor CLI, graded by tests the agent never sees.

How to get access to Jev and an API key

A short how-to for Jev: sign in to the TypeSafe console, create a key and store it as TYPESAFE_API_KEY, test it with curl and fix the usual 401 and 422 errors. TypeSafe paused new signups on September 22, so it also covers calling Jev through the Vercel AI Gateway instead.

How to use Cloudflare Worker Previews

Worker Previews give every Git branch its own copy of a Cloudflare Worker, with its own URL, settings and Durable Object storage. A hands-on walkthrough with wrangler preview: create a preview, break it by forgetting a binding, fix it, run previews from CI, and what still points at production.

The Linux commands I needed to run a server

The commands that actually mattered when my two Ubuntu servers broke this year: df and du for a full disk, journalctl for a dying process, free, ss, ufw, fail2ban and apt. Each one with the real output from the incident and what I did next.

The pnpm guide, expanded

What is pnpm? grew from a short intro into a full guide for the current release: how the content-addressable store saves space, the strict node_modules layout, the lockfile, workspaces for monorepos, and the gotchas you hit when a package expects hoisted dependencies or build scripts.

What people are building with Jev

The Jev guide's use cases now include the first production report (Metaview's recruiting agents), Jev-ranked site, SQL and code search, Jev inside an expense splitter, a Magento store and Word documents, podcast ad detection, browser and coding agents, and robots, picked from the shipwithjev.com catalog of 551 builds.

WebMCP deep dive covers Stripe Checkout

Stripe now exposes WebMCP tools on every hosted Checkout page. The WebMCP guide explains how its tools appear step by step as the checkout fills in, why it uses both the imperative and the declarative API, and what its tests measured: 42% fewer tokens and a 39% faster checkout.

A deep dive into Pi

Pi is a minimal open source coding agent that ships four tools and lets you build the rest. How to install it, use your ChatGPT plan or a local model, branch sessions like a tree, write TypeScript extensions, script and embed it, and how it compares to fx, Claude Code, Codex and OpenCode.

Two guides to Cloudflare tunnels

Quick tunnels put localhost on the internet with one cloudflared command and no account: how they work, what your app sees, webhooks, dev servers, local LLMs, scripts, and the limits measured for real. The named tunnel guide is the version you keep: your own hostname, several services behind one tunnel, running as a service, Cloudflare Access in front, SSH through it.

Every hosting free tier, side by side

What you actually get for free on Cloudflare, Vercel, Netlify, Render, Railway, Fly.io, Heroku, AWS, Google Cloud, Azure and the VPS hosts, with the limits and catches of each, all checked in September 2026.

How AI models are measured and compared

A tutorial on AI benchmarks: what CursorBench, SWE-bench, Terminal-Bench and GDPval-AA test, how to read a model launch page, a step-by-step comparison of GPT-5.6 Sol and Claude Opus 5.5, and a small eval you can run on local models with Ollama.

Claude Opus 5.5 on the AI news page

Anthropic released Claude Opus 5.5 on September 22. Input is $4 per million tokens and output is $20. The API id is claude-opus-5-5.

One new post

How to build a terminal app people can SSH into

What happens behind ssh superlogical.jobs, the Go and Bubble Tea stack read off the wire, a job board built from scratch with Wish (plus a Node.js version with ssh2 and Ink), how to deploy it on port 22, and other things you can ssh into.

Muse on the AI news page

Meta launched Muse on September 8, a personal agent in the US on iOS, Android, muse.ai, and WhatsApp. Power is $20 a month and Maximum is $100 a month.

A deep dive into fx

fx is Vercel Labs' coding agent, a small Zig binary. How to run it in the terminal, call it from a script, or embed it in an app.

Grok 4.7 on the AI news page

SpaceXAI released Grok 4.7 on September 21. Same price as Grok 4.6, $2 per million input tokens and $6 per million output tokens, available in Cursor and through the Grok API.

Two new posts

Solo Lab starts one week earlier

Solo Lab now runs 26 October – 13 November (was 2–20 November). The AI Workshop stays 30 November – 18 December. Waiting lists stay open.

See the cohort schedule →Join the Internet Business Lab waiting list →

AI news archive back to January 2025

The AI news page now has 56 notes covering model launches, coding agent releases, and platform changes from January 2025 through September 2026.

One new post

Four cohort programs for the season

The cohorts page now lists the AI Workshop, which runs a new three-week cohort from 1 December, with its waiting list back on this site. The Bootcamp shows as the February 2027 edition, and Solo Lab and Ship Factory run for three weeks each.

See the cohort schedule →Join the AI Workshop waiting list →

AI news page

A single page that tracks AI industry news I care about: model launches, coding agent changes, and the dates they shipped. It starts with Claude Code reading AGENTS.md, plus notes on TypeSafe Jev, GPT-6 Astra, Claude Fable 5.1, Grok Bot, SpaceX buying Cursor, xAI becoming SpaceXAI, GPT-5.6 Sol, and Claude Fable 5.

AI news →

Grok Bot vs Cursor Projects

Two always-on agent products from one company, and a simple rule for splitting work between them: repository in, PR out goes to a Project; anything that starts behind a login goes to a Bot. With the jobs I run on this site and the loop where a Bot hands work to a Cursor agent.

Two new posts

Cloudflare AI crawler settings corrected

The robots.txt and Markdown-for-agents posts now match Cloudflare's September 15, 2026 Search, Training, and Agent controls. Unconfigured zones stay on Allow. New ad-supported domains get a recommended training disallow, not a blanket AI-bot block.

Jev comparison expanded

The Jev tutorial now explains how a decision model differs from ChatGPT, Cursor, OpenAI Codex, Claude Code, other CLI coding agents, traditional classifiers, and structured LLM outputs. It also covers semantic code linting, log and database classification, replay tests for wrong but valid decisions, AI-spend calculations, my own workflow plans, and optional Jev extensions for every current Bootcamp project.

Four new posts

Bootcamp waiting list is back

The Bootcamp page is on the site again. The September edition is running with enrollment closed, and the waiting list is open for the February 2027 edition.

Join the Bootcamp waiting list →

NODE_ENV guide corrected and expanded

The development vs production guide now covers where to set NODE_ENV on a server (systemd, pm2, Docker), which hosting platforms set it for you, why staging should not use it, and the npm devDependencies gotcha. The matching Node.js course lesson was updated too.

Three new posts

The complete guide to Codex

One long guide to OpenAI's coding agent, written around the desktop app: first prompt, AGENTS.md, Plan and Goal modes, review, the built-in browser, Computer Use, MCP, skills, plugins, hooks, worktrees, and scheduled tasks, then the CLI. It closes with two real jobs and the loop I follow.

Grok Bot and Cursor Projects updates

The Grok Bot guide now shows the Update old posts Bot that hands stale posts to a Cursor cloud agent and gets a merged PR back each day. The Cursor Projects post gained a screenshot of where Projects live in the Agents view.

Sponsor packages updated

The sponsor page now lists a custom tutorial package, a "Why not both?" option that combines the monthly placement with the tutorial, and clearer monthly unique visitors copy.

Sponsor the site →

Two new posts

Six months of agentic AI

A recap of what I learned building with coding agents every day since spring: where the bottleneck moved, small skills over big frameworks, the repository as memory, boundaries in code instead of prompts, and where the joy went.

How to make AI harnesses talk less

A guide to making Claude Code, Codex and Cursor answer with less noise: Claude Code's Concise output style, the Codex personality and verbosity settings that hide reasoning summaries, output rules for Cursor that actually stick, ready-made skills, and the trade-offs of each switch.

A deep dive into tldraw

A practical guide to tldraw: its infinite canvas, React SDK, AI starter kits, MCP App, local desktop app, visual workflows, and software development use cases.

Later the same day I added a short section on how tldraw is built: Signia and the record store in the SDK, one Cloudflare Durable Object per board with SQLite and R2 behind tldraw.com, Postgres on Supabase synced with Zero, and the React 19 and Vite client.

Understanding tsconfig.json

A practical guide to the tsconfig.json options that matter: strict, target, lib, module resolution, noEmit, paths, include, and a modern starter configuration.

Cursor Projects guide

A guide to Cursor Projects, launched on September 10: the coordinator agent, subagents, shared context, subscriptions, how to create your first Project, and how I would use it on this site.

JSONL practical guide

A practical guide to JSON Lines (NDJSON): how to write it, stream it, and query it, plus how Work Tracebook uses it as an event store.

The Ghostty guide

A long guide to the Ghostty terminal: shortcuts, the config file, fonts, themes, splits, keybindings, shell integration, SSH, shaders, plus a map of my terminal courses, books, and tutorials.

ahastack.dev updated for htmx 4

ahastack.dev now documents Astro 7 and htmx 4, ships 18 live demos on Cloudflare, and includes a skill file so coding agents can build with the AHA stack.

Three new posts

Node.js update guide refreshed

Version examples in the guide were updated for the official installer, Homebrew, and nvm.

The software catalog moved to GitHub

All eight packages in the software catalog are now public MIT repositories under github.com/flaviocopes: Waiting Lists, Broadcast Keep, Local Hoster, Port Pilot, Events Logger, Cloudflare Domains Toolkit, Plausible Automation Toolkit, and tte.js. Each repository has the full source, tests, and one README with the documentation that used to live on the software pages. The ZIP downloads and the newsletter gate for software are gone. Issues and pull requests are off: fork them and make them yours.

Browse the software catalog →github.com/flaviocopes →

WebMCP deep dive adds product examples

The WebMCP guide now shows how I could use it in Calculum, StackPlan, HostingPicker, Payment Processor, Events Logger, Sitebase, Waiting Lists, the Bootcamp, and Solo Lab. It also explains why idempotent write tools are safer than toggles.

CLI Tools Cabinet launched

CLI Tools Cabinet is a free, open source macOS app that catalogs every command-line tool installed with Homebrew, npm, and Cargo, plus trusted user directories. Each tool shows its version, help, tldr examples, and the commands you already ran from your shell history. A companion CLI reads the same catalog and prints JSON for coding agents.

All 87 free courses rewritten in a plainer voice

Every lesson in the free course library, about 2,000 across 87 courses, was rewritten in the same conversational voice as the AI Fundamentals rewrite. Template-style lessons now open with what the concept is and why it exists, show a command or snippet with realistic values and the exact output you get back, and end with one realistic failure and its fix. Along the way I fixed factual and code errors the pass surfaced (Swift ranges and initializers, du block sizes, xargs batching, signal numbers, outdated Express body parsing, Node.js hosting options, Vercel plan gating, and more) and ported those fixes to the blog posts the lessons came from. Every course PDF and EPUB was regenerated.

Things CLI launched

I launched a free command-line tool for creating, reading, and updating Things 3 projects and tasks from the terminal or a coding agent.

WebMCP adds a hint for consequential actions

The WebMCP deep dive now covers consequentialHint, which marks purchases, emails, travel bookings, and other actions that should pause for user confirmation.

September Bootcamp is underway

The September cohort started and enrollment is closed. It runs through mid-November, then the Bootcamp relaunches in March 2027. I hid the site-wide bootcamp promo banners and simplified the cohorts page to match.

Four new posts

Herdr deep dive covers multi-machine support and worktree automation

Herdr 0.9 lets one client show local and remote machines together. The deep dive now covers herdr machine add, switching between machines in the sidebar, what happens when a connection drops, the profile commands, the one-server scope of the CLI, and the planned Herdr Cloud relay. A new section shows how to start parallel agents in fresh Git worktrees with one command and no branch naming, using herdr worktree create, the worktree.created plugin hook, and worktree remove for cleanup.

AI Fundamentals course rewritten

All 30 lessons of the free AI Fundamentals course were rewritten in a plainer, more conversational voice, with material folded in from the AI Workshop: how models are trained, the training-data cutoff, choosing a model by cost, power, and speed, subscriptions versus API keys, AGENTS.md rules, skills, and MCP. A new AI glossary lesson opens the course.

Four new posts

A guide to email providers for developers and AI agents

A long comparison of Resend, Cloudflare Email Service, Postmark, Mailgun, SendGrid, Amazon SES, Mailtrap, AgentMail and others, covering sending, receiving, and giving agents their own inbox.

Two new posts

The first site sponsor is live

Creem is the first sponsor of the site. Sponsor cards now sit beside the content on the right, so they are visible without interrupting the reading flow.

Sponsor the site →

August 2026

Three new posts and a GitHub Actions update

Sponsorships are open

I added a sponsorship page with two clear options: a site link or a sponsored post. It also has a dedicated inquiry form.

Sponsor the site →

The September Bootcamp plan is clearer

The Bootcamp page now explains the seven guided builds, the three-week product phase, and the expected time commitment of one to two hours a day.

See the Bootcamp →

Two new posts and four guide updates

Course quizzes are easier to use

Quizzes now start with a clear button, let you change an answer before submitting it, and resume at the first unanswered question.

Browse the free courses →

New Native Web Interfaces course

I added a free course about building interactive interfaces with modern HTML and browser APIs. It covers details, dialogs, popovers, templates, forms, events, and view transitions.

Start the course →

I launched Prototyped

Prototyped sells working software with full source code, tests, documentation, and instructions for coding agents. Waiting Lists and Broadcast Keep are the first two available. Prototyped is now retired, and my products live on the products page.

See the products page →

July 2026

54 free courses, now available offline

The free course library grew to 54 courses. It now covers programming, AI, databases, security, infrastructure, Linux, and deployment.

You can read every course on the site without signing up. You can also download PDF and EPUB editions, and the site remembers when you already have access.

Browse the free courses →Get the downloads →

I launched Waiting Lists

I built a self-hostable waiting-list service with double opt-in. Your site keeps its own form and design, while Waiting Lists handles confirmation, storage, delivery tracking, removal, and exports.

Open Waiting Lists →

I launched Vibecode It Yourself

This is a subscription audit for finding paid apps you could replace with small software built for the way you work. It turns each subscription into a practical build brief you can give to a coding agent.

Open Vibecode It Yourself →

Ship Factory and Solo Lab opened their waiting lists

I made the path after learning to code much clearer. Ship Factory is about building a repeatable software factory. Solo Lab is about finding customers, selling your work, and building a sustainable independent business.

See Internet Business Lab →

Four practical products shipped in four days

I launched Calculum for everyday calculations, Migrating to for moving between platforms, Disaster Lab for prevention and recovery playbooks, and Payment Processor for comparing payment providers.

Each one started with a specific problem and became a focused, useful website.

Calculum →Migrating to →Disaster Lab →Payment Processor →

The next Bootcamp moved to September 2026

The next Full-Stack Bootcamp now starts in September. The course page explains the new timing, what students build, and how to join the waiting list.

See the Bootcamp →

A clearer path through everything I make

I rebuilt the homepage and courses page around the stages of creating software: learn, design, ship, operate, and work for yourself.

I also published the full story of the software, apps, courses, and failed projects I have built since 1999.

Choose your next step →See what I've built →

AI Workshop got its own home

I moved the AI Workshop to aiworkshop.sh. The workshop, waiting list, course material, and future updates now have one permanent home.

Visit AI Workshop →

New learning hubs for big topics

JavaScript, CSS, Git, databases, and other large subjects now have curated starting pages. Each hub gives you a sensible route through the best tutorials instead of dropping you into a list of hundreds of posts.

Start with JavaScript →Start with CSS →Start with databases →

I released fstack

fstack is my free collection of 13 simple agent skills. They help you define, plan, build, review, document, and ship software without turning the process into a complicated framework.

Read about fstack →

Courses became more interactive

I added quizzes, saved progress, review questions, streaks, achievements, and certificates. That work became the foundation for the free course library that followed later in the month.

Browse the courses →

The free developer tools section launched

The new tools section launched with 90 tools and grew to 220 within days. You can format data, inspect tokens, generate configuration, compare approaches, and solve small development problems without sending your input to a server.

Browse all tools →

June 2026

AI Workshop Cohort #10 opened

I opened a new AI Workshop cohort and improved the welcome flow so new members received their course and community links reliably.

Enrollment later moved to the dedicated AI Workshop site, where the waiting list is now open.

Join the waiting list →

Finding the right tutorial got much easier

I added search to the blog, improved topic pages, and made related posts more useful. I also fixed broken links and added better descriptions to hundreds of pages.

Images across 327 posts received useful alt text, and post images became faster to load.

Search the blog →Browse all topics →

The site moved to Cloudflare

I moved the entire site to Cloudflare Pages. The public pages stayed static and fast, while course purchases and access emails moved with them.

More than 1,700 tutorials came home

I restored the programming tutorials that had moved to The Valley of Code. They are back on this site with their original URLs, images, topics, and links.

The blog became the main home for everything I write: short fixes, long tutorials, product stories, and news.

Explore the blog →

A new AI Workshop cohort

I opened enrollment for a new AI Workshop cohort and published a simpler history of the previous cohorts. The workshop later moved to its own site.

Visit AI Workshop →

May 2026

Clearer pages in search and social previews

I rewrote page titles and descriptions so you can tell what a page contains before opening it. Shared links also started showing clearer previews.