I've had an Oura ring for a while now. It's one of those gadgets that probably edges me closer to that Silicon Valley tech stereotype than I'm entirely comfortable admitting. I even got my wife one for her birthday. (Does gifting biometric tracking devices count as romantic these days? The jury's still out.)
Either way, the other day my Oura ring told me I had a stressful day, I was in "stress mode" for two hours. While scrolling through the app, I mentioned this to my wife... who just showed me her stats in response. Her lowest days of stress were 3 hours and an average of 7 hours.
Well, that got me stressed for her. So I spent an evening trying to figure out a way to help. I used AI to help me with this, and thought I'd share my approach in case someone wanted to use the same thinking for their own solution.
The Promise vs. Reality of AI Tools
I've tried a ton of AI tools and the gap between what they promise and what they actually deliver can be huge. The marketing makes them sound like they'll solve all your problems instantly, which is why so many people end up feeling disillusioned after trying them.
What I've found helpful are the tools that set realistic expectations and actually solve specific problems, even if they don't claim to revolutionize your entire life.
For my wife's stress problem, I needed something to help me understand Oura data and create an actionable plan. Here's what I did…
My Step-by-Step Process
As I started writing this, I realized it was gonna be too long for my usual 6-minute reads. So I'm splitting this into a few posts covering:
Finding relevant resources from Oura on stress measurement
Using an LLM to use these documents to create a stress management plan
Fact-checking the output with another LLM
Building a webapp UI with AI assistance
Connecting the webapp to a database
Let's cover steps 1-3 today...
1. Collecting Information from Oura
Gathering information from Oura was pretty straightforward:
I printed the relevant parts of Oura's website as a PDF. This is important – printing to PDF keeps the text structured in a way that's easier for AI to process.
If you take screenshots instead, your computer saves them as images. It's kind of like the difference between giving someone the actual recipe card versus showing them a blurry photo of it from your phone. Sure, they might make out that you need eggs and flour, but they'll probably miss that it's 1/4 teaspoon of salt, not 1/2 teaspoon, and your cookies will taste like the ocean.
AI can analyze images, but it's more work for it and introduces more room for error, especially with big documents.
2. Creating a Focused Knowledge Base + Prompt
Then I uploaded the Oura docs into a "project" in Claude, which is basically like a "CustomGPT" on ChatGPT or similar features on other AI platforms. This creates what's called a "RAG" – a way to give the AI a focused database to pull from when answering my questions.
One thing I've learned the hard way: always specifically ask the AI to reference the files you've given it. Otherwise, it might just make stuff up based on what it thinks it knows.
Then I prompted Claude to help me understand the stress measurements and create a plan. Here's the prompt I used:
Read all the files to build a better understanding of how the oura ring calculates the stress score. Give me a four line summary
I need your help with something more specific keeping everything you have learned.
My wife has quite high stress scores throughout the day. Averaging from 4-8hours. These scores drop a little on weekends but not substantially l want to help create a plan to reduce her stress scores over the next 6 weeks. I want to set the plan up in a way that helps create some correlation between a change in behaviour against her stress. I also want the plan to be iterative so it builds slowly rather than being overwhelming Her high stress periods are usually in the day time so planning activities in the evening wont be very measurable on her stress scores.
Make sure the plans in prior weeks don't clash with new plans added in future weeks so the plalns can be built on top of each other.
And here's what happened behind the scenes:
The video above is literally 25 seconds of me scrolling so lots of back and forth to optimize the final response! Just a reminder that the hype about automating everything instantly is just that – hype.
But AI tools did help me do in an hour what would have taken me at least a day of full-time focus.
3. Fact-Checking with a Second Opinion
My next step was to send this output to Perplexity because it's specialized in using the internet and providing references. (Gemini 2.5 is also pretty good at this now too.)
This is the prompt I used with Perplexity to make sure there weren't any hallucinations in my stress reduction plan:
Review the text below and fact check all the facts mentioned in the text
Provide your output in a table with the following columns:
- fact: the fact identified in the text
- Accuracy: number from 1-10, where 10 is 100% accurate
- Reason: validating your accuracy number
- Reference; link to the source you've identified (focus on sites that end with .gov, .edu, .org that reference academic papers as much as possible)
4. Building a Webapp UI with AI Assistance
For this step, I used v0 by Vercel, its very similar to (Lovable, Replit etc). You literally describe what you want your app to look like and it builds it for you.
Here's what I told v0:
Build a Next.js habit tracker with 4 pages:
Home (today's 3 activities + week review
Program (6-week structure)
Objectives (weekly explanations)
Activity Management (retroactive/batch entry)
Each week has Core/Boost/Discovery activities users mark as completed/skipped/pending.
Include week navigation, supabase database with localStorage fallback, mobile-responsive design with bottom nav, and program progress tracking.
Activities are determined by program week (starting May 25, 2025) with color-coded cards and emoji status indicators.
What came back was honestly impressive – a clean, minimal interface that looked way better than anything I could have designed myself. The whole process took about 30 minutes, including a few rounds of "make it more blue" and "can the buttons be bigger?"
The beauty of v0 is that it generates actual React code, not just mockups. So you get a working prototype that you can immediately interact with and refine. It's like having a really fast, really patient developer who doesn't judge you for changing your mind five times about the color scheme.
A few things I learned about vibe coding:
Be specific about functionality but flexible about implementation
Don't worry about technical terms – describe what you want users to experience
Iterate in small steps rather than trying to perfect everything at once
Take screenshots of apps you like and reference them for design direction
5. Connecting to a Database for Persistence
Having a pretty interface is nice, but it's useless if it can't remember anything. This is where Supabase comes in – it's basically a database that doesn't hate you.
Setting up Supabase was surprisingly straightforward:
Created a new project (took 2 minutes)
Set up a simple table for stress data with columns for date, stress level, and notes
Connected it to my v0 app using the auto-generated API
The thing that blew my mind about Supabase is that it automatically creates an API for your database. No complex backend setup, no server configuration – just point your app at the URL they give you and start storing data.
Here's what my database schema looked like:
stress_entries table:
- id (auto-generated)
- date (date)
- stress_level (integer 1-10)
- notes (text, optional)
- techniques_used (array of text)
- user_id (for future multi-user support)
The integration process was mostly copying and pasting code snippets that Supabase provides. Even when I inevitably messed something up (which I did, multiple times), the error messages were actually helpful rather than cryptic developer nonsense.
Within about an hour, I had a functioning app that could:
Record daily stress levels
Display personalized stress reduction techniques
Show progress trends over time
Store everything securely in the cloud
Total cost: $0/month for the database (Supabase free tier) and $0/month for hosting (v0 includes deployment).
The Reality Check
Does this app replace professional stress management? Obviously not. Did it give my wife a simple way to ttrack patterns and try evidence-based techniques? Absolutely.
More importantly, building it taught me that the gap between "I have an idea" and "I have a working app" has gotten ridiculously small. You don't need to be a developer to build useful digital tools anymore – you just need to be clear about what problem you're trying to solve.
The whole project, from initial Oura research to deployed webapp, took me about 4 hours spread across a weekend. Having a computer science degree would have made this faster and probably more robust, but it wasn't necessary to create something genuinely helpful.
And honestly? Watching my wife's stress numbers start trending downward over the past few weeks has been more satisfying than any tech gadget I've ever bought. Sometimes the best use of AI isn't replacing human connection – it's finding better ways to support the people around you.