← Work
012025

Ledger Flow

Year

2025

Role

Full-stack engineer

Platform

Web · Client project

The problem

The client managed invoicing, payment status, and internal activity across a spreadsheet and email threads. Nothing was structured, nothing linked, and there was no single source of truth for who owed what.

The product
Ledger Flow / Operations dashboard
Revenue$48.2K
Invoices24
Overdue3
Nova Retail$4,200
Paid
Harbor Studio$1,860
Pending
Fieldwork Co$3,050
Overdue
Express APIPostgreSQLPrismaMongoDBDocker
My role

Designed the data model, built the Next.js client and the Express API, and structured the storage layer across two databases.

Engineering

architecture

Next.js frontend talking to a dedicated Express API, kept separate from the client so the same backend can later serve other integrations.

frontend

Server-rendered views for invoice lists and client detail pages, with client-side state for the editable billing forms.

backend

REST API in Express handling invoice creation, status transitions, and activity logging as two distinct concerns.

cloud

PostgreSQL via Prisma for billing records that need relational integrity; MongoDB for high-volume activity logs that don't. Both run in Docker for local parity with production.

The hard part

Billing records and activity logs have different consistency needs — invoices need transactional guarantees, logs don't. Splitting them across PostgreSQL and MongoDB meant the API had to own two different write paths without leaking that complexity into the frontend, which just sees one invoice object.

The result

The client replaced a spreadsheet-and-email workflow with a system that tracks every invoice's status automatically, and a single dashboard for what's paid, pending, and overdue.

Next project — Task Board →
Available for new projects

4+

Years exp.

8+

Projects shipped

<6h

Avg. reply time

Let's build something

Tell me about your project.

Share what you're building, your timeline, and the best way to reach you.