MVP ready
AuditFlow
Software that helps organizations run with less friction and clearer accountability. AuditFlow streamlines audit and compliance workflows end to end.
Overview
Compliance work, with the friction removed
I'm building around a simple idea: help organizations operate better — less friction between teams, clearer accountability. AuditFlow is the first product, aimed at the audit and compliance workflows that most teams still run on spreadsheets and email.
It covers recurring engagements across the frameworks organizations actually get audited against — access certification, SOX, ISO 27001, financial, internal and vendor audits — each with its own scope, owners, evidence, and findings tracked to closure. The MVP is ready and the backend is live-verified: engagement lifecycle, scope-item review, findings by severity, and an organization-scoped audit trail all run end to end.
Architecture
Engagements, scope, and an audit trail that doesn't lie
Every audit is an engagement — access certification, SOX, financial, ISO 27001, internal or vendor — scoped down into applications or controls under review. Each scope item carries its own evidence and can raise findings, tracked by severity through to closure. Everything runs org-scoped on a Go backend with Postgres underneath, so one organization's audit data is never reachable from another's.
The bet isn't the UI — it's that engagement state, scope, and evidence stay consistent by construction, so an audit read-out is never a scramble to reconstruct what happened.
Every control carries its own evidence and history — so an audit becomes a read-out instead of a fire drill.
Live UI preview
This is the real app, not a mockup
The frame above is the real AuditFlow build — same compiled CSS and component markup the product ships — loaded with fabricated engagement data. Demonstration only, not a connected environment.
Engineering challenges
What was hard, and how I approached it
Modelling compliance as a stateful graph
ProblemControls, evidence, owners and approvals form an interdependent graph — a control's state depends on its evidence, which depends on tasks and sign-offs. Representing that so it stays consistent as things move is the core modelling problem.
ApproachAn explicit state machine per control with typed transitions, so a control can only move between valid states and every change has a defined cause.
A trustworthy, immutable audit trail
ProblemIn a compliance tool the record is the product — it has to answer "who did what, when" without any doubt it was edited after the fact.
ApproachModel the trail as append-only events; current state is derived from that log rather than mutated in place, so history is reconstructable and tamper-evident.
Multi-tenant data isolation
ProblemEvery organization's audit data is sensitive; a single leak across tenants would be fatal to trust. Isolation has to be a property of the design, not a query you remember to add.
ApproachTenant scoping enforced at the data-access layer so every read and write is bound to an org by construction, not by convention.
Many frameworks, one control model
ProblemSOC 2, ISO 27001 and the rest overlap heavily but describe controls differently. Modelling each separately means collecting the same evidence many times.
ApproachA shared internal control schema that frameworks map onto, so a single piece of evidence can satisfy the equivalent control in several frameworks at once.