Focus Timer

2025

My Deliverables

Working web app

Tools

Figma, Lovable

Introduction

I've used Lovable and Claude several times to speed up front-end development. Usually for static components or websites with minimal logic, but this time I wanted to test how Lovable would handle a more complex application: a timer to help me log focus work hours.

The goal was creating a timer that measures daily focus work hours. It's a common approach many people use to maximize their output by tracking concentrated work periods.

Since this was for personal use, research and ideation were streamlined. I simply listed what I liked and didn't like about existing timers and what would fit my needs.

Design

When designing for no-code tools, responsive auto layout, components and proper layer naming are best practices.

Following this approach, I prepared the design with responsive auto layouts and components within a small design system to ensure clean implementation.

Timer design mockup
Timer design system components

My design with a simple component system

Implementation

Implementing the timer in Lovable via the Builder.ai plugin revealed constraints I hadn't encountered when creating static components with minimal logic.

The first prompt is crucial in any AI builder. Ideally, it should cover the entire application logic, with subsequent prompts fine-tuning what the AI misunderstood.

This becomes problematic when you want specific visuals and complex logic. Currently, the builder takes your design and uses an uneditable first prompt: "Create a pixel perfect UI for this design."

While this produces accurate visuals, all logic is missing. The AI guesses functionality, and adding logic later becomes difficult since the code structure is already established.

Through experimentation, I discovered a workaround: embedding a logic description paragraph directly in the design file. This way, Lovable treats it as instruction and implements more logic upfront.

Prompt embedded in design file

Prompt included in the design file

Another constraint: you can only export one Figma page, making multi-screen applications challenging. Components should solve this, but I couldn't generate design states that weren't already present in the original file.

Auto-layout presented similar issues. While excellent for Figma responsiveness, static groups sometimes worked better for code generation.

Final result

The final product closely matches my initial design and functions as expected. Development was faster than hand-coding, particularly the graphs, which would have required significant manual work. This makes AI tools valuable for complex components, even in larger projects. However, structural changes become nearly impossible once the AI generates the application, even when exporting to tools like Cursor. For rapid prototyping or specific components, it's excellent. For evolving applications, limitations become apparent.

Final timer application interface

Final product in Lovable