BACK TO WORK
§03 / SELECTED WORK / MARGIN
PERSONAL PROJECT

Margin —
a thesis-driven investment journal

Most portfolio trackers tell you what you own. Margin asks why you own it — and keeps a record of how that thesis holds up over time.

§ FRONTEND / 01 IN DEVELOPMENT
FRONTEND IN DEVELOPMENT Screenshots will appear here once the client-side is ready.
/ ABOUT

The idea

Margin is a personal investment journal built around a simple belief: if you can't write down why you bought something, you probably shouldn't have. Since I work at a forex broker company I got interested about trading and investing very fast. With this project I am trying to connect both my interests in software and trading while mitigating mistakes and guesses.

Every position starts with a thesis — a short note explaining the bet, the timeframe, and the conditions under which you'd exit. The app then nags you, gently, to revisit it. You can edit your thesis whenever you want, but every revision is preserved. Six months later you can scroll back and see exactly what past-you was thinking — and decide whether present-you still agrees.

/ TECH

Why event sourcing

The product itself is a journal — a sequence of decisions over time — so the storage model mirrors that. Every action is an immutable event: ThesisOpened, PositionAdjusted, ThesisRevised, PositionClosed. Read models are projections rebuilt from the log, which means the timeline view is essentially free.

CQRS keeps the write side small and explicit (a handful of commands with hard validation) while the read side stays denormalized and fast. Overkill for a side project? Maybe. But the audit-log shape was the whole point.

/ HIGHLIGHTS

What's in it

  • Per-position thesis editor with full revision history
  • Scheduled review prompts — quarterly check-ins per thesis
  • Event-sourced backend, projections rebuilt on demand
  • Read-only timeline view: every decision, every revision, in order
  • Manual entry only — no broker integrations, no live prices
/ STATUS

Where it is now

Currently in private beta. The next milestone is a proper review-flow UI — the data model is there, the UX needs another pass.