← All writing

Automation

An Hour Instead of a Day: The Honest Version

How I used AI to help my wife's stress numbers, friction included.

I have had an Oura ring for a while now. It is one of those gadgets that edges me closer to the Silicon Valley tech stereotype than I am comfortable admitting. I even got my wife one for her birthday, which raises the question of whether gifting biometric tracking devices counts as romantic these days. The jury is still out.

The other day my Oura ring told me I had a stressful day. I was in "stress mode" for two hours. I mentioned this to my wife while scrolling the app, the way you announce a minor injury hoping for sympathy, and she just showed me her stats in response. Her lowest days of stress were 3 hours. Her average was 7 hours.

Well, that got me stressed for her. So I spent an evening trying to figure out a way to help, with AI doing some of the lifting, and the approach is worth sharing in case you want to steal the thinking for your own version.

Promise versus reality

I have tried a ton of AI tools and the gap between what they promise and what they deliver can be enormous. The marketing makes them sound like they will solve every problem instantly, which is exactly why so many people feel disillusioned after trying them. The ones I keep using are the ones that set realistic expectations and solve a specific problem without claiming to reinvent your entire life.

For my wife's stress, I needed something to help me understand Oura data and turn it into an actionable plan. This got long enough that I split it across posts covering finding Oura's stress resources, using an LLM to build a plan, fact-checking with a second LLM, building a webapp UI, and connecting a database. Steps one to three here.

1. Collecting information from Oura

Gathering it was straightforward. I printed the relevant parts of Oura's website as a PDF. This matters, because printing to PDF keeps the text structured in a way that is easier for AI to process.

If you screenshot instead, your computer saves images. It is like the difference between giving someone the actual recipe card versus a blurry photo of it from across the kitchen. They might make out eggs and flour, but they will miss that it is 1/4 teaspoon of salt, not 1/2, and your cookies will taste like the ocean. AI can read images, but it is more work and more room for error, especially with big documents.

2. A focused knowledge base and prompt

I uploaded the Oura docs into a "project" in Claude, which is basically a CustomGPT-style feature, available in similar forms on most platforms. This creates what is called a "RAG", a way to give the AI a focused database to pull from. One thing I learned the hard way: always explicitly ask the AI to reference the files you gave it, or it will cheerfully make things up based on what it thinks it knows.

The prompt I used asked Claude to read all the files, summarise how the Oura ring calculates the stress score in four lines, then build a six-week plan to reduce my wife's daytime stress scores, iterative so it built slowly rather than overwhelming, designed so behaviour changes could be correlated against the scores, with later weeks not clashing with earlier ones so the plan could stack.

The screen recording of this process is 25 seconds of me scrolling, on speed, just back and forth optimizing the final response. A useful reminder that the hype about automating everything instantly is hype. But it did help me do in an hour what would have taken a day of full-time focus.

3. Fact-checking with a second opinion

I sent the output to Perplexity because it specialises in using the internet and providing references. Gemini 2.5 is pretty good at this now too. I asked it to review the text, fact-check every claim, and return a table with the fact identified, an accuracy number from 1 to 10, the reason behind that number, and a reference link, biased toward .gov, .edu and .org sources that cite academic papers.

4. Building the UI

For this I used v0 by Vercel, similar to Lovable, Replit and the rest. You describe what you want and it builds it. I asked for a Next.js habit tracker with four pages: a Home page with today's three activities and a week review, a Program page with the six-week structure, an Objectives page with weekly explanations, and an Activity Management page for retroactive and batch entry. Each week has Core, Boost and Discovery activities marked completed, skipped or pending, with week navigation, Supabase plus localStorage fallback, mobile-responsive design with bottom nav, and progress tracking, activities determined by program week starting May 25, 2025, with color-coded cards and emoji status.

What came back was honestly impressive. A clean minimal interface that looked better than anything I would have designed myself, in about 30 minutes including a few rounds of "make it more blue" and "can the buttons be bigger". v0 generates actual React code, not mockups, so you get a working prototype you can poke at immediately. It is like having a really fast, really patient developer who does not judge you for changing your mind five times about the colour scheme.

A few things I learned about vibe coding: be specific about functionality but flexible about implementation, do not worry about technical terms and describe what users should experience, iterate in small steps, and take screenshots of apps you like for design direction.

5. Connecting a database

A pretty interface is useless if it forgets everything the moment you close it. Supabase is basically a database that does not hate you. Setting it up was surprisingly painless: a new project took 2 minutes, a simple table for stress data with date, stress level and notes, connected to the v0 app with the auto-generated API. The thing that blew my mind is that it creates an API for your database automatically. No backend setup, no server config, just point your app at the URL.

My schema was a stress_entries table with an auto-generated id, a date, a stress_level integer from 1 to 10, optional notes text, a techniques_used text array, and a user_id for future multi-user support. Integration was mostly copying and pasting Supabase's snippets, and when I inevitably broke it, several times, the error messages were actually helpful instead of cryptic developer nonsense.

Within about an hour I had a working app that could record daily stress levels, display personalised techniques, show progress trends, and store everything in the cloud. Total cost: $0/month for the database on Supabase's free tier and $0/month for hosting, since v0 includes deployment.

The reality check

Does this replace professional stress management? Obviously not. Did it give my wife a simple way to track patterns and try evidence-based techniques? Absolutely. The whole project, from initial Oura research to a deployed webapp, took about 4 hours across a weekend. A computer science degree would have made it faster and probably sturdier, but it was not necessary to make something genuinely helpful.

Watching my wife's stress numbers trend downward over the past few weeks has been more satisfying than any gadget I have ever bought. So pick one person around you and one annoying problem they have, then spend an evening pointing AI at the boring middle of solving it. Sometimes the best use of this stuff is not replacing human connection. It is finding a better way to support the people in front of you.

Have a process that is costing your team real hours?

Book a call