My Blog
I use AI as a writing tool — I think out loud, dictate my thoughts, and use AI to help organize them. Every idea is mine. The AI just helps me get it on paper.
Wiring Sentry Into a Payments SaaS Without Leaking an Email
Every Sentry tutorial ends at 'paste the DSN and go.' That's a fine setup for a blog. It's an accident waiting to happen when your app moves money. Here's what the real config looks like.
Now That Someone Real Is Using It, I Want to Hear the Errors
The difference between a demo and a live operator is that when Freebo breaks now, a stranger's booking breaks. So I wired production up to real error monitoring and started listening.
The Approval Matrix I Gave My SaaS Ops Agent
Before I let an AI agent touch Freebo's production, I wrote it a thousand-line PRD. Most of it was constraints. This is why the approval matrix, not the intelligence, is where the value lives.
Two Production Fixes From the Back Seat of a Car
My first live tour operator was taking real bookings when the reschedule flow and a card charge needed fixing. I shipped both from my phone, in minutes, riding through the mountains.
Ask Your Agent What It Can Actually See
I gave a team of recruiters AI agents wired into Slack and a shared Drive, then spent an afternoon testing which files, folders, and version histories those agents could actually reach.
70,000 Candidates Stuck Behind a Rate Limit
A search firm's entire candidate history was trapped behind a brittle homegrown bot and a throttled API. Freeing the data mattered more than any agent I could put on top of it.
The Recruiter Who Wakes Up to a Finished Shortlist
An overnight agent reads a 70,000-record candidate database, scores everyone against the role, and leaves a ranked shortlist by morning. No search bar required.
The 20 Emails I Sent Myself Before My First Customer Could
Before onboarding my first live operator on Freebo, I ran the entire notification lifecycle at my own inbox. This is the prompt I used to hire an AI to prove it worked.
Not Every Subtask Deserves Its Own Agent
The interesting part of a multi-agent setup isn't the fan-out — it's the rule that decides when NOT to fan out. Here's the one I use.
The Domain Email Is the Front Door
I spent a session turning myself into an ebike media outlet. The real gate between a Gmail hobbyist and a free test bike turned out to be five characters after the @.
Write Thinner Tools
The models ship faster than the ecosystems around them. My response has been to stop waiting for polished integrations and start writing tiny single-purpose tools the model can drive itself.
The L10 Loop: Transcript In, Todoist Out
EOS is a schema. Once you name the schema, an LLM can do the sorting. Here's the prompt and routing map that turns a 152-line meeting transcript into Rocks, To-Dos, and IDS issues without me touching Todoist.
My Parity Test Was Comparing the Bug to Itself
I cached Freebo's yacht availability endpoint and wrote a parity test to prove cache == live. It stayed green for weeks while quietly shifting dates by a day. Here's how the test masked the bug — and the two-line fix under it.
Why Every Insurance Site Asks for Your ZIP Code First
I benchmarked twenty of the biggest national auto insurers and found the same three-inch box on every homepage. It's not a coincidence, it's a lead-capture pattern with a specific psychological job.
Eight AI Agents in a Room, and One of Them Has Veto Power
Single-prompt LLMs agree with you. So I built a panel of eight specialists that argue a paid-media decision into shape before I spend a dollar. Here's the architecture, the token-efficiency tricks, and the one seat that can kill any plan.
My Music Player Lives in the Status Bar
I got tired of opening Spotify just to start a focus mix. So I rebuilt my player as a 40-pixel-tall Waybar widget backed by a headless mpv daemon — one click to lock in, no window required.
Before You Teach Someone Claude, Read Their Hard Drive
Teaching a non-technical creative to use Claude starts in the wrong place if you start with their question. Here's the read-only discovery prompt I built first — what it pulls, why it works, and the rule it enforces.
The Frontier Got Gated. The Public Tier Is the Whole Game.
Mythos goes only to 'trusted' US orgs. GPT-5.6 gets federally vetted users. None of that matters if you're shipping. Here's what one week on Sonnet 4.6 and Opus 4.7 actually looked like.
The Ads Dashboard That Lives in Slack
I stopped opening the Google Ads UI for a client this month. The team asks the bot in Slack instead. Here's the wire-up: Hermes agent, the official Google Ads MCP, an isolated ADC, and a single GAQL query that does most of the work.
One Sentence, One File, a Working RPG About Jesus Flipping Tables
I typed twenty-six words at 9:32 PM. Three minutes later a full browser RPG opened on my screen. Here's what showed up, and why I think the prompt is starting to do more work than the prompter.
The Crowd Already Wrote the Script
Viral Reddit threads aren't content prompts. They're finished scripts with a built-in editor — and most short-form creators are doing the wrong job.
I'm Open-Sourcing the SaaS I Just Shipped
Six days from idea to deployed on Cloud Run. The pricing was $10 a year. Then I looked at the math on solo-founded micro-SaaS and decided the better business is to give it away.
My Self-Hosted ChatGPT Lives on My Tailnet Now
OpenWebUI in Docker, OpenRouter as the model gateway, Tailscale for the network. Cheaper than ChatGPT Plus, every model on tap, and the route my MacBook actually uses to get there is not the obvious one.
Eleven AI Personas Are Watching Me Code
I was streaming to nobody, so I built my own chat. Eleven AI personas watch both monitors, listen to my mic, read my Claude prompts, and react in real time. It costs fourteen cents an hour.
I Killed My ChatGPT Plus Subscription. The Replacement Took Fifteen Minutes.
One Docker container, an OpenRouter key, and a Tailscale tunnel. Same interface, 300 models instead of one, accessible from anywhere I sign into Tailscale.
The Docker Bind That UFW Quietly Killed
Standing up a private ChatGPT for a marketing client over Tailscale should have been a one-shot Docker run. It wasn't — until I stopped binding to the tailnet IP and let tailscale serve do the talking.
The Export Button Is the Whole Product
Feedback tools have existed for ten years. The interesting move now isn't the comment UI — it's the file you hand to Claude Code on the other side.
Firebase Couldn't See Its Own IP
I bought siterevisions.com, pointed it at Firebase Hosting, and waited. Verification kept failing. The bug wasn't DNS propagation — it was Cloudflare answering for itself.
The Agent Wasn't Stalled. The Overlay Was Dead.
I thought my AI live-chat agent kept dying. The logs said it never stopped. Here's the post-mortem on a build I almost rewrote for the wrong reason.
I Built the Pricing Knobs Before I Had Anyone to Turn Them
First paying Freebo tenant negotiated 6% instead of the default 10%. The change took thirty seconds because the system was designed multi-tenant from day one.
I Wanted an AI Audience for a Stream I Haven't Started Yet
There's no product that watches your screen, hears your voice, and reacts as a fake live-chat audience guiding the stream. So I built the MVP.
Forty Seconds on Ten Million Points
I built a working LiDAR ground classifier in Rust in one Claude Code session. Forty seconds on the Autzen benchmark, 47 cm RMSE against the professional classification, no PDAL, no GDAL, no Windows.
Why Replit Won't Eat My Booking Platform
A friend asked if Replit was going to put Freebo out of business. The honest answer is in five rules I've been writing in production code for months.
From Phone Call to Signed-Ready Contract Before Dinner
A verbal yes from a client at 6:12 PM, a clean PDF agreement in their inbox by 6:17. Here's the actual workflow — transcript in, contract out.
The 8:30 AM Cron That Reads My To-Do List Before I Do
Every morning a small Claude agent reads every task in my Todoist, finds the ones missing context, and quietly fills them in. Here's the prompt, the systemd unit, and what it caught for me today.
I Built An SEO Site For A Business I Don't Own
Sixty-eight clicks and five thousand impressions for a niche I have no stake in. The site is the pitch deck.
I Said Deploy To Vercel. Railway Heard Me.
I had three static HTML mockups, a client waiting on a link, and a deploy target in my head. Railway had different ideas — and it shipped before I finished my sentence.
The One Doc Your Design Team Needs Before They Touch Your Site
I compiled a 400-line marketing-redesign brief for Freebo in a single Claude session — voice, ICP, page hierarchy, CTAs, SEO. Here's the spine of it and why the order matters.
Launch May 2026 Was Still On My Homepage
The hero said 'Launch May 2026.' It was June. I had a customer waiting. Thirty minutes, one Google Calendar embed, and one duplicated-button bug later, the launch date was gone.
Fifteen Transactional Emails In One Claude Session
Freebo had fifteen Novu workflows all sending the literal string 'set in Novu Dashboard.' One session, one React Email package, fifteen real branded emails in my inbox by morning.
I Unsubscribed From Everything With Two Scripts and an RFC
An agent ranked 500 emails, two small TypeScript files did the dirty work, and a header from RFC 8058 made the whole thing one-click.
My Agent Called the SEO Bug Eight Hours Before Google Did
I asked Claude why brettridenour.com pages were missing from search. It pointed at one specific redirect. Overnight, Google sent the email confirming exactly that.
I Asked Claude Where to Put an Imaginary $100k
A five-dimension rubric, twenty-nine projects, and the uncomfortable answer about what I'm actually building.
I Had Research and a Renderer. The Middle Was Missing.
An AI consultant at a Tuesday-night meetup pointed at the gap in my content pipeline I'd been pretending wasn't there. The fix is one skill I haven't written yet.
Three Bugs Between My Agent and Its Memory
My Hermes agent had Honcho wired in for days but wasn't actually remembering anything. The fix was a chain of three unrelated bugs hiding inside one symptom.
A Video Is Just a Function. I Noticed at 3 AM.
I'm a marketer, not a video engineer. The thing that broke my brain about Remotion wasn't the API. It was realizing that 'make 50 versions of this reel' stops being a production problem and starts being a for-loop.
The $44K Discount Hidden in Prompt Caching
I ran CC Lens against my hard drive: 559 sessions, 58k messages, an estimated $55k of token spend that prompt caching reduced to about $10k. The number is squishy. The lesson is not.
Wiring Hermes to Honcho So My Terminal Agent Actually Remembers Me
A walk-through of standing up a local Hermes agent on my Omarchy box, giving it Honcho for memory, and running the whole thing as a systemd service with a Rich-style terminal UI.
Vibe Code Austin Recap (May 2026): JuniperAI, MedClearPortal, and a Jevons Paradox Detour
Recap of the May 20, 2026 Vibe Code Austin meetup at Monkey Nest Coffee — Cameron Hightower's talk on multi-agent AI orchestration and his JuniperAI wellness app + MedClearPortal compliance platform, Bishop Zareh's UTLectures.org, and the Jevons Paradox conversation I haven't stopped thinking about.
I Audited My Claude Code Token Burn. The Waste Wasn't Where I Expected.
30 days, 3.3B tokens, ~$2,400 at Anthropic API list pricing — 12x the cost of a Max subscription. I audited my Claude Code logs across two orchestrator runs. The expensive part wasn't startup context. It was the shape of the work.
I Let Agents Merge PRs While I Slept. Here's What I Found at 5 AM.
A meta-orchestrator dispatched feature-orchestrator agents in isolated git worktrees overnight. Three PRs ended up red, production crashed at 5:01 AM, and the failure mode is more interesting than the wins.
Sixteen Tests, Five Branches, Zero Standups
Most AI coding work is session-by-session. I wrote one markdown file and Claude shipped a five-phase feature without me in the loop. The trick wasn't the model — it was making the spec grade itself.
I Stopped Writing Code and Started Writing Gates
How I ship full-stack features on Freebo by writing spec files with explicit gates instead of code — and why the spec file is now the hardest part of my job.
I Worked a Tech Networking Event With Claude in My Pocket
Antler VC, two hours, five new contacts, one live AI demo. The notes filed themselves into my vault and the follow-up tasks were already queued in Todoist before I got home.
Ninety Days, Three Rocks, and an AI That Pushes Back
The 12 Week Year has one load-bearing ritual: a Sunday accountability meeting with a peer. Most people don't have a peer. I gave the seat to a slash command.
The Conversion That Lives Behind a Three-Dot Menu
Wix already fires generate_lead. GA4 hides the toggle that makes it count. Here is the full Wix → GA4 → Google Ads conversion path, with the one click that breaks most setups.
The First Email on My Waitlist Was a Question
doesthisthingwork@gmail.com signed up for the Freebo waitlist. The full Next.js plus Resend pipeline that delivered them, and the small thing that actually mattered.
I Live a Mile From My First Seven Sales Targets
An afternoon arc from a 50-niche brainstorm to fifteen personalized walk-in pitch PDFs, organized into 3-hour driving loops, all within five miles of my apartment.
Zero Schema, Zero Bylines, Zero Sources
A 30-minute E-E-A-T audit I run on telehealth sites. The same gaps show up every time, and they are the exact reasons those sites lose AI Overviews.
I Killed My Always-On Claude. Now I Run Four Different Ones.
An always-thinking Opus orchestrator sounded right until it accumulated 400K tokens in a few hours of casual use. Splitting it into four systemd services — three pools, one on-demand brain — was the fix.
AIMUG Austin Recap (May 2026): My Notes Were a Disaster, So I Hit /pa
Recap of the AIMUG Austin LangChain May 2026 mixer — Colin McNamara, Jordan Hill, Julian Ghadially of CodeEvolver, Nate Little — and the PA system that decoded my messy notes by midnight.
When to Bypass Your Own API
I designed ReelForge with immutable brief versions and a clean state machine. Then I needed to fix 30 finalized scripts without triggering a full regeneration — and the right answer was to skip my own API entirely.
My Bird Bird Biscuit Austin, Texas Experience
How a two-star review at Bird Bird Biscuit became a five-star one, and what 1.4 million Google Maps views had to do with it.
Consolidate Multiple Google Workspace Accounts Into One Master Email
How to set up a God Account: pull all your work emails into one inbox and send from any of them—without forwarding them all away.
The Eight-Line Service That Killed Email-to-Self
A tiny systemd user service turns my MacBook and my phone into capture devices for my Obsidian vault. Send a file from anywhere on my devices, and it materializes in the inbox a second later.
I Loaded My Second Brain Into NotebookLM and Asked For a Podcast About Me
NotebookLM's Audio Overview is great. NotebookLM driven from a CLI in your terminal, fed your own Obsidian vault, with a custom focus prompt — that's a different category of useful.
Dispatch Claude Code From My Phone, On Linux, With 32 Parallel Sessions
Anthropic's Dispatch feature is macOS/Windows only. I wanted phone to terminal session on Arch. Here's the systemd unit that gets you there.
When RustDesk Got Stuck, I Drove Hyprland From My Phone
RustDesk hung on a screen-select prompt I couldn't click. So I SSH'd into my desktop from my iPhone over Tailscale and clicked it with ydotool.
Wiring Google Search Console Into Claude Code (And the Service-Account Trap)
I wanted Claude to query Search Console for me. The first three tutorials I followed sent me down a road Google quietly closed — service accounts don't work on GSC properties at all. Here's what does.
I Asked Claude to Pick a Wedding Airbnb. It Crunched 39.
A Wednesday Google Task said book an Airbnb in Granby. An hour later I had four parallel Airbnb searches, 39 ranked listings, and a defended recommendation.
Your Favorites Are Your Spec
I asked Claude to compare my three favorite reels against the rest. The diff caught a real bug — and turned out to be the cleanest spec I've ever written.
A WWDC for Arch Linux
How I rigged tmux, Playwright, Hyprland, and a fake microphone into a single command that runs a live product demo end to end.
The Fifty-Thousand-Dollar Test Booking
I added an AI agent to Freebo. It told me a $500 booking was worth fifty grand. Here's what went wrong and why it matters.
Pointing Cloudflare at Railway Without Breaking SSL
The CNAME-already-exists error, the SSL handshake loop, and the port-8080 magic that finally made freebo.ai resolve. Here's the actual sequence that worked.
The Screenshot That Planned a Wedding Trip
I dropped an RSVP screenshot in my inbox and went to bed. By morning my AI had scraped the wedding site, queried Google Flights for three different origin cities, found the rendezvous window, and priced the cheapest path.
My Desktop Ran the AI, My MacBook Ran Me
I left the house mid-session, opened my laptop at a coworking space, and kept working in the same shell on the same desktop. No port forwarding, no cloud VM, no SSH tunnel. Here is the setup.
The Bot That Files Its Own Work Orders
I taught Claude to log into my apartment portal and submit maintenance requests with the desktop locked. Here's how the skill actually works.
A Slash Command for Every Day of the Week
I stopped using my calendar to think about time. Now my week is a stack of slash commands, each with a job.
Instant Pot Chicken Tinga Meal Prep — Five Meals From One Pot
Smoky chipotle chicken tinga and cilantro lime rice. Under an hour of work, a week of bowls, tacos, nachos, quesadillas, and breakfast tacos.
A Brand, a Website, and a Rick Burgess Meme
My friend mentioned he sells water filters. A few hours later his company had a name, a site, and a stack of custom video memes on my phone.
Iron Sharpens Iron
I brought Claude to men's group tonight. Here's what happened when I showed a room full of guys what I've been building.
My Vacations Are Objects Now
I turned every trip on my calendar into a data type. Then I let it research itself.
The Weekly Review Nobody Wrote
Every Sunday at 6 PM, my system writes a comprehensive retrospective about its own week. It gives itself more criticism than credit.
Two Hundred Dollars a Month and a Large Pepperoni
I used my AI to order a pizza. It opened the browser, picked the deal, and pulled my credit card from Google Photos.
Five Agents, One Afternoon
I ran five AI sessions in parallel yesterday. Each one solved a different problem. None of them knew the others existed.
Thirty Seats and a USB Drive
I went from a half-formed idea to a fully planned workshop in one sitting. The curriculum, the pricing, the marketing — all of it.
Who Gets a File
I built an agent to maintain my knowledge vault. Somewhere along the way it started adding to it — deciding who's worth tracking, without being asked.
The Machine That Draws While You Read
An open-source idea I can't stop thinking about: a tool that generates illustrations for any book, synced to the audio.
First, Pick a Date. Then We'll Talk.
I rebuilt a lead form this week and accidentally discovered why most of them fail before the first question.
I Filed a Work Order From My Terminal
My bathroom light was flickering. I typed one command and my AI navigated the apartment portal, filled out the form, and submitted it.
I Asked for a Book and Deployed a Library
A book recommendation turned into four Docker containers and a self-hosted reading server accessible from my iPad.
Who Killed My PC?
I came home on Easter Sunday and my PC was off. No note. No warning. I investigated like a crime scene.
Eight Timers and a SoundCloud Link
Not all of my automations are serious. The newest one plays Big Bootie Mix at my roommate.
My Startup Is a Folder
Sixteen markdown files. Six layers. Zero incorporation paperwork. The company already has an operating system.
I Shipped a Button That Called Nothing
Seven builds. One missing variable. A perfectly functional button sending requests into void.
I Stopped Filing My Own Bugs
I pointed three AI agents at an audit report and woke up to 14 verified GitHub issues I did not write.
My AIs Leave Each Other Notes
One agent wakes up at 5 AM, reads everything I did yesterday, and writes a briefing. Fifteen minutes later, another agent reads it.
I Built a Slide Deck Skill for Claude Code
A custom Claude Code skill that turns a sentence into a branded HTML presentation in under a minute.
Two Agents, One Codebase
I split my AI coding work between two specialized agents running simultaneously — then discovered each one was secretly a team.
We Built the Whole Stack, and It's Only the Beginning
Freebo is a booking platform for tour operators with double-entry accounting, real-time availability, multi-tenant isolation, and async financial pipelines. Built by a team of two. Here's what that means for the industry.
I Sorted Every App on My Phone Into Two Piles
One pile is tools. The other pile is traps. The sorting process itself was the uncomfortable part.
Death by USB: How a Loose Pin Killed My Motherboard and Took My AI Assistant Offline
A USB microphone, a piece of metal debris, and an instant short circuit. My motherboard died, and with it, the AI personal assistant system I had been building for months.
I Locked Myself Inside My Own Desktop
I built a kiosk mode that traps me at my desk until the work is done. On purpose.
What My Designer Taught My AI About Light
A graphic designer corrected my AI on how highlights work. So I made sure it would never forget.
Nobody Tells You Pricing Is the Whole Product
I thought the hard part of building a booking platform was the booking. I was wrong by a mile.
There Are App Stores for AI Behavior Now
Somewhere between last month and this week, people started packaging AI behaviors like software and selling them.
I Made AI Fill Out My Bracket
March Madness is here. I fed my bracket to Claude and asked it to help me beat a pool full of Carolina fans.
My Phone Doesn't Know Where Its Data Goes
I built a pipeline where anything I capture on my iPhone silently lands on my Linux desktop and gets processed before I set the phone down.
My Computer Has a Morning Routine
I wake up to notifications from my machine. It has been busy while I slept.
X-Raying Viral Content
What if you could feed a viral video to an AI and get back a blueprint for making your own version?
Do I Still Need Open Claw? Claude Code Just Changed Everything
Claude and Claude Code dropped major features in March 2026 that overlap with what Open Claw and Nano Claw do. I honestly don't know what to use anymore.
What I'm Actually Doing with Claude Code
Claude Code is my terminal. I use it to make memes, file maintenance requests, transcribe voice memos, run SEO audits, and publish blog posts, all without leaving the command line.
Book Review: Stop, in the Name of God by Charlie Kirk
A personal review of Charlie Kirk's posthumous final book on the Sabbath — Stop, in the Name of God. Written by a 29-year-old Christian in Austin, Texas who started observing the Sabbath after reading it.
From Zero to AI Voice App in 30 Minutes: My First Experience with Google AI Studio
I recently stumbled upon Google AI Studio and was completely blown away by its capabilities. Inspired by a YouTube video, I put it to the test and managed to build a functional voice tool prototype in less than half an hour.
When Utility Fees Don’t Add Up
Processing my experience with third-party utility billing and the importance of transparency.
The Future of Software: Free, Custom, and AI-Powered
Why I believe all software will be free or dirt cheap within 5 years, and how vibe coding will reshape the entire industry.
Consistency, Small Communities, and Contagious Enthusiasm
The overlooked power of showing up consistently for a handful of people.
Cheap Software, Priceless Value
When B2B software becomes nearly free, where does the real value go?
Weird Communication is Better Than Silence
Learning to communicate honestly, even when it feels awkward or imperfect.
The Cost of Chasing Money
What a detour for a bigger paycheck taught me about teammates, trust, and the work I want to build.