VendorCert — Two-Sided Vendor Compliance
A two-sided vendor-compliance prototype. Buyer side: 18 seeded vendors across COI, W-9, SOC2, MSA, HIPAA, PCI, bank-verify, safety packets. Vendor side: 5 customers, request queue, gap list. Buyer view sorts blocked vendors first.
What it is
Vendor onboarding usually has two sides asking for the same thing from each other: a buyer chasing missing docs, and a vendor chasing the same form across 12 different customer portals. VendorCert prototypes both sides in one tool.
What’s in it
Buyer view — 18 seeded vendors across 7 categories (field services, logistics, SaaS, construction, staffing, healthcare, facilities). Each vendor has a Tier (A/B/C) and a doc packet: W-9, COI, SOC2 Type II, signed MSA, bank verification, safety packet, HIPAA BAA, PCI DSS attestation. Required vs optional is policy-driven per tier. Status pills: approved, pending, blocked — sorted blocked first so the procurement bottleneck is always at the top.
Vendor detail panel — every doc as a card: issued / expires / status. Missing required docs show a “Request from vendor” button that simulates the outbound request and flips the doc to “issued today.”
Vendor view — you are Halcyon Software Group. 5 customers have requested docs. Each customer shows progress (X of Y provided), missing docs are listed with a Submit button. Submission mutates state. The vendor side is the mirror of the buyer side — same schema, different POV.
Why two-sided
This is the actual shape of vendor compliance in the wild — a peer-to-peer mesh where every buyer is also someone’s vendor and every vendor is also someone’s buyer. The schema has to be the same on both sides; only the verbs change (request vs submit). Tools that model only one side end up with a parallel dataset on each side that never reconciles. VendorCert is the prototype for the unified shape.
How it ships
Single HTML file, ~32KB. Zero dependencies. The doc catalog, status math, side-switching, and seeded buyer + vendor datasets are 380 lines of vanilla JavaScript. Mutations are in-page, no server.