← Web Projects

MyLifeInARepo

May 2026 - June 2026

MyLifeInARepo screenshot

Project Overview

Role
Solo build
Timeline
May 2026 - June 2026
Stack
Next.jsTypeScriptMarkdownPersonal Finance
Status
Mostly done — occasional contributions

What I worked on

A personal life-tracking system built as a git repo of daily markdown files, parsed into structured data and rendered through a Next.js dashboard. On top of that sits a financial module — net worth, budgeting, and cash-flow forecasting — fed by a bank-statement import pipeline and a transaction-categorization engine modeled on how Monarch Money handles rule-based categorization.

The Challenge

The hard part was turning freeform daily markdown notes into reliable structured data — parsing something written to be human-readable into something a dashboard could trust, without forcing the writing into a rigid schema.

The process

  1. Daily markdown schema

    Settled the shape of a daily note — human-readable first, still parseable.

  2. Parser to structured data

    Turned freeform notes into reliable structured records the app could query.

  3. Next.js dashboard

    The surface that renders the parsed life data back as something legible.

  4. Financial module

    Net worth, budgeting, and cash-flow forecasting on top of the same data model.

  5. Bank-statement import

    A pipeline to pull real transactions in from statements.

  6. Categorization engine

    Rule-based transaction categorization modeled on Monarch Money.

MyLifeInARepo — image 1
MyLifeInARepo — image 2
MyLifeInARepo — screenshot
MyLifeInARepo — image 3
MyLifeInARepo — image 4

MyLifeInARepo started from a simple idea: keep the record of a life the way you'd keep a codebase. Every day is a markdown file, committed to a git repo — a plain-text log you can read on its own, with the full history that git gives you for free. The app parses those files into structured data and renders them through a Next.js dashboard.

The whole trick was turning freeform daily notes into structured data reliable enough to build on.

The interesting problem sat between those two forms. A daily note is written to be human-readable, not machine-readable, and the whole point was to keep it that way — so the parser had to pull reliable structured data out of freeform writing without turning the journal into a form. Get that wrong and every downstream view inherits the noise.

On top of the parsed data sits a financial module — net worth, budgeting, and cash-flow forecasting — fed by a bank-statement import pipeline and a rule-based categorization engine modeled on how Monarch Money handles it. It's mostly done now; I still contribute to it occasionally.

MyLifeInARepo — wide screenshot
MyLifeInARepo — banner

A life kept like a codebase — plain text, full history, and a dashboard on top.