



The decisions that made it work
Every answer points to a page
Questionnaire answers and Ask AI replies come back with citation markers. I parse them into chips naming the file and page, like ISO_9001_Certificate.pdf, page 1, that open the source PDF through a short-lived signed link, so any claim can be checked before it goes into a bid.
Long jobs you can trust
Reading a tender, answering a questionnaire and generating a bid take minutes. Their progress streams over SSE into a task tracker. Where the backend sends no percentage, the bar says Working rather than faking a number, and it never shows done before the job is.
A co-writer inside the editor
Drafts open in a Plate.js editor with an AI panel beside it. The agent streams its reasoning, keeps separate chat sessions, and sends edits as proposals. When a task finishes, the editor is replaced with the server's version so the two never drift.
Redesigned in code
I wrote the design brief, then rebuilt every screen to it in one pass: one clay accent on warm paper, a quiet icon rail, a calmer agent UI, from the bid desk to the auth pages, without changing how anything behaves.
The AI suggests, the writer approves
The agent never writes straight into the document. Each change arrives as a proposal the writer can apply or reject, one by one or all at once, and only then does the document change. In a bid, that control is the product.
4 stages
brief, compliance, draft, submit
Page-level
citations on AI answers
38K+
lines of frontend shipped
Every screen
redesigned in code
