;
;

Flavio Copes

Learn to build software products, put them on the internet, find customers, and create an independent business that can make a great living.

My software is now on GitHub

The eight packages in my software catalog are now public MIT repositories on GitHub, with the full source, tests, and documentation in one README e...
Posted on 9 September 2026 | 10:00 am

I launched CLI Tools

CLI Tools is a free, open source macOS app that catalogs every command-line tool you installed with Homebrew, npm, and Cargo, with examples, shell ...
Posted on 9 September 2026 | 9:00 am

The Cloudflare products I actually use

An honest report on the Cloudflare products I use in real projects, what each one solves, the gotchas I found, and what I do not use yet.
Posted on 9 September 2026 | 7:00 am

Why I think more clearly when I type

Typing is slower than speaking, but that friction helps me develop ideas, notice weak sentences, and turn rough thoughts into useful writing.
Posted on 9 September 2026 | 5:00 am

I launched Things CLI

Things CLI is a free command-line tool for creating, reading, and updating Things 3 projects and tasks from the terminal or a coding agent.
Posted on 8 September 2026 | 5:00 pm

Build a language model on your Mac with Language Model Builder

Language Model Builder teaches how LLMs work and lets you train a small GPT locally on an Apple Silicon Mac, without writing code.
Posted on 8 September 2026 | 1:00 pm

Why your MacBook runs hotter at high altitude

MacBooks run hotter above 1800 meters because thin air carries away less heat. Learn the physics behind it and simple ways to keep your laptop cool.
Posted on 8 September 2026 | 9:00 am

Vercel AI Gateway tutorial

Use Vercel AI Gateway with the AI SDK and OpenAI client, then add model routing, fallbacks, caching, budgets, BYOK, and observability.
Posted on 8 September 2026 | 7:00 am

How AI agents can log in without seeing your passwords

Compare 1Password Agentic Autofill, Bitwarden's Agent Access SDK, Browser Use sensitive data, OAuth token vaults, and why passkeys still block AI a...
Posted on 8 September 2026 | 5:00 am

A deep dive into exe.dev

exe.dev gives you persistent Linux VMs over SSH, each with an HTTPS URL, private-by-default sharing, and a built-in coding agent. How it works, wha...
Posted on 7 September 2026 | 1:00 pm

Zustand: simple React state management

Learn Zustand through a React store: actions, selectors, immutable updates, persistence, testing, SSR boundaries, and when local or server state is...
Posted on 7 September 2026 | 9:00 am

Content Security Policy (CSP) explained

Build and deploy a Content Security Policy with source directives, nonces or hashes, report-only rollout, framing protection, testing, and common C...
Posted on 7 September 2026 | 7:00 am

Passkeys and WebAuthn explained

Understand passkeys and WebAuthn, then build registration and login with server challenges, stored public keys, SimpleWebAuthn, recovery, and tests.
Posted on 7 September 2026 | 5:00 am

Introduction to TanStack Query

Learn TanStack Query from the server-state mental model through query keys, freshness, errors, mutations, invalidation, optimistic updates, and com...
Posted on 6 September 2026 | 1:00 pm

Build a documentation site with Astro and Markdown

Build a fast documentation site with Astro, Markdown collections, generated navigation, previous and next links, search, and a sitemap.
Posted on 6 September 2026 | 9:00 am

How to let an AI agent perform irreversible actions safely

A practical architecture for AI agents that spend money, deploy code, delete data, or change infrastructure without turning confirmation into a sug...
Posted on 6 September 2026 | 7:00 am

Build a chatbot with Cloudflare Workers AI

Build and deploy a Workers AI chatbot with the AI binding, validated conversation history, streaming responses, rate limits, cost controls, and sta...
Posted on 6 September 2026 | 5:00 am

What happens when Bun runs a TypeScript file

Follow bun run app.ts through CLI dispatch, module resolution, TypeScript transpilation, JavaScriptCore, Node compatibility, and the event loop.
Posted on 5 September 2026 | 1:00 pm

A deep dive into Cloudflare Images

How Cloudflare Images works: resize, convert and crop images with a URL or a Worker, store uploads, serve private images, and what it costs. Lots o...
Posted on 5 September 2026 | 9:00 am

How to stream LLM responses with server-sent events

Stream LLM text from a provider through your server to the browser with SSE, a correct buffered parser, cancellation, errors, security, and product...
Posted on 5 September 2026 | 7:00 am

Run a local LLM with Ollama

Run an LLM locally with Ollama, choose a model that fits, call the chat API from Node.js, stream replies, request JSON, and understand the limits.
Posted on 5 September 2026 | 5:00 am

Use AI to understand code

The best use of AI is not generating more code. Ask focused questions, attack a change from every angle, and keep the mental model. Code is the byp...
Posted on 4 September 2026 | 1:00 pm

How to build an LLM from scratch

A practical guide for software engineers to build and train a small GPT-style language model on a Mac with Language Model Builder.
Posted on 4 September 2026 | 9:00 am

Biome: one tool for linting and formatting

Biome replaces ESLint and Prettier with one fast Rust tool. Install with biome init, run biome check, and migrate your existing config.
Posted on 4 September 2026 | 5:00 am

Email for developers and AI agents: how to choose a provider

Compare Resend, Cloudflare Email Service, Postmark, Mailgun, SendGrid, Amazon SES, Mailtrap and AgentMail for sending, receiving, and giving AI age...
Posted on 3 September 2026 | 2:30 pm

What is an AGENTS.md file

Use AGENTS.md to give coding agents durable project instructions, from commands and conventions to scoped rules, verification, maintenance, and com...
Posted on 3 September 2026 | 9:00 am

How to build an MCP server

Build and test a TypeScript MCP server with one useful tool, stdio transport, input validation, clear errors, timeouts, and client configuration.
Posted on 3 September 2026 | 5:00 am

SSH for developers

SSH for developers: connect to VPS servers, create keys with ssh-keygen, use ~/.ssh/config aliases, and copy files with scp or rsync.
Posted on 2 September 2026 | 7:00 am

How to scan your code with the Codex Security CLI

Use OpenAI's Codex Security CLI to scan repositories, track vulnerabilities, verify fixes, review changes, and add security checks to CI.
Posted on 2 September 2026 | 5:00 am

Enrollment for the September bootcamp is open

Enrollment is open for the 10-week September bootcamp. Build and ship real software with AI coding agents, starting from zero.
Posted on 1 September 2026 | 4:01 pm