DEV Community

Cover image for My Friend Didn’t Need Another Pomodoro Timer. He Needed Help Starting.
Vishal Goyal
Vishal Goyal

Posted on AI-assisted

My Friend Didn’t Need Another Pomodoro Timer. He Needed Help Starting.

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

What I Built

My friend has a very simple problem:

He wants to study.

Then he starts thinking about what to study, picks up his phone for "just a minute", opens YouTube or Instagram, loses the session, feels guilty, and tries again later.

So I built FocusLoop around one idea:

Starting is the hard part. Returning matters more than perfection.

FocusLoop is an AI study companion that turns a vague goal like:

"I need to study DBMS."

into one small, meaningful action that the student can actually do immediately.

Then it provides a focus session, a way to say "I'm stuck", and a recovery flow when they get distracted.

After testing the first version with my friend, he gave me a blunt piece of feedback:

"The timer runs in Chrome in the background and I can just do whatever I want."

He was right.

So I added accountability check-ins. FocusLoop cannot see what someone is doing outside the browser, and it doesn't pretend to. Instead, if the user has been away or hasn't interacted with FocusLoop for a while, it asks:

"Are you still studying?"

If they're back, they continue.

If they got distracted, FocusLoop helps them recover with one small next step.

The goal isn't to punish distraction.

It's to make returning easier.

Demo

Live Demo: https://focusloop-lekb.onrender.com

Try entering something vague like:

"I need to study calculus."

FocusLoop should turn it into a concrete first action.

Code

GitHub: https://github.com/CodeVishal-17/FocusLoop

The project is intentionally small: plain JavaScript, a lightweight Node server, deterministic session logic, and an AI adapter that keeps the model-specific code separate from the rest of the application.

How I Built It

Gemma is at the core of FocusLoop's AI layer.

I tested several approaches before settling on the current setup.

  • Gemma 4 26B through the Gemini API powers Fast Mode.
  • Gemma 3 1B runs locally in the browser through WebGPU for Private Mode.
  • Ollama was used during development and local testing.

Gemma handles the parts that benefit from language understanding:

  • turning vague goals into a meaningful first study action
  • helping when the student is stuck
  • generating a recovery step after distraction

The rest is deliberately deterministic.

Timers, session state, check-ins, Recovery Score, streaks, navigation, and validation don't need an LLM.

I also evaluated the models instead of assuming the first model would be good enough.

A smaller Gemma model was tested for browser inference, while Gemma 4 26B was evaluated for hosted quality and latency. The final hosted tests produced valid structured output across the evaluation set, while the smaller local model provided a privacy-focused alternative.

Why Does Open Innovation Matter?

For FocusLoop, open innovation isn't just about replacing one API with another.

It gives me freedom over where the AI runs.

Fast Mode gives the friend a quick experience using Gemma through a hosted API.

Private Mode lets Gemma 3 1B run on the user's own device after the model is downloaded, without sending the AI requests to my server.

That means the product isn't fundamentally tied to one closed AI implementation.

It also made experimentation possible. I could test different Gemma models, compare quality and latency, and choose the model based on the actual task rather than simply using the biggest model available.

What I Learned

The biggest lesson wasn't technical.

My first version was too focused on building a good timer.

My friend immediately showed me that a timer isn't the problem.

A timer can measure time.

It can't make you study.

That changed the product.

Instead of trying to build a more complicated productivity dashboard, I focused on the actual loop:

Start → Focus → Get distracted → Recover → Return.

That's what FocusLoop is built around.

My Agent Session

I did not use DevRelay for this project.

Prize Categories

  • Best Use of Gemma ($200) — Gemma is the core AI layer powering FocusLoop's study actions, recovery flow, and private local mode.
  • Best Use of Render ($200) — The FocusLoop web application is publicly deployed on Render.

Built for a friend who doesn't need more motivation.

He just needs to start.

Top comments (0)