WorthLedger

Type
Product
Built with
Python
Source
Private repository
Live at
www.worthledger.com
www.worthledger.com
WorthLedger screenshot

Overview

An asset tracking and performance platform for physical assets — machinery, vehicles, property, equipment — covering acquisition cost, running costs, depreciation and return, in place of spreadsheet accounting.

Core features

Multi-asset registry spanning bank accounts, real estate, equipment and investments; transaction capture with automated collection and verification; depreciation scheduling; break-even and recovery-progress analysis (total recovered, net cashflow, percentage to break-even); full multi-currency support; timeline and lifecycle views per asset; configurable alerts; imports and exports; tax-ready accountant reports; workspace-scoped collaboration; subscription billing.

Architecture

Async-first FastAPI + SQLAlchemy over PostgreSQL, organised around calculation engines separated from routing: fx (rate resolution), asset_finance and calculations (depreciation, break-even, aggregates), asset_rules, lifecycle, timeline and alerts. Background jobs run on Taskiq with Redis, scheduled work on an async APScheduler, and files on S3-compatible storage. The Next.js frontend pairs TanStack Query for server state with Recharts for reporting.

Two invariants drive the data model. Every monetary record stores full FX provenance — native amount, base amount, currency, rate, rate mode (live/locked/manual) and source — so historical figures never drift when rates move. All timestamps are stored in UTC through shared helpers while preserving workspace-local meaning for user-entered dates, keeping depreciation and reporting periods correct.

Frameworks, tools & libraries

The stack behind it

Frameworks

  • FastAPI
  • Next.js
  • React
  • Tailwind CSS

Tools & infrastructure

  • PostgreSQL
  • Redis
  • Taskiq
  • APScheduler
  • Stripe
  • S3-compatible storage
  • Docker

Libraries

  • SQLAlchemy
  • Alembic
  • Pydantic
  • TanStack Query
  • TanStack Table
  • Recharts
  • shadcn/ui
  • Zustand
  • openpyxl + ReportLab (exports)

Skills applied

What I brought to it

  1. 01

    Financial systems engineering: depreciation schedules, cost basis, capital tracking

  2. 02

    Multi-currency accounting

    FX rate resolution and storage whenever an asset's native currency differs from the workspace base currency

  3. 03

    Timezone-correct accounting

    preserving workspace-local meaning for user-entered dates while storing exact UTC timestamps

  4. 04

    Async-first backend architecture with short-lived DB sessions (fetch → compute → write) and non-blocking event loops

  5. 05

    Scheduled/background job processing (Taskiq, APScheduler)

  6. 06

    Tax reporting and audit-ready calculation design

  7. 07

    Data visualisation (Recharts) and 3D graphics (Three.js)

  8. 08

    Object storage integration (boto3/S3), payments (Stripe)

  9. 09

    Containerised deployment (Docker Compose / Dokploy)

Languages

What it's written in

  • Python~130 files

    FastAPI async backend

  • TypeScript / TSX~325 files

    Next.js frontend

  • SQL

    schema and migrations

  • CSS

    styling

Screens

More screens

Next project

AnalyzeAlpha

Financial analysis platform: filings, fundamentals, charts, real-time data