CBCharlie Barmore
← All projects
Duovisory logo

Duovisory

One secure workspace where a financial advisor and a CPA work the same client household. Each owns their lane, both see one brief, and every message and change is attributed.

Pre-launch For financial advisors and CPAs who share a client household
Duovisory hero screenshot

About

Duovisory is a shared, secure workspace for the two professionals who most often work the same household and almost never share a system: the financial advisor and the CPA. Today they collaborate by email, PDF, and separate tools, and the advisor’s portfolio truth drifts from the CPA’s tax truth. Duovisory gives them one client file with two seats.

It is for advisor-and-CPA pairs, or the small pods that pair them, on a shared household.

  • A workspace and a pod. An admin creates the workspace, invites the advisor and the CPA by email, and assigns both to a household client with a role. The Clerk organization is the tenant boundary, verified on every request.
  • Two lanes. The advisor’s lane holds accounts and holdings snapshots. The CPA’s lane holds the tax-year posture, key figures, and a projection with federal and state balances due, with a stale-result guard on sign-off if the baseline changes underneath it.
  • One brief. A shared page that shows the household snapshot, who owns what, and what is stale, plus a “My plate” view of the handoffs waiting on each person across clients.
  • Messages and handoffs on the client, not in a global chat. Tasks carry an owner, a lane, a priority, and a due date.
  • A document vault on private object storage with virus scanning. Uploads fail closed unless validation, scanning, storage, metadata, and the audit record all succeed.

Status: pre-launch. Deployed to production at duovisory.com behind organization membership, and being hardened before the first advisor and CPA pair goes live. The advisor lane, CPA lane, projections, messages, handoffs, and vault are built and tested end to end on synthetic households. Real client documents wait on the vault’s production gates, and no firm outside mine is on it yet.

Where it fits. This is the one Ledger Labs product built for two professions at once. It shares no engine with LedgerClaw; its predecessor, a single-operator practice OS called Frame, was frozen once it became clear the durable need was narrower: a shared desk, two seats, domain lanes, one client file.

How I built it

Duovisory is a rebuild from a frozen predecessor, scoped down on purpose. Built solo with Claude Code, with a Tier 2 doc set from my own build kit.

  • Tenant boundary first. The active Clerk organization is the tenant. Duovisory verifies its ID and slug on every workspace and client access, reconciles the current member during the request so onboarding does not wait on a webhook, and archives access on organization deletion instead of cascading deletes into client records.
  • Attribution everywhere. Every mutation is written against a user id. The advisor cannot silently overwrite the CPA’s figures, and the reverse.
  • A vault that refuses. Private Cloudflare R2, a private ClamAV service, hash-verified downloads, and a runbook of production gates that must be complete before any real document is loaded.
  • Truth-keeping in the tax lane. Modeled figures are labeled as modeled, input gaps are shared across both engines, caveats ride along with review handoffs, and every projection action is rate limited.
  • An end-to-end regression that stands up its own database, seeds a synthetic household, runs the advisor-to-CPA workflow in Chromium, and drops the database afterward.

Stack

Next.jsReact 19TypeScriptBunClerk OrganizationsPrisma + PostgresRailwayCloudflare R2 + ClamAVPlaywright