The brief
Private and informal lenders run on paper. A signed contract, a hand-written tally sheet of due dates, and a manager who tracks who is behind in their head. The contracts are legally sensitive and the math has to be exact, since principal, interest, penalties, and a reseller’s cut all have to reconcile to the centavo. ESign turns that whole operation into one system. Sign the contract, track every payment, and see the portfolio at a glance.
What it handles
Token-based e-signing. A lender drafts a loan agreement, then sends the borrower an unguessable signing link. The borrower fills in their details, uploads a photo ID, and signs on-screen with a finger. An optional co-maker signs through a separate link, waivable by the lender once the borrower has signed. Each contract moves through a clear lifecycle, from drafted to Signed to Finalized, and finalizing locks the record, composites the signature onto the contract PDF (DomPDF for the document, FPDI to stamp the signed form), and generates the signed copy. Straight from the dashboard a lender can copy a borrower’s signing link, finalize or reset a contract, and read payment progress (“0/2 paid | next Jul 13”) at a glance.

Loan & payment tracking. Every contract carries a schedule of due dates, grace periods, and flat-rate penalties. Payments are recorded against it, and overpayments are refused at the source. A portfolio analytics dashboard rolls the whole book up into four headline figures, namely finalized portfolio, cash collected, outstanding, and period net profit, over any date range, then breaks the detail into Overdue, Upcoming, and Payment Tracker tabs. Overdue balances are aged into 1 to 30, 31 to 60, 61 to 90, and 90+ day buckets, so a lender sees exactly where the risk sits and can record a payment inline.

Reseller commissions. Agents who refer borrowers earn a cut of the published interest, accrued per actual payment. Each reseller’s ledger tracks pending, paid, and revoked commission totals against their contract count, and an admin can adjust or revoke any entry with a logged reason. Penalties stay lender-only, so they never inflate a commission.

Per-tenant users & three languages. Each instance has its own superadmin and member roles, and the entire interface, including the public signing pages, switches live between English, Tagalog, and Cebuano. The loan PDF stays English, as a legal document should.
How it’s built
A Laravel 11 / PHP 8.2 app on PostgreSQL, server-rendered with Tailwind and Alpine, signatures captured client-side and composited server-side. Two things stand out for software that handles other people’s money.
True white-label multi-tenancy. The tenant is resolved from the request host, and a middleware swaps the database connection and file storage before the session even starts, so each branded lender runs on its own isolated PostgreSQL database, with its own users, PDFs, and signatures. Adding a client is a config entry and a deploy, not a code fork. The repo ships runbooks for exactly that.
Money that can’t drift. Amounts are DECIMAL(15,2). Installments are rounded to centavos with the remainder absorbed by the final payment, so the schedule always sums to the contract total exactly. Idempotency tokens and row-level locks guard finalization and payment recording against double-submits and races, and overpayments are refused at the source.
Why it matters
ESign is a compact codebase carrying fintech-grade discipline, with isolated-database multi-tenancy, money correct to the centavo, and the kind of concurrency safeguards you only bother with when the numbers are real. And it is genuinely productized, one codebase serving multiple branded lending operators, each fully isolated, which is the hard part of turning working software into a product. That discipline, on something as unforgiving as a loan ledger, is the standard we hold for anything that touches money.