I built FitBuddy, a small personal habit and lifestyle coach for my friend Atharva, who wanted to become more active and consistent.
🌱 What FitBuddy does
FitBuddy asks about:
- Current wake and sleep times
- Current activity level
- Preferred type of movement
- Eating habits
- Ideal routine
- Main goal
- Desired journey length It then uses AI to create a personalized journey broken down week by week. The idea is simple: Don't change everything. Change one thing at a time.
The user can also track their progress across a 7-day week, build a streak, and earn a ⭐ reward for completing the week.
🤖 Open AI at the core
The most important part of this project is that the AI doesn't depend on a paid cloud API.
FitBuddy uses Gemma 3:1B, an open-weight model, running locally through Ollama.
The basic flow is:
User
↓
FitBuddy Web App
↓
Node.js / Express
↓
Ollama
↓
Gemma 3:1B
↓
Personalized Habit Journey
Because the model runs locally, the routine information entered into FitBuddy can stay on the user's computer rather than being sent to a third-party AI API.
That was one of the reasons I wanted to experiment with local AI for this project.
🛠️ Tech Stack
- HTML
- CSS
- JavaScript
- Node.js
- Express
- Ollama
- Gemma 3:1B
- LocalStorage 💡 Why I built it this way One thing I learned while building FitBuddy is that personalization isn't just about giving someone more information. It's about giving them the right next step. A plan that looks perfect on paper isn't useful if someone can't realistically follow it. That's why FitBuddy focuses on gradual changes, consistency, and recovering from setbacks rather than expecting perfection from Day 1. ⭐ What I learned This challenge pushed me to work with a local AI model instead of simply calling an external API. I learned how to:
- Run an open-weight model locally with Ollama
- Connect a Node.js application to a local AI model
- Send structured user information to an LLM
- Build a simple interactive frontend
- Store progress locally using LocalStorage
- Think about AI limitations and prompt reliability One of the biggest lessons was that small models don't always follow complicated instructions perfectly. I had to simplify my prompts and design the application so that the AI was responsible for personalization rather than trying to make it control every part of the application. 🚀 What's next? If I continue developing FitBuddy, I'd like to add:
- More reliable habit progression
- Better weekly personalization
- Real feedback from my friend after using it
- Collectible weekly stickers
- More adaptive responses to setbacks
- A longer-term progress dashboard
For now, FitBuddy has achieved what I wanted from this weekend challenge:
Turn a real person's problem into a small, usable product powered by open AI. 🌱