Isaac Lee

2026-05-16

Why I Built Focus Lens: An AI-Powered Time Tracker for Solo Builders Who Can't Afford to Lose Focus

product · building

Why I Built Focus Lens

I work alone. No manager checking in, no standup to keep me accountable. Just me, my Mac, and a brutal amount of willpower I don't always have.

And like most solo builders, I have a focus problem. Not a dramatic one — I'm not doom-scrolling for hours. But I'd drift. Open YouTube "for a second." Watch one short. Then five. Then fifteen minutes are gone and I'm not even sure how it happened.

So I did what any builder would do: I went looking for a tool.


The Time Tracker Trap

I tried them all. Toggl. RescueTime. DeskTime. They all promise the same thing — visibility into your time, so you can fix your habits.

And they do give you data. Lots of it. Charts, graphs, weekly reports. Looks great on the surface.

But here's where it falls apart: they track apps, not intent.

I'd spend 40 minutes on YouTube watching a breakdown of a product I was building — competitive research, genuinely useful. The tracker? "Entertainment. 40 minutes unproductive."

I'd have a tab open on a forum thread directly related to my current problem. The tracker saw a browser. It guessed. Wrong.

The frustration wasn't just inaccurate data. It was that I started not trusting my own reports. If the numbers are wrong, what's the point of looking at them?


The Cost Problem

On top of that — these tools aren't cheap. DeskTime's pro plan, RescueTime's full features — they're priced for teams. For a company paying per seat, $12–20/month per person is nothing. For a solo builder already watching every dollar, it stacks up fast.

I'm not paying enterprise prices to get data I don't trust.

So I was stuck. Inaccurate tools, expensive subscriptions, and no real alternative.


A Different Idea

The real problem wasn't tracking. It was understanding.

A logic-based algorithm looks at the app name and makes a rule. YouTube = distraction. But that's not how real work happens. Context matters. Intent matters. What your actual goal is — that matters.

LLMs understand context. So I thought: what if instead of a rules engine, I used an LLM to evaluate what I'm doing against what I'm actually trying to accomplish?

That's the core idea behind Focus Lens.

image.png


How Focus Lens Actually Works

It's simpler than it sounds.

Every 30 to 180 seconds — you choose the interval — Focus Lens takes a screenshot of your screen. It also captures a screenshot whenever you switch windows, with a 5-second debounce so it's not firing on every accidental click.

From each screenshot, it runs OCR to extract what's actually on your screen. Then it bundles that text together with your window title, app name, and a short history of your recent activity — and sends all of it to an LLM.

The LLM's job is one question: is what this person is doing right now relevant to their goal?

Not "is this YouTube" — but "is this specific content connected to what they said they were trying to accomplish." That's the difference.

You set your goal once. Something like "build and launch Focus Lens" or "write my blog post." That goal stays at the center of every evaluation. The dashboard shows your focus percentage — if you set a 4-hour focus target for the day and you've hit 2 hours of relevant work, you see 50%. No guessing, no vague feeling of whether you were productive. A number you can actually trust.

There's also a tray icon that gives you a live read without opening the full dashboard. A quick glance tells you where you stand.


What Does It Actually Cost to Run?

This was my biggest concern before building it. LLM calls add up fast if you're not careful.

So I measured. Running Focus Lens for a full day using Grok — xAI's model — costs me roughly $0.05 to $0.10. Over 30 days, that's around $1.50 to $3.00 total.

Is that zero? No. But it's less than a coffee. And it's a fraction of what any subscription tracker charges monthly — for data that's actually accurate.

I'm still actively working on reducing this further. There's room to be smarter about when to trigger evaluations and how much context to send. But even at current costs, I think the tradeoff is worth it for most people who take their focus seriously.


How I Built It (and Why It's Local)

I didn't want to build another SaaS. No server, no subscription, no sending your activity data to some cloud I control.

Focus Lens is a desktop app. Mac only for now. Everything runs locally on your machine.

For the LLM calls, it uses your own API key — OpenAI or Anthropic, your choice. You pay only for what you use, at cost. No markup. No middleman.

Your data stays yours. The only thing leaving your machine is the activity context sent to the LLM — same as if you were using ChatGPT yourself.


One More Thing: This Is for You, Not Your Employer

Focus Lens is free. Completely free, personal use.

And I want to be clear about what it's for: it's a tool you use on yourself, for yourself. This is not employee monitoring software. It's not something your company installs to watch what you're doing.

It's the opposite. It's you deciding you want to be more honest with yourself about where your time goes — and having a tool that's actually smart enough to help you do that.

No one sees your data. No dashboard for a manager. No reports sent anywhere. Just you and a clearer picture of your own day.


Who It's For

If you work in a team with a proper productivity budget, there are fine tools out there. This isn't for you.

Focus Lens is for the solo builder, the freelancer, the indie maker who works alone and needs to hold themselves accountable — without paying SaaS prices or trusting a rules engine that doesn't understand what they actually do.

I built it because I needed it. I'm shipping it because I think others do too.

2024-06-02

Shipping quietly, learning loudly

reflection · iteration

Small releases beat big announcements when you're still mapping the problem space.

Principles I'm leaning on

  1. Instrument the boring paths first — auth, uploads, and publishing should fail loudly.
  2. Keep UI surfaces honest — if an action triggers a GitHub commit, say so.
  3. Prefer progressive enhancement — scrolling should reveal depth without hiding archives.

Thanks for reading — more notes soon.

You’ve reached the end.