Victor Spuza

Work

Steplight

Student planning and focus app

I designed and built Steplight on my own. It turns a day’s obligations into small steps you can start, times the work, and closes the day with an honest result.

  • Product & interface
  • Software & AI builds

The work, annotated

The Checklist over the day’s mountain. Real build, synthetic data.

  1. Write a line, press Enter, and the next row is ready. The Checklist borrows the habit of a notes-app list.
  2. The route on the mountain is the same plan: each node is a section, and the lit one is the next step.
  3. Assignments carried over from earlier days stay under Today, marked with the day they came from.
Role
Designer & builder (solo)
Timeframe
Oct 2026 – Present
Team
Solo, designed and built with AI-assisted tools
Tools / stack
React, TypeScript, Vite, IndexedDB (Dexie), Playwright
Status
Working beta, local-first · Steplight is a working name

The problem

Students juggling reading, practice, writing and projects need help starting and keeping going, not another tool that does the work for them.

Steplight is local-first: plans, notes and times stay in the browser on one device, with no account. It doesn't write, answer or summarise anything, and it never treats activity as proof of learning. A timer records time, not attention.

My role

I designed and built Steplight on my own, using AI-assisted tools. I chose the visual direction, a mountain you climb through the day, and made the design calls along the way: where the timer sits, how the checklist behaves, and what closing the day should feel like. I wrote each decision down in my own words as I made it. AI coding agents wrote the code on branches I directed and reviewed. The one thing that never moved was the starting point: the day begins with a checklist.

Decisions & what changed

  1. A checklist that behaves like a notes app

    I wanted the daily list to work like a notes app: type a line, press Enter, and the next row is ready, with no empty records. Items tick off or move to tomorrow, and anything unfinished comes back under Today, marked with the day it came from, without reopening that day. My first prototype made you paste lines into a box and convert them; now you write straight into the list.

    Evidence · Design notes, 29 Oct 2026 · the app’s own description, “A Notes-style daily list” · checklist end-to-end test

    Inspect the rejected option

    My first prototype (12 Oct) put a separate paste-and-convert step between typing and the list; the final Checklist adds items inline.

    Earlier prototype (12 Oct 2026, then named Headspace): an 'Add tasks from your notes' box where each pasted line becomes a task. (enlarge)
    Earlier · 12 Oct prototype: paste lines, then convert (under its former name)
    My own notes-app checklist in a dark theme: ticked items Pretest 6, Discussion post replies and Field notes, a heading October 10th, and two unticked items, Chp 1-6 studying (3 hours) and Self-monitoring reflection paper (hand written) (45). (open the full screen)
    Before Steplight: the notes-app checklist I and other students already used. These are my own notes from October 2026.
    Steplight's Checklist in the dark theme at dusk: the painted mountain with its route, the lit Step 2 node and the setting sun beside the Checklist panel, which lists History essay, Psychology reading and Economics problem set marked Today, two typed tasks, and an empty row that reads Add a task, then press Enter. Synthetic data. (open the full screen)
    I wanted to keep the simplicity of a notes-app checklist and give it a setting I'd look forward to opening.
  2. Focus means one centred timer and nothing else asking for attention

    During a focus session the only thing asking for attention should be the timer. I centred it under the navigation, left Complete step alone beneath the controls, and took the explanatory text off the page: how the timer measures time belongs in the docs, not in front of someone trying to work. The scenery holds still apart from a slow drift, with no shooting stars and no moving route. A soft arc fills around the dial as a work block runs.

    Evidence · Design notes, 27 and 29 Oct 2026

    Inspect the rejected option

    A timer placed to the side, removed on 29 Oct, and explanations that stayed under the controls.

    Earlier prototype (11 Oct 2026, then named Headspace OS): First Step page with the timer in a side panel, a breadcrumb, estimate and weight, and explanatory footnotes. (enlarge)
    Earlier · 11 Oct prototype: the timer in a side panel with notes underneath (under its former name)
    The timer during a session: one centred panel over the dusk scenery with the step name, an elapsed dial at 0:04, Pause, End session, Complete step on its own line, and the nearby steps below. Synthetic data. (open the full screen)
    Close-up · the centred timer while a session runs (synthetic data)
  3. Closing the day gets its own payoff

    I gave the app exactly one moment with a reveal: closing the day. The view moves in, fog clears to a viewpoint set by the day’s rating (trail, ascent or summit), the stars you earned land, and only then does the panel open into the full result. My note on it was simple: start compact on the scenery, show the real earned rating with the existing animation, and expand only once the reveal has finished. Reaching the top of a single timer stays quiet, so the celebration belongs to finishing the day. The design notes are explicit that the stars are a product hypothesis, not a demonstrated motivational effect.

    Evidence · Design notes, 27–28 Oct 2026 · close-day end-to-end test · behavioural design doc

    Inspect the rejected option

    A “Hide medals” control on the Day-closed panel. Since 28 Oct the medals always show, with a compact/expand toggle instead.

    Close day in real time (9.6 s): fog clears to the summit, three earned stars land, the panel expands. Synthetic day.

What was built

  • Today: the day's commitments on a painted mountain, each section a node on the route.
  • Checklist: inline writing, Move to tomorrow, and unfinished items carried forward.
  • Timer: Work block or Stopwatch; End session stays separate from Complete step; timers survive reloads.
  • Close day: an explainable 1–3 star result with commitments, recorded time and learning notes; Reopen today.
  • Local-first storage with export/import, light and dark themes, and four time-of-day sceneries.

Something real to look at

Outcomes

Status
Working beta, local-first, no account
Verified · source noted · The app’s README
User outcomes
Not measured yet
Not yet verified · The star ratings and the close-day payoff are written up in the docs as hypotheses to test