← All case studies
Prototype / Tax workflow automation and desktop software2026

Philippine Tax Form Automation

Rebuilding Philippine tax-form preparation and submission as a safe-by-default Rust workflow spanning structured inputs, encrypted packages, queued filing, and receipt matching.

An independent, unofficial system built and maintained by Xavi Ablaza; not affiliated with, endorsed by, sponsored by, or certified by the Philippine Bureau of Internal Revenue.

Unofficial Philippine tax forms desktop dashboard showing dry-run status, profiles, queued jobs, and submission summaries

An independent, unofficial desktop and CLI system turns Philippine tax filing from a manual, opaque process into a data-driven workflow with explicit validation, dry-run safeguards, durable records, and traceable confirmation.

The workflow problem

Tax filing software must do more than reproduce a form. It has to translate business data into exact form fields, create the expected submission artifact, protect taxpayer information, prevent accidental or duplicate filings, preserve an audit trail, and reconcile an eventual receipt. Each boundary carries financial and operational risk.

The project reframed that sequence as one explicit workflow instead of a collection of manual handoffs.

A data-driven form engine

The Rust core separates each form into metadata, human-readable field definitions, JSON-to-XML mappings, and an independently authored template. Structured input is validated before rendering; unresolved placeholders and missing required values fail visibly rather than producing a partial return.

The public community edition includes synthetic fixtures for six forms—1601C, 2000, 2550Q, 0619E, 1601EQ, and 1702Q—and verifies their generated output against deterministic fixtures. New forms can follow the same definition-and-mapping model without duplicating the submission pipeline.

From form data to a traceable filing

Packaging turns rendered form data into an encrypted payload and manifest containing the form version, filing period, destination filename, payload size, and SHA-256 fingerprints. The same core is exposed through a command-line application and a Tauri 2 desktop interface built with Leptos.

The desktop workflow joins taxpayer profiles, the tax-form library, validation, package preview, queueing, submission history, and receipts. Dry run is the default. Live transport requires explicit enablement and confirmation, while public source deliberately excludes production endpoints, credentials, taxpayer data, and proprietary BIR assets.

Designing for uncertain systems

A SQLite-backed job queue tracks attempts and schedules bounded retries for errors that are safe to retry. Durable submission records are written before network transport, and idempotency keys block automatic retries when a prior submission is running, awaiting a receipt, confirmed, or uncertain. This prevents a transient network result from silently becoming a duplicate filing.

Receipt automation completes the loop. The system parses confirmation messages, matches them to records by filename, form, and period, and updates the submission to confirmed. A packaged Himalaya sidecar can poll a controlled mailbox without coupling the core workflow to a hosted email service.

What the work demonstrates

Regulated workflow automation requires more than a new interface. It needs deterministic transformation, explicit safety gates, provenance boundaries, local-first state, conservative retry semantics, and evidence at every transition. The result is an open implementation that makes the filing lifecycle inspectable without claiming official status or redistributing official software.

What could your organization move faster on?

Tell us about the product, workflow, or software initiative that needs to move from idea to production.