BUILDOS

Android · Offline · In development

Break any project down to the last step.

BuildOS is a project manager built as a tree. Each project splits into smaller pieces until every piece is one step you can finish, and progress rolls up on its own as those steps get done.

How it works

Eight levels deep, one tap at the bottom.

  1. PROJECTL1
  2. VERSIONL2
  3. UPDATEL3
  4. FEATUREL4
  5. PHASEL5
  6. CYCLEL6
  7. TASKL7
  8. STEPL8
  1. 01

    Break it down

    Every project starts with eight levels, from Project down to Step. Rename them, recolor them or add your own, separately for each project.

  2. 02

    Tick off steps

    Tap a step's ring to move it through to do, in progress and done. Mark it blocked when something is in the way.

  3. 03

    Watch it roll up

    Progress is calculated from the steps underneath. A blocked step flags its whole branch, and a branch reads done only when every step inside it is done.

Features

Built for projects that keep changing shape.

  • Your own levels

    Each project keeps its own level chain. Removing a level is blocked while anything still uses it.

  • Move whole branches

    Send a branch to a new parent, and every item in it takes the right level for its new spot.

  • Templates at any depth

    Save the shape of any branch and reuse it anywhere, even in a project with different levels.

  • Archive and trash

    Hide finished projects without deleting them. Deleted work stays restorable for 30 days.

  • Search everything

    Find any item by name, with its full path shown so you know where it lives.

  • Export and import

    Back up projects as JSON and bring them back in. Imports never overwrite what you already have.

  • Streaks and weekly stats

    See your run of active days and how many items you finish each week.

  • Drag to reorder

    Long-press any item and drag it into place.

Under the hood

No account, no server, no sync.

  • Everything lives on the phone, in a local SQLite database.
  • MVVM with a repository layer, so screens never touch storage. That made it possible to move from AsyncStorage to SQLite with a one-time migration and no data loss.
  • Schema changes go through guarded migrations, and a test reads the SQL and fails if a new column ships without one.
  • Moving a branch between projects with different level chains re-derives every item's level from its new position, so the tree stays consistent.
  • Stats come from an append-only event log, counted once per item per day, so ticking something on and off doesn't inflate the numbers.

Tests

160unit tests across tree logic, trash and stats

Stack

  • React Native 0.86
  • Expo SDK 57
  • TypeScript
  • Zustand
  • SQLite
  • Expo Router
  • Reanimated 4
  • Jest

Status

The core is done. Play Store is next.

Final branding, a production build and an internal testing track are the remaining steps before release.

Follow on GitHub