DEV Community

Cover image for Let technology handles the routine of the older generation :)
Aman Gupta
Aman Gupta

Posted on

Let technology handles the routine of the older generation :)

Sidekick: A Gentle Wellness Planner Built for My Dad with Gemma

This is my submission for the Hacktoberfest Weekend Challenge: Build for a Friend.

💡 The Idea

I built Sidekick, a calm and simple daily wellness planner designed for my dad.

My dad doesn't need another complicated productivity dashboard filled with charts, numbers, and endless notifications.

He needs something practical, familiar, encouraging, and easy to use.

So instead of trying to optimize every minute of his day, Sidekick focuses on creating a gentle rhythm of small, achievable actions:

  • 🚶 A short morning walk
  • 🍽️ Simple meal suggestions
  • 💧 Hydration reminders
  • 🪑 Chair-friendly movement
  • ✅ Daily progress tracking
  • 💬 Encouraging notes
  • 🤖 Personalized suggestions from an open-source Gemma coach

The goal is simple:

Make healthy routines feel approachable and repeatable.


🌱 What Sidekick Does

When the app opens, the user gets a simple daily dashboard containing:

  • A personalized greeting
  • Today's progress
  • A timeline of meals, movement, and hydration
  • A daily meal plan
  • A short movement suggestion
  • A streak indicator
  • A conversational Gemma wellness coach

Activities can be completed with a single click.

As activities are completed, the progress bar and completion count update immediately, providing small but visible wins throughout the day.

I intentionally designed the interface to feel warm and familiar rather than clinical or overwhelming.


🎥 Demo & Source Code

▶️ Live Demo

Watch the Sidekick Demo

💻 GitHub Repository

View the Sidekick Source Code on GitHub


🔄 How It Works

The main user flow is intentionally simple:

  1. Open the Sidekick dashboard.
  2. Review the day's wellness rhythm.
  3. Mark activities as completed.
  4. Open the Gemma Coach.
  5. Tell the coach about a preference, such as:
  • "I want more vegetarian meals."
  • "Suggest gentle knee-friendly exercise."
    1. Receive a short and practical personalized plan.

The idea is that the user shouldn't have to learn how to use a complicated wellness system.

Open the app → see what to do → complete it → get encouragement.


🛠️ Technology Stack

Sidekick is built using:

  • Next.js
  • React
  • TypeScript
  • Tailwind CSS
  • Express
  • Ollama
  • Gemma 3 4B
  • MongoDB Atlas
  • Docker
  • Render
  • Vercel

Important Files

src/app/(dashboard)/page.tsx
Enter fullscreen mode Exit fullscreen mode

Main dashboard experience.

src/app/api/coach/route.ts
Enter fullscreen mode Exit fullscreen mode

Next.js API proxy used to communicate with the Gemma agent.

agent-service/server.js
Enter fullscreen mode Exit fullscreen mode

Gemma agent gateway.

agent-service/Dockerfile
Enter fullscreen mode Exit fullscreen mode

Container configuration for the agent service.

render.yaml
Enter fullscreen mode Exit fullscreen mode

Render deployment configuration.


🖥️ Frontend

The frontend is a Next.js application built with React and TypeScript.

The dashboard maintains the current day's plan on the client and allows the user to mark individual activities as completed.

The interface provides:

  • Visual feedback for completed activities
  • Real-time progress updates
  • Toast notifications
  • Responsive layouts for smaller screens
  • Simple icons and familiar terminology

The daily rhythm currently includes:

  • 🌅 Morning movement
  • 🥣 Breakfast
  • 💧 Hydration
  • 🍛 Lunch
  • 🧘 Evening stretching and strength
  • 🍽️ Dinner

I deliberately avoided introducing a new productivity system that the user has to learn.

The interface should feel almost self-explanatory.


🤖 Gemma Coach

One of the main parts of Sidekick is its Gemma-powered wellness coach.

The coach uses Gemma 3 4B, running locally through Ollama and exposed through the application's agent service.

When the user submits a note, the request follows this flow:

User
  ↓
Sidekick Dashboard
  ↓
/api/coach
  ↓
Gemma Agent Service
  ↓
Ollama
  ↓
Gemma 3 4B
  ↓
Personalized Response
Enter fullscreen mode Exit fullscreen mode

For example, a user might say:

"I want a gentle knee-friendly exercise."

The coach can respond with a short, practical suggestion that fits the user's preference.

The prompt is intentionally designed to make responses:

  • Practical
  • Kind
  • Short
  • Familiar
  • Non-diagnostic
  • Focused on small, achievable actions

The coach is not designed to diagnose medical conditions or prescribe treatment. It is instructed to recommend consulting a qualified clinician for concerns involving pain, medication, or existing medical conditions.

A simplified request from the frontend looks like this:

const response = await fetch("/api/coach", {
  method: "POST",
  headers: {
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
    note: "Gentle knee-friendly exercise",
  }),
});
Enter fullscreen mode Exit fullscreen mode

🧠 Why I Built It This Way

There are plenty of wellness and productivity applications that try to do everything.

Sidekick intentionally doesn't.

For my dad, I wanted the experience to answer one simple question:

"What small things can I do today to take better care of myself?"

Instead of overwhelming the user with information, Sidekick breaks the day into manageable actions.

The focus is on consistency rather than perfection.

A completed walk, a glass of water, a healthy meal, or a few minutes of movement may seem small individually.

But repeated every day, those small actions can become a routine.


❤️ Built for a Person, Not Just a Use Case

The most important part of this project is that I didn't start with a generic product idea.

I started with a person I care about.

Building Sidekick made me think about how technology can be designed differently for people who don't necessarily want complicated apps.

The challenge wasn't just:

"How can I build a wellness application?"

It was:

"How can I build something my dad would actually want to use?"

That changed many of my design decisions.


🚀 What's Next?

There are several things I would like to explore next:

  • Better personalization based on long-term preferences
  • More meal options
  • Voice interaction for easier accessibility
  • Family/caregiver support
  • More personalized activity recommendations
  • Better progress insights without making the interface overwhelming
  • Additional Gemma-powered features

But I want to preserve the same principle as the project grows:

Technology should make healthy habits easier, not make life more complicated.


🙌 Final Thoughts

Sidekick is a small project, but it represents something I care about: building technology around people instead of forcing people to adapt to technology.

I built it for my dad, but the same idea could help anyone who wants a little structure, encouragement, and companionship while building healthier daily routines.

Small actions. Gentle guidance. One day at a time.


🔗 Project Links

🎥 Watch the Demo

💻 GitHub Repository

Top comments (0)