Skip to content
FLAVIO COPES
flaviocopes.com

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.

~~~

October 2026

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 Ship Factory →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.