Brett Owers
← All Projects

StartNote

Production

April 1, 2025

The second app I deployed — the interval timer + note-taking concept that the 2019 Note Timer never finished. StartNote combines timers with structured notes, allows table inserts within notes, and can diff tables with the same name to quickly see progress over time. The idea from 2019 finally shipped in 2025.

Purpose

StartNote is the shipped version of the Note Timer concept from 2019 — interval timers fused with note-taking. But this version added a feature the original never considered: table inserts within notes, and the ability to diff tables with matching names across entries to visualize progress. Take notes during your workout. Insert a table of your lifts. Next session, insert the same table. Diff them. See your progress.

Stack

SwiftSwiftUIiOSCoreDataApp Store

What I Learned

  • The table diff feature is the killer insight that the 2019 spec missed entirely. A note with a table named "Bench Press" containing sets, reps, and weight — recorded weekly — becomes a progress tracker when you diff the tables: last week 185×5, this week 195×5. The diff is trivial to compute (match table names, compare cell values, highlight changes) but the value is enormous. You are not just taking notes — you are building a personal database.
  • Table inserts in a note-taking app bridge the gap between freeform text (flexible, unstructured) and spreadsheets (structured, rigid). A note that says "Felt strong today, bench went up" with an embedded table of actual numbers gives you both the qualitative context and the quantitative data. Neither alone tells the full story.
  • Deploying the second app was dramatically easier than the first. The App Store workflow (screenshots, metadata, review submission) was familiar from Intervalition. The Swift/SwiftUI patterns were established. The CoreData schema was more confident. The second ship always takes half the time of the first because the process anxiety is gone.
  • This is the fourth attempt at the timer + notes concept: Intervolition (Flutter, 2018, unfinished), Timer (Flutter, 2019, unfinished), Note Timer (Flutter, 2019, scope-crept into oblivion), and StartNote (Swift, 2025, shipped). Six years from first attempt to shipped product. The table diff feature — which came out of actually using the previous versions and knowing what was missing — could not have been designed in 2019. It required the lived experience of taking notes during workouts for years to realize that the comparison is the value, not the notes themselves.

Key Insights

  • The table diff as a progress tracker is applicable far beyond fitness: compare meeting notes week over week (what changed?), compare project status tables sprint over sprint (what moved?), compare budget tables month over month (where did the money go?). Any domain where you track the same structured data repeatedly benefits from diffing. StartNote is a personal diff engine disguised as a note-taking app.
  • Four attempts over six years for a timer + notes app is the same persistence pattern as Intervalition (three attempts over five years). The common thread: the idea was always right. The timing and execution were what changed. The 2019 scope spec had 15 features. StartNote has 3 features (timer, notes, table diff). The reduction in scope is the maturity that made shipping possible.
  • The progression from "I want to build an interval timer" (2018) to "I want to build notes with timers" (2019) to "I want to build notes with timers and progress tracking" (2025) shows how ideas evolve through use. You cannot design the table diff feature from a blank page. You can only discover it by using the tool for years and noticing what you keep wanting. Usage generates requirements that imagination cannot.
#Swift#SwiftUI#iOS#note-taking#interval-timer#table-diff#progress-tracking#shipped#App-Store#persistence#fitness

This post was composed through a conversation between Brett Owers and Claude Code (Anthropic). The content reflects Brett's recollection of each project and the lessons drawn from it. Some details may be approximate or omitted — the purpose is to paint an honest picture of a software engineer's development over time, not to serve as a precise historical record.