Skip to content

Case study 01Governance, risk and compliance

TARI Ethics

Every concern heard.Every case on the record.

A secure whistleblower hotline, complaint intake and case management platform. It helps organisations take every ethics concern from first contact to closure, confidentially and on the record.

Client
Prachi Dutta, Thought Arbitrage Consulting (TARI)
Built by
CODA
Platform
Web, desktop and mobile
All project details
Client
Prachi Dutta, Thought Arbitrage Consulting (TARI)
Built by
CODA
Industry
Governance, risk and compliance · ethics and whistleblowing
Services
Product design, UX/UI, full-stack development, security engineering, data visualisation
Platform
Web, desktop and mobile

01Overview

One platform for the whole life of a concern.

TARI runs whistleblower hotlines and ethics case management for client organisations. CODA designed and built TARI Ethics, a single platform that brings the whole journey of a concern into one place.

  1. 01

    Complaint intake

    A phone hotline and a secure web link, branded for each client organisation.

  2. 02

    Confidential conversation

    Two-way communication with complainants, who can stay anonymous.

  3. 03

    Case investigation

    Assignment, evidence, internal notes and assessment reports in one case file.

  4. 04

    Compliance reporting

    A live analytics view that shows the caseload without exposing case content.

Complainants can stay anonymous Every action on a case is permanently recorded

02The challenge

Whistleblowing only works when people trust the channel.

Whistleblowing only works when people trust the channel. TARI needed a platform that could:

  • 01Let anyone raise a concern without creating an account, anonymously if they choose.
  • 02Let complainants follow up safely on their complaint, without revealing who they are.
  • 03Give compliance teams, investigators and client contacts exactly the access they need, and no more.
  • 04Keep a tamper-proof record of everything that happens on a case.
  • 05Serve many client organisations from one platform, each with its own branded intake link.
  • 06Feel trustworthy and calm rather than like generic software, and stay fast, even on slower connections.

03Our approach · one idea

“The Case Register.”

We designed the product around one idea. The platform looks and behaves like a well-kept official record: security paper, deep bottle-green ink and brass seals. Every case is a docket, every action a ledger entry, and nothing is ever quietly erased.

04The solution · Complaint intake

Raising a concern takes minutes, and no account.

  1. 1Two clear choicesFile a complaint or Track a complaint, side by side on one page.
  2. 2Privacy consent and a Pledge of IntegrityBefore filing, complainants accept a short pledge to make a good-faith, responsible disclosure.
  3. 3A guided complaint formCategory, department, incident date, description, people involved and evidence uploads.
  4. 4Anonymous or identifiedContact details are collected only if the complainant chooses to identify themselves.
  5. 5Tracking Code and PINIssued at submission, with a downloadable PDF, so complainants can come back to read replies and add evidence. No account or login needed.
  6. 6Branded intake linksEach client organisation gets its own link showing its logo.

The Tracking Code and PIN are the complainant's only key. They come back with them to read replies and add evidence, without ever giving a name or creating a login.

05The solution · Case management

Every case moves along one clear line.

Compliance teams see exactly where each case stands. Six stages, always in the same order, and every step written to the record.

  1. STAGE 1ReceivedA new complaint lands in the intake queue.
  2. STAGE 2AcknowledgedThe team confirms it and assigns an investigator.
  3. STAGE 3Information soughtFollow-up questions go to the complainant over secure correspondence.
  4. STAGE 4Under analysisThe investigation works through the evidence.
  5. STAGE 5PAR preparedA Preliminary Assessment Report is uploaded, with every version kept.
  6. STAGE 6ClosedThe case is completed, its full history intact.
  • Intake queue

    New complaints waiting to be acknowledged and assigned, filterable by source, category, department, severity and investigator.

  • Case file view

    Every case opens as a docket showing source, received date, severity, category, department and investigator.

  • Secure correspondence

    Two-way messaging with the complainant, with the option to keep staff-only entries hidden.

  • Internal notes and evidence

    Staff-only notes and files, never visible to complainants or client contacts.

  • Versioned assessment reports

    PAR uploads keep every earlier version. Nothing is overwritten.

  • Timeline and audit log

    A chronological record of every action that cannot be edited or deleted.

06The solution · Roles and access

Exactly the access each person needs, and no more.

Pick a role to see what it can, and cannot, see.

Can see

  • All client organisations and their intake links
  • Every case, across every organisation
  • Assignment of investigators and contacts
  • Closing a case

Never sees

  • An unrecorded action: everything they do is still written to the audit log

07The solution · Analytics and live updates

A live picture of the caseload, never its content.

Compliance leaders get the numbers that matter at a glance. Every chart has an accessible table view, and analytics show aggregates only, never case content.

  • Key figures
  • Received vs closed over time
  • Open cases by age
  • Reporting profile: anonymous share, channel and investigator coverage
  • Cases by status, severity, category and department
  • Status by organisation
Received vs closed over time
Open cases by age · reporting profile
Cases by status · severity
Cases by category · department
Cases by source · email intake
Status by organisation

Live updates

Case changes and new messages appear in real time for the right people, so teams always see the current state of a case.

08 · Security and privacy by design

Built so that trust is not a promise. It is the architecture.

  • Database-level access control

    Row-level security on every table, so each person can only reach the records their role allows. Even the public access key reads nothing.

  • Tamper-proof record

    The audit log is append-only. Case number, tracking code and organisation cannot be changed after creation.

  • Protected credentials

    Complainant PINs are stored only as secure hashes. Complainant sessions are signed and short-lived.

  • Safe evidence handling

    Size and file-count limits, an allowed list of file types checked against each file's actual contents, and private storage.

  • Abuse protection

    Rate limits on complainant sign-in and messaging.

  • Hardened web layer

    HTTPS-only session cookies, strict transport security and a content security policy.

09Design

Calm, official and fast on purpose.

Pale security-paper backgrounds, bottle-green sections, and brass accents used only for seals, status and focus.

  • Perforated docket sheets
  • Ledger-style tables
  • Status chips
  • A guilloche security-paper watermark
  • Motion only where it means something, like charts drawing in
  • Clear labels, visible focus, readable contrast and a table for every chart

10Performance and technology

Quick on every connection.

  • Fast page loads

    Pages load in tens of milliseconds in production.

  • Faster navigation

    Sign-in checks are verified on the server, without extra round trips to the authentication service.

  • Instant feedback

    A page frame appears immediately while data loads.

Frontend
Next.js (React)TypeScriptTailwind CSS
Backend
SupabasePostgreSQL with row-level securityEdge FunctionsStorageRealtime
Charts
bklit chart kitvisx
Hosting
Vercel

End of the line

Building something people need to trust?

© 2026 CODA · Citizen Of Digital Age. Screenshots show test data; personal details have been blurred.