Back to work

DuitTools

A suite of business tools at duittools.com: invoice generation with PDF export, payroll management with Malaysian statutory calculations (EPF, SOCSO, PCB), and document processing using LLMs and OCR.

Role
Solo Developer
Dates
2025
DuitTools business operations platform

Context

Malaysian SMEs rely on spreadsheets for invoicing and payroll, which leads to calculation errors and repetitive manual data entry.

My contribution

Designed and implemented the product across the Next.js interface, Supabase data layer, and FastAPI document-processing service.

What I built

Built a platform combining an invoice generator with PDF export, a payroll calculator with Malaysian statutory compliance, and a document processing pipeline using OCR and LLMs to extract structured data from invoices.

Implementation

Next.js frontend with Supabase for authentication and database. FastAPI backend for document processing — PyTesseract for OCR feeding into LLM structured outputs. Payroll engine applies Malaysian statutory rates server-side. PDF generation via client-side libraries.

Implementation decisions

  • Separated the Next.js and Supabase application layer from FastAPI document processing.
  • Made statutory rates configurable to accommodate tax-bracket changes.
  • Preprocessed low-quality scans before OCR.

Key features

  • Invoice generator with templates, client profiles, and PDF export
  • Payroll system with EPF, SOCSO, EIS, and PCB tax calculations
  • Document upload and processing with structured data extraction
  • Human review interface for verifying extracted data

Tech stack

  • Next.js
  • TypeScript
  • Python
  • FastAPI
  • PostgreSQL
  • Supabase
  • TailwindCSS

Challenges

  • Tax bracket changes required a configurable rates engine
  • API rate limits required queue-based batching for document processing
  • Handling poor-quality document scans required image preprocessing

What I learned

  • Compliance rules change yearly — build for configurability
  • LLM outputs need validation — a review step builds user trust
  • Multi-tenant data isolation is easier to design upfront than retrofit

Future improvements

  • E-invoicing compliance with LHDN MyInvois
  • Bank integration for salary disbursement
  • Mobile-friendly employee access