This is a submission for the Hacktoberfest Weekend Challenge: Build for a Friend.
What I Built
Meet Nudge Veer.
It's an AI coding companion I built specifically for my best buddy.
Veer and I spend a lot of time solving DSA and LeetCode problems. Sometimes the problem is the problem. Sometimes the problem is Java. And sometimes... the problem is simply staring at the screen for 20 minutes and refusing to move.
I didn't want to build him another productivity dashboard.
I wanted to build something that could nudge him when he's stuck, plan things when he doesn't know where to start, roast him when he's trying to cheese the system, and actually reward him when he earns it.
So that's what Nudge Veer became.
THINK
Veer can bring a coding problem into THINK mode and interact with Gemma while solving it.
The AI receives context such as his coding state, mood, problem, language, hint history and current hint level.
Instead of immediately dumping a solution, Gemma decides what kind of intervention makes sense:
- ask a question
- give a conceptual nudge
- provide a hint
- help with syntax
- adjust the difficulty
- or occasionally tell him that yes, he is in fact cooked 😭
The philosophy is simple:
Nudge, don't replace.
🗺️ GAME PLAN
Sometimes the problem isn't solving a problem.
It's not knowing what to learn next.
Veer can enter something like:
"I want to learn Dynamic Programming."
Instead of giving him a giant generic checklist, Gemma first asks for relevant context — experience, timeframe, available time, goals, etc.
It then generates a structured, multi-phase roadmap with:
- phases
- topics
- tasks
- milestones
- timelines
- practice recommendations
- LeetCode problems
The goal is to turn:
"I should probably learn this."
into:
"Okay. I know what I'm doing today."
😈 CHALLENGE
This is where I decided to make things slightly evil.
Challenges have difficulty levels and points, but points aren't handed out for clicking buttons.
There is an anti-cheese system:
- opening a challenge → no points
- repeating a challenge → no farming
- using hints → reduced reward
- asking for the full solution → zero challenge points
Because otherwise Veer would discover the optimal strategy in approximately 14 seconds.
🏆 BADGES
Badges are earned through actual milestones rather than simply opening pages.
Some are intentionally ridiculous.
🍦 TREATS
This is my favourite part.
The points aren't just imaginary internet numbers.
They can be exchanged for actual treats from me (SK).
Current rewards include:
- 🍦 Ice Cream
- 🌯 Veg Frankie
- 🖊️ Pen
And then there's the ridiculous one:
💀 THE 1000-COIN MISTAKE
If Veer somehow saves up 1000 coins (hopefully he doesn't 🤐), he unlocks a much bigger real-world treat.
The coins are persisted through MongoDB, and when a treat is redeemed, the balance actually decreases.
So yes, there is now a database keeping track of whether I owe my friend food.
🎮 The Home Page
I didn't want the home page to look like a SaaS dashboard.
It's basically a small interactive title screen.
The centerpiece is a 3D Nudge Veer logo with:
#From Developer to the Best PM
The logo reacts to the user's mouse with 3D perspective, lighting and depth effects.
There is also a small weird playable character that you can poke because apparently that was necessary.
The page also contains:
- 😈 the Evil Scorekeeper
- 💌 personal messages I've written for Veer
- 🪙 his earned coins
- 🎁 his real-world treats
And, of course, some subtle Mr. Bean and Motu Patlu doodles in the background.
It is intentionally more like a game title screen made for one friend than a traditional productivity app.
🚀 Demo
Live: sk-sathyavada-008.github.io/nudge/
The project is available on GitHub with the complete source code and setup instructions; Render deployment was attempted but is currently unavailable.
The local development setup uses Gemma through Ollama, while the deployed environment uses the configured fallback AI provider where required.
MongoDB Atlas persists the application's reward and progress data across sessions.
💻 Code
https://github.com/SK-Sathyavada-008/nudge
🛠️ How I Built It
The stack is:
- Gemma 2 — the open-weight AI model powering the coding companion and roadmap generation
- Ollama — local model runtime during development
- React 19 + Vite — frontend
- Three.js / React Three Fiber — interactive 3D home page
- Node.js + Express 5 + TypeScript — backend
- MongoDB Atlas — persistent application data
- Antigravity IDE — AI-assisted development
There are two major AI workflows.
THINK Agent
The THINK workflow provides Gemma with structured context such as:
mood
coding state
hint level
hints used
problem
programming language
Gemma then determines the appropriate next interaction instead of simply returning a generic answer.
GAME PLAN Agent
The roadmap workflow works differently.
It first gathers the information necessary to understand the user's goal and constraints, then generates a structured roadmap that the frontend can render and track.
The important part for me was making AI an actual decision-making component of the product, rather than putting a chatbot in the corner and calling the project AI-powered.
🌱 Why Open Innovation Matters
Building this around an open-weight model changes what I can do with the product.
1. I can run the model locally
With Gemma and Ollama, I can experiment with the AI companion locally without requiring every interaction to go through a hosted API.
That matters for a personal tool where experimentation is part of the fun.
2. I control the AI behaviour
Nudge Veer isn't supposed to sound like a generic assistant.
It's supposed to sound like something that understands the context of the application — including when a hint should be given, when the user should be pushed to think, and when a little teasing is appropriate.
Using an open model gives me much more control over that behaviour and the surrounding system.
3. The system is replaceable
The application keeps the model interaction behind the backend rather than tightly coupling the UI to one model provider.
That means experimenting with different models and runtimes doesn't require rebuilding the entire application.
4. It makes personal AI more accessible
This project started with a very small problem:
"My friend gets stuck while learning."
It didn't require a huge AI platform.
It required an open model, a small application, some creativity, and knowing the person you're building for.
That's what I like most about open innovation.
🤖 My Agent Session
I built Nudge Veer using Antigravity IDE with an AI-assisted development workflow.
The agent helped with things including:
- React + Express architecture
- MongoDB persistence
- the Gemma integration
- structured roadmap generation
- challenge/reward logic
- the interactive 3D home page
- responsive UI
- debugging deployment issues
One particularly fun debugging session involved an Express 5 routing change where a wildcard route caused a TypeError, requiring the backend routing approach to be changed.
The project also went through several iterations where I deliberately removed features that made it feel too much like a productivity tracker.
No confidence score.
No streak counter.
Instead:
AI companion + challenges + chaos + actual food.
🏆 Prize Categories
I'm submitting Nudge Veer for:
Best Use of Gemma
Gemma is central to both major AI workflows:
- THINK — contextual coding assistance
- GAME PLAN — personalized roadmap generation
Best Use of MongoDB Atlas
MongoDB Atlas provides persistent storage for things like:
- user reward balance
- challenges
- badges
- treat redemptions
- roadmap/progress data
❤️ Why I Built It
The easiest way to explain Nudge Veer is this:
I didn't start with a business idea.
I started with a friend.
I know the person who is going to use this. I know the problems that annoy him. I know the jokes he'll understand. I know what kind of motivation he'll ignore.
So instead of asking:
"What AI product should I build?"
I asked:
"What would actually make my friend's day a little better?"
And somehow that turned into an AI coding companion that keeps track of whether I owe him an ice cream.
That's Nudge Veer.
Your brain isn't broken. It just needs a nudge.
Dashboards aside, Veer loved the “Messages From SK” section. Because what's friendship without a roast? 😂
#BestBuddyEver
Team
@veerrr
Top comments (1)
Greatttt idea !!!