Crafts

Docket

Procurement

A long, chained document workflow collapsed into one form.

  • React 19
  • TanStack
  • FastAPI
  • PostgreSQL
  • Typst
  • Tauri 2

(mocked demo)

A government procurement workflow ran on eleven linked forms, each one requiring a different subset of the same data typed by hand. One mistyped amount on the first form propagated through the rest. The whole stack came back if anything was off.

I built a wizard that takes the data once and produces the full set as signed PDFs.

Docket procurement wizard
The single form that produces all eleven downstream documents.

What it does

  • One form in, the full set out. The wizard collects everything in five steps. The system produces all eleven documents, signatories and tax math included.
  • The document chain is enforced. You can’t generate a downstream document before its prerequisites exist.
  • Signatories are resolved from a directory of officials, with term dates tracked so the right person is selected across fiscal boundaries.
  • Withholding tax on the disbursement form is a fixed formula. The system runs it and flags transactions priced below supplier cost.

Stack

LayerWhat
FrontendReact 19, Vite, TanStack Router/Query/Table/Virtual, Tailwind CSS 4, Base UI
BackendFastAPI, Pydantic v2, SQLAlchemy async
DatabasePostgreSQL
DocumentsTypst, background thread, 60s timeout
DesktopTauri 2 wrapping the same React app
Monorepopnpm, Orval-generated TypeScript client shared across web and desktop

The hard part was the manual. The code is bookkeeping.