Writing
Notes on full-stack development.
How I Added llms.txt to My Next.js Blog in 15 Minutes
A markdown file that tells AI agents where to start — a curator's index for ChatGPT, Perplexity, and Claude. Static and dynamic Next.js setups.
· 7 min read
The 3-Word Tag That Hides Your Best Pages from AI
Three words in `<head>` can hide your best article from ChatGPT, Claude, and Perplexity — even if Google still shows it. The silent AEO killer.
· 6 min read
Recency and Authority — Two Fields AI Uses to Trust You
Before quoting your article, AI runs two checks — is it fresh, and who wrote it. Both ride on machine-readable signals. Here's the canonical setup.
· 5 min read
How to Help AI Understand Your Content with JSON-LD
LLMs ground answers in structured data. With schema.org markup, the model sees a typed object — author, date, headline. Here's the canonical setup.
· 8 min read
The Invisible Tags Shaping Your AI Citations
title, meta description, og:image, canonical — four tags decide if ChatGPT and Perplexity render your brand on the citation card. The bundle.
· 8 min read
Semantic HTML — Skipping Headings Breaks AI Optimization
AI crawlers parse your heading outline before anything else. Skip an H3 and you create a phantom node — here's how to keep structure clean for LLMs.
· 6 min read
The JavaScript Trap — Why AI Bots See Empty Pages
AI crawlers don't run JavaScript. If your raw HTML is a hollow `<div id="root"></div>`, you're invisible to ChatGPT, Claude, and Perplexity.
· 7 min read
Why Your Site Doesn't Show Up in ChatGPT (or Perplexity)
Three robots.txt strategies for AI crawlers, and the two configuration mistakes that quietly cut you out of ChatGPT, Claude, and Perplexity answers.
· 8 min read