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.

~~~

September 2026

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

The CLI Tools 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.

NoteRepo, my daily notes app for macOS

I released NoteRepo, 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 Solo 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 Factory Log 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, Livestream Recorder, 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 launched

CLI Tools 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 →

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 Solo 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.