ABBIE ABANES
Sheet 01 / Ops Platform

Ongoing Project · Solo Build

Six spreadsheets.
One deadline.
Zero source of truth.

A small design-build studio was running client billing, milestone tracking, and approvals across disconnected Excel workbooks. I scoped it and built the MVP myself, end to end. This is one example of how I work with small businesses - sometimes the fix is a system like this, sometimes it's just tightening the process itself.

Client Onboarding & Ops FastAPI + PostgreSQL Built & shipped solo MVP · Pre-launch

01 · The Problem

The old system worked, until it didn't

Project costing, budget tracking, purchase orders, and scheduling each lived in their own tab of their own workbook - some hand-formatted, some color-coded by feel. Nothing talked to anything else.

Before - sheet 1 Original Excel Statement of Probable Project Cost workbook, with unit price, amount, actual, scope amount and profit columns
Statement of Probable Project Cost - manually re-keyed for every project, formulas re-verified by hand each time.
Before - sheet 2 Original Excel budget vs allowable tracker with color-coded red flags across every trade category
Budget vs. Allowable tracker - red-flagged by conditional formatting, but no one view showing why.

The risk wasn't the spreadsheets themselves - it was the gap between them. The number the client saw could drift from the number the internal team was tracking against, and nobody would notice until a bill didn't reconcile. Purchase requests, equipment tracking, and the Gantt schedule were three more tabs, each maintained separately, each one more place for a figure to go stale.

There was no single answer to "what's actually been billed, against what's actually been done" - just several spreadsheets that all believed they were right.

02 · How I Take On Work

Two ways I fix this

Not every broken process needs new software. I take two kinds of engagements: building a lightweight system when the manual process has genuinely been outgrown (like this one), or redesigning the workflow itself when the fix is really about who does what, when, and how information moves - no build required. I scope which one a business actually needs before proposing either.

03 · What I Built

One system, one number, every time

A relational data model behind a real app - internal cost tracking, milestone billing, and client sign-off all reading from the same source of truth. Core flows are working; polish and edge cases are still in progress.

F - 01

Project dashboard

Every active project in one place - status, overdue milestones, and pending client approvals surfaced at a glance instead of buried in a tab someone has to remember to check.

VertexHQ projects dashboard showing total projects, overdue milestones, and pending approvals
Client and location details blurred for confidentiality - the underlying data is real project data used to build and test the system.
F - 02

Milestone tracker

Internal view of every phase - target dates, completion %, and billing status per milestone - replacing a tab that had to be manually cross-checked against the costing sheet.

Internal milestones tracker with codes, status, target dates, and billing status
Milestones, schedule, scope mapping, billing, and daily log - one tracker, five tabs, no re-typing between them.
F - 03

Billing logic that understands the contract

Advance-funded milestones and completion-based milestones need to be flagged differently when billing runs ahead of progress - one means the payment is doing its job, the other means someone needs to look. I encoded that distinction directly into the system instead of leaving it to memory.

Billing screen explaining variance logic for advance-funded vs completion-based milestones, with a scope check table
The scope check cross-references linked cost line items against what's actually been billed, per milestone.
F - 04

Client-facing tracker

A simplified, read-only view for the client - contract value, billed-to-date, milestone progress, pending approvals, material delivery status, and progress photos - without exposing internal cost breakdowns or margin.

Client-facing milestone summary with progress bars, contract value, and billed to date
Built so the client can check status themselves instead of asking over chat, once it's in their hands - same instinct as designing a self-serve onboarding flow.
F - 05

E-signature with an audit trail

The signer reviews and confirms the Statement of Cost in-app - name, timestamp, and IP logged automatically, so approval doesn't live only in an email thread. Tested end-to-end; the client hasn't signed off through it yet.

Signed Statement of Cost with totals and an electronic signature confirmation line
Signer name and IP redacted here - this is a test signature while the flow gets finalized, not a client's.
F - 06

Reusable price book

Trade-categorized items - materials, labor, suppliers - pulled into any project instead of retyped from scratch, with a configurable default markup that auto-calculates client price from base cost.

Price book with categorized line items, base cost, client price, and configurable default markup
Supplier contact columns blurred - real vendor data pulled in while building out the price book.

04 · Title Block

Built plainly, on purpose

Boring, reliable technology - chosen for a small business that needs to maintain this after I hand it off, not to look impressive on a stack list.

BackendFastAPI (Python) + SQLModel ORM
DatabasePostgreSQL via Supabase in productionSQLite fallback for local development
FrontendServer-rendered HTML (Jinja2), no JS build stepDeliberately simple - fast to ship and easy for one person to maintain
HostingRender, deployed from a Git-backed workflow
Data migrationCustom Excel → relational DB import pipeline (openpyxl)Preserved spreadsheet business logic - conditional fee lines, per-section contingency, labor calculation modes
Client commsViber integration for notifications
ExportClient-ready .xlsx and print/PDF views on demand
Build processDirected and reviewed with Claude (Anthropic)I owned requirements, data modeling, migration, and QA; wrote no code by hand

05 · Impact

What changed

2
Real in-progress projects used to build and stress-test the system
100%
Migrated total matched the source workbook, verified line by line
6
Core features shipped - dashboard, tracker, billing logic, client view, e-sign, price book
MVP
Core flows working end to end - not yet handed to the client

06 · Why It Matters

What this shows about how I work

07 · Get In Touch

● MVP - in development

Let's talk about what's
broken in your process.

Whether that means a new system or just a better way of working, I'd rather start with what's actually broken than pitch you a build you don't need.

Abbie Abanes
work.abbiea@gmail.com
+63 995 524 3072
Mo—Fr 9am—6pm PHT
Abbie Abanes.