30 posts

July 26, 2026·13 min read

Bike, or Not Bike?

My camera kept logging bicycles that were actually jacaranda branches moving in the wind. No amount of tuning could fix it, so I fine-tuned the detector itself.

Read post →
July 20, 2026·23 min read

Turning the Parking Tracker Into a 3D Model of My Block

There’s a webcam on my block that counts how many of the seven street parking bays are taken. Now there’s also a 3D model of that block, running in a browser tab, where a car shows up in a bay only when the bay is actually occupied right now.

Read post →
July 14, 2026·15 min read

How Many Parking Spots Are Open on My Block? I Built a Camera to Find Out.

I have a parking space. My friends don’t — and the question they text before driving over is always some version of “is there parking on your street?” So I pointed a webcam at the seven bays outside my window and tried to answer it properly, once a minute.

Read post →
July 9, 2026·7 min read

What Claude Code Actually Costs Me

I had a dozen automated jobs quietly calling Claude and no idea what any of it cost, so I built a weekly audit that inventories every AI-calling job, splits real dollars from subscription load, and flags any new job that sneaks in. The answer: real spend is under $2 a month.

Read post →
June 26, 2026·7 min read

How I Run Multiple Claude Code Sessions in Parallel

Running several Claude Code agents at once with git worktrees and a small shell tool called cmux — one agent per branch, no file conflicts, on both my Mac and my home Linux server, all on a single Max subscription

Read post →
June 12, 2026·7 min read

How I Self-Hosted a Gmail MCP Server

The claude.ai Gmail connector can read and draft but can't archive, label, or trash. I built a self-hosted MCP server with modify scope so Claude can clean up my inbox — safely — plus the 7-day OAuth bug that took a month to understand

Read post →
May 22, 2026·7 min read

How I Self-Healed Schwab's 7-Day OAuth Expiry

Schwab's market-data API hands you a token that hard-expires every 7 days by design. Instead of babysitting a renewal, I built a pipeline that renews itself before it dies and only emails me when it can't

Read post →
May 8, 2026·7 min read

How I Built Self-Hosted Push Alerts to My Phone

Replacing buried email alerts with instant phone push notifications using self-hosted ntfy, kept private to my own devices over Tailscale with token auth — no third-party push service

Read post →
April 23, 2026·6 min read

Grading the grader: qwen 1.5b vs 7b

I swapped the local AI that grades my chatbot for a bigger one and compared the two across 55 real conversations. Here's what a smaller model misses — and where Claude Haiku and Sonnet would sit on the same ladder.

Read post →
April 4, 2026·8 min read

How I Built Ask Goose, a RAG Chatbot for My Personal Site

A streaming AI chatbot grounded in 300+ content chunks, powered by Claude Haiku, Supabase pgvector, and a floating widget that follows you across the site

Read post →
April 4, 2026·7 min read

How I Built an AI Content Pipeline for Every Writing Post

Using Claude Haiku for topic tags, Supabase vector embeddings for related posts, and build-time scripts to turn 18 blog posts into a connected content product

Read post →
April 4, 2026·4 min read

How I Upgraded Search to Semantic Vector Embeddings

From keyword matching to meaning-based search using pgvector, Supabase, and Hugging Face — and why it's the foundation for Ask Goose

Read post →
March 30, 2026·6 min read

How I Built a Personal API Server to Control Everything Remotely

An Express API on the Alienware that lets me trigger jobs, check system health, and pull reports — secured with API key auth, systemd, and port knocking

Read post →
March 25, 2026·8 min read

How I Built a Cron-Powered Operations Layer on a Home Linux Server

What started as three cron jobs grew into 100+ lines of scheduled automation — market briefings, game bots, security audits, AI job queues, and weekly reports, all orchestrated by a single crontab

Read post →
March 21, 2026·9 min read

How I Automated My Soccer Club with a Bot

A Python bot on a headless Linux server that manages a TrophyManager.com soccer club — scouting, bidding, lineup setting, training, and self-grading, all automated

Read post →
March 17, 2026·7 min read

How I Built a Market Briefing That Writes and Sends Itself Every Morning

A Python script on a headless Linux server scrapes market data, asks Claude to explain why markets moved, and delivers it to subscribers via Resend — every weekday at 8am

Read post →
March 12, 2026·7 min read

How I Built Fruit Exchange, a Neighborhood Fruit Tree Map

A map-based community tool where neighbors list backyard fruit trees and others can find them — styled like a 90s farming game, verified with email, and built with Claude Code

Read post →
March 8, 2026·9 min read

How I Built a Full Status Alert System

Website uptime, Supabase health, API monitoring, Fail2ban reports, Claude-generated changelog, and a weekly summary — all automated from a headless Alienware

Read post →
March 7, 2026·7 min read

How I Secured the Home Linux Server

Layered security for an always-on home machine — UFW firewall, Fail2ban brute-force protection, SSH key-only auth, port knocking for remote access, and instant login alerts

Read post →
March 6, 2026·7 min read

How I Turned an Old Laptop Into a Headless Linux Server

Repurposing a 2011 gaming laptop into an always-on home server running Linux Mint — closed lid, no monitor, SSH access from anywhere

Read post →
March 5, 2026·5 min read

How I Added "TL;DR by Goose" AI Summaries to Every Post

Using Claude Haiku to generate static summaries at publish time — and why the architecture decision matters more than the feature itself

Read post →
March 3, 2026·9 min read

How I Built a Self-Updating Search Bar Using Claude Code

From architecture decision to React portal — why a simple search bar required a codebase refactor, a build script, and fixing a CSS rule I didn't know existed

Read post →
February 28, 2026·9 min read

How I Automated Daily Garmin Recaps to My Inbox

Building a Mac automation that fetches Garmin health data at 7am, generates AI recaps with Claude CLI, and emails them — built across two sessions

Read post →
February 28, 2026·7 min read

How I Replaced Google Forms with a Custom Contact Form Using Claude Code

Building a Supabase-backed contact form with email notifications in 2 hours — 4x faster than my first database project

Read post →
February 27, 2026·7 min read

How I Built 50+ Dynamic Greetings Using Claude Code

Replacing 8 static words with time-aware messages — and learning why iteration beats perfection

Read post →
February 27, 2026·6 min read

How I Built a Universal Footer Using Claude Code

Designing and deploying a production-ready footer component in under 30 minutes with terminal-based AI

Read post →
February 19, 2026·9 min read

How I Built Numerator Using Claude

A non-developer builds a full-stack web game from concept to deployment in four sessions

Read post →
February 18, 2026·11 min read

How to Set Up Your Site So Google Can Actually Find It

I finished building this site yesterday. Before I write anything else on it, I want to be certain Google can actually find what I publish — because publishing a page and having Google know it exists are two different things. On a hosted platform that gap is usually handled for you; on a custom-built site it can quietly go unchecked. So here is the setup, done first.

Read post →
February 17, 2026·3 min read

Gemini Grades the Website Build Difficulty

Google’s AI evaluates how hard it actually was to build joseandgoose.com from scratch

Read post →
February 17, 2026·8 min read

How I Built JoseAndGoose.com Using Claude

A non-developer builds a website from scratch with AI in three sessions

Read post →