TRACE

BUILD. READ. EXPLORE. LIVE.

Don't optimize your life. Remember it.

A habit tracker for developers with busy minds. Log what you built, read, explored and lived in five seconds, with no streaks and no scores.

  • Flutter
  • SQLite on-device
  • No account
  • Optional sync on Neon
Quick Add: typing 'coded for 2 hours on PDS Express'
The Today screen: Build, Read, Explore and Life entries, presence, and one line about the day

For busy minds

By Friday, the week is a blur.

The midnight fix, the chapter on the train, the afternoon lost in docs. None of it shows up in a commit graph. TRACE keeps it.

What did you do?

Just type it. I'll figure it out.

coded for 2 hours on PDS Express
BUILD
PDS Express
2h

Parsed on your phone. No AI, no network.


Four categories

Everything a developer's day is made of.

BUILD

Code, side projects, work.

READ

Books, docs, papers.

EXPLORE

Research and rabbit holes.

LIFE

Walks, sleep, errands, people.


Features

A notebook, not a scoreboard.

Five-second capture

Type read 27 pages of Atomic Habits, get an entry.

A timeline you can read

Readable days, not a calendar grid.

Projects that add up

Time summed from your BUILD entries.

A reading shelf

Pages, progress and the thought you kept.

Patterns, not streaks

18 of 22 days, never a streak counter.

Yours, on your device

On-device SQLite. No account. Export or delete anytime.


Screens

Quiet by design.

Scroll →

Today screen
01TodayThe day at a glance.
Quick Add sheet with a typed sentence
02Quick AddA sentence in, an entry out.
The parsed entry: BUILD, PDS Express, 2h
03ConfirmEdit before saving.
Timeline of recent days
04TimelineYour past, by day.
Projects with tracked time
05ProjectsTime per project.
Reading detail for The Design of Everyday Things
06ReadingProgress and notes.
Insights: consistency and time spent
07InsightsPatterns, no scores.

Deliberately missing

No productivity theater.

Nothing designed to make you feel behind.

  • streaks
  • badges
  • confetti
  • leaderboards
  • an AI coach
  • productivity scores
  • motivational quotes
  • nagging notifications
  • social feeds
  • mandatory journaling

Self-host with Neon

Your record, your database.

TRACE works fully offline. To sync across devices, point it at your own Neon Postgres.

  • LOCAL-FIRSTSQLite on the device is the source of truth.
  • NEON AUTHManaged Better Auth, one account.
  • DATA APINo backend to deploy.
  • RLSRows scoped to auth.uid().
  • CONFLICTSLast write wins. Deletes propagate.
  1. Clone and run, local-only

    No config needed.

    $ git clone https://github.com/leighayanid/trace-.git
    $ cd trace-
    $ flutter pub get
    $ flutter run
  2. Create a Neon project and enable the Data API

    Neon Console → Data API → enable with Managed Better Auth.

  3. Apply the schema

    Run it in the Neon SQL Editor.

    -- paste into Neon → SQL Editor
    db/migrations/001_schema.sql
  4. Point the app at your project

    Fill in the two URLs from the Neon Console.

    $ cp config/neon.example.json config/neon.json
    {
      "NEON_AUTH_BASE_URL": "https://ep-XXX.neonauth.REGION.aws.neon.tech/neondb/auth",
      "NEON_DATA_API_URL":  "https://ep-XXX.apirest.REGION.aws.neon.tech/neondb/rest/v1",
      "NEON_AUTH_ORIGIN":   "http://localhost:3000"
    }
  5. Create your account and check it

    Answer y to create it, n to re-check later.

    $ bash tool/neon_check.sh
  6. Run with sync

    Syncs in the background once you sign in.

    $ flutter run --dart-define-from-file=config/neon.json
  7. Lock it down and ship

    Disables sign-ups, sets your trusted domain, builds the release.

    $ bash tool/ship.sh

Full setup in the README


“This is what I did with my time.”

BUILD. READ. EXPLORE. LIVE.