The Thing at the Top Always Wins

Put six options in front of people and the one you listed first will win. Here is how to find out which they actually prefer, including the arithmetic for whether a lead is real or noise.

Read more →

Move the Sofa Forty Times Before You Move It Once

Thirteen numbers decide whether a room works, and a sofa listed at 200 cm is usually 214 across the arms. Here is how to test a layout properly before you lift anything heavy.

Read more →

The iPhone Silent Switch Mutes Web Audio — and the Documented Fix Breaks Your Microphone

An iPhone's ringer switch silences Web Audio but not HTML audio. WebKit's own fix works, and quietly makes getUserMedia throw. Four iOS audio behaviours, measured, with the code.

Read more →

Thirteen CI Runs, Thirteen Real Bugs: What a Cold Machine Knows That Your Laptop Doesn't

We turned on CI for a 64-project monorepo with 10,000 green tests. It failed 13 times in a row - and every single failure was a real, pre-existing defect the fast machines had been hiding.

Read more →

The Reviewer Who Refutes: Running an Adversarial Review Cycle with AI Agents

Every AI-drafted change in our repo faces a second AI whose only job is to prove it wrong - with negative controls. The cycle has caught a real defect on nearly every pass, including bugs in my own fixes.

Read more →

Free CI on Hardware You Already Own: Gitea Actions on a NAS, Set Up by an AI Agent

GitHub wanted money for Actions on a private repo. The NAS in the closet was already running Gitea. Here is the full recipe for turning it into a CI runner, with an AI agent doing almost all of it.

Read more →

Invisible Banding in Generated OG Images: Two satori Traps, and One I Got Wrong

Generated social cards carry hard edges and lost spaces you will never spot by eye. Two satori traps with the pixel measurements — plus the third I published that turned out to be wrong.

Read more →

The Volume-Tool Inversion: Your Keyword Tool Points at the Terms You Can't Win

Our best query earned 410 clicks while the keyword tool reported its volume as zero. The terms the tool could size were the ones we lose. That inversion is structural, and it changes how you should use volume data.

Read more →

A Backup Isn't a Backup Until Something Tries to Restore It

My VPS backups were quietly incomplete. Closing the gaps with an encrypted nightly rotation pushed into git, and a quarterly drill that restores everything and emails me when it can't.

Read more →

Every Free Classroom Tool on lans.cloud, Organised by When You'd Use It

The complete index of the free, no-signup classroom tools on the site — timers, pickers, noise meters, review games and more — sorted by the moment in a lesson you'd actually reach for each one.

Read more →

AI Search Optimization, Part 5: The Tool-Invocation Moat

Getting cited is table stakes. The real moat for a tools site is being the capability an agent actually *runs* — via API or MCP. Here's the bet, the monetization ladder, and why we've gated it on a demand signal instead of building it blind.

Read more →

AI Search Optimization, Part 4: Measuring What the Dashboard Can't See

Google Search Console is blind to AI answers. Here are the two signals that aren't — referral click-throughs from AI engines, and a manual citation panel — and how we wired the first one into our daily digest.

Read more →

AI Search Optimization, Part 3: llms.txt and the Agentic Web (An Honest Take)

Everyone's shipping an llms.txt. Almost no AI engine reads it — yet. Here's what it actually does, who really fetches it, and the crawler/indexing plumbing that matters far more for showing up in ChatGPT.

Read more →

AI Search Optimization, Part 2: Front-Loaded Answers & Drift-Proof Schema

Answer engines quote the passage that most directly answers the query. Here's the on-page work that makes your pages quotable — front-loaded answers, FAQ/HowTo schema, freshness dates — and a pattern that keeps the JSON-LD from ever drifting.

Read more →

Setting Up Your Classroom for September: What the Research Actually Says About Seating, Jobs and Routines

Seating plans, classroom jobs and week-one routines — what the evidence supports, where it's just practitioner wisdom, and free no-signup tools for each.

Read more →

Teaching Roman Numerals: Why They're Still in the Curriculum and Where Kids Actually Trip Up

Roman numerals are still a curriculum requirement — here's the teaching sequence that works, the six subtractive pairs to teach as vocabulary, and the mistakes to expect.

Read more →

AI Search Optimization, Part 1: What GEO Actually Is (and the Two Games)

Generative Engine Optimization is not a new SEO fad — it's a second game played on the same board. Here's what GEO is, how it differs from SEO, and why the long tail is where you actually win.

Read more →

Free Classroom Tools for Focus and Self-Regulation — and the Research on Why They Work

The pedagogy behind classroom timers, noise meters, name pickers and scoreboards — with the real research — plus free, no-signup, ad-free tools that put each on your smartboard.

Read more →

Equal Playing Time in Youth Sports: A Fair-Rotation Guide (with a Free Calculator)

How to rotate a youth-sports roster so every kid gets roughly equal minutes — the why, the honest exceptions, and the exact math (with a free calculator to do it for you).

Read more →

Why AI-Generated Code Needs Guardrails: Part 3 - The Philosophy

Why 24 ESLint configurations instead of one? Explore the philosophy behind context-specific tooling, gradual adoption, and why one-size-fits-all doesn't work for AI collaboration.

Read more →

Why AI-Generated Code Needs Guardrails: Part 2 - The Research

Not all AI collaboration is the same. Explore the research behind AI-AI, AI-Human, and Human-Human collaboration patterns and why each needs different guardrails.

Read more →

Why AI-Generated Code Needs Guardrails: Part 1 - The Problem

AI coding assistants are transforming development, but research reveals hidden costs. Discover why AI-generated code needs structured guardrails to prevent quality issues.

Read more →

A Practical SEO Guide, Part 1: Make It Crawlable First

Before sitemaps or structured data, SEO starts with one question — can a crawler actually read your content? Part 1 covers rendering, semantic HTML, and headings.

Read more →

A Practical SEO Guide, Part 2: The Discovery Layer

robots.txt, sitemap.xml, and canonical URLs are how you hand a crawler a map instead of making it guess. Small files, outsized impact. Here's how to do each one right.

Read more →

A Practical SEO Guide, Part 3: Structured Data & Social Cards

JSON-LD tells search engines what your page *means*; Open Graph tags decide whether a shared link looks like a rich card or a bare URL. Both are high-leverage and underused.

Read more →

A Practical SEO Guide, Part 4: Performance Is SEO

Core Web Vitals are an explicit ranking signal, and a slow first paint costs you both rankings and the visitors who bounce before it loads. The highest-ROI fixes, in order.

Read more →

A Practical SEO Guide, Part 5: Verify & Iterate

SEO isn't a task you finish — it's a state you maintain. How to verify every fix from this series actually shipped, and how to catch regressions before Google does.

Read more →