Skip to content

Try it live

Two first-party host applications built on Affiant run in public: Meridian, an aircraft-maintenance desk, and HR Portal, a small HR department. Each has an AI agent in the sidebar. Everything either agent proposes to write arrives as an Evidence Card and waits for a human. That moment is what the demos exist to show — and because the two apps sit on different backends and different docket stores, together they show that the moment depends on neither.

Both apps say so in their header bar: they are demo apps built to show Affiant at work, not products.

  • Sign-in. Each demo sits behind a one-time code. Enter any email address, paste the code it sends you, and you are in for 24 hours. There is no password and no account to create.
  • Five messages a day, per person, per demo. The sixth is refused until 00:00 UTC. Spend them on the prompts below.
  • Shared, synthetic data. Every visitor works on the same seeded data, and it is rebuilt every night at 00:00 UTC — chat history and any cards you left pending go with it. Treat it as a shared whiteboard: don’t type anything real into it.
  • It may need a moment. After a quiet spell the first visit takes a few seconds to wake.
  • Seats are finite. At most fifty people can be signed in at once, across both demos together. If sign-in fails, try again later.
  • Say what you think. Every reply has a thumbs-up and thumbs-down; the comments reach the maintainers.

Meridian is an aircraft-maintenance application — a fleet of ten aircraft, their work orders, and a parts inventory — at meridian.affiant.dev. Ask its agent to raise a work order and the proposal comes back as a card.

Meridian’s chat panel showing an Evidence Card for a new AOG work order, each field carrying a provenance badge, with Approve and Reject waiting for a human.

Say What happens What it shows
Show me all AOG aircraft The agent calls a read tool and answers from the fleet. A read tool returning a dual-audience result.
What work orders are overdue? Another read, filtered by due date. Same contract, different tool.
Create an AOG work order for the left engine on A7-BCA The agent drafts the work order and an Evidence Card appears. Nothing is written yet. The Docket and Evidence Cards, the Review Gate, and Rule 3 — write tools never write.
(on the card) change a field, then Approve The write executes with your amendment on the record. A reviewer’s correction becomes part of the affidavit.
Guide me through creating a work order The app navigates to the form and walks you through it field by field. Rule 6: the agent guides the UI through a registry, never by inspecting the DOM.
Is part PN-CFM56-OIL-001 available? A stock check. A read tool against inventory.

HR Portal is a small HR department — an employee directory, leave requests, expense reports, and an approvals inbox — at hrportal.affiant.dev. Its agent works on one employee at a time: find them first, then ask for a change on their behalf.

HR Portal’s chat panel showing an Evidence Card for a new expense report, each field carrying a provenance badge, with Approve and Reject waiting for a human.

Say What happens What it shows
Find employee Priya Nair The agent searches the directory and remembers who “her” means for the rest of the conversation. A read tool. For leave and profile changes the host goes further: a write with no search before it is sent back to search first, so the agent does not guess an identifier.
Submit an expense report of 120 dollars for a client lunch for her The agent drafts the report and an Evidence Card appears. Nothing is written yet. The same Docket and Review Gate on a different backend.
(on the card) change a field, then Approve The write executes with your amendment on the record, tagged UserStated. The reviewer’s word outranks the model’s — Rule 7, append-only provenance.
Request 3 days of annual leave for her starting next Monday Another Evidence Card: this leave request wants a reviewer’s confirmation. Affiant.Policies deciding what a filed write needs before a reviewer ever sees it.
Request 1 day of sick leave for her tomorrow No card. A standing order approves it on the spot and it appears under Leave. A policy that pre-approves one class of write — a day of sick leave — so the routine case skips the queue.
Update her email to [email protected] An Evidence Card for a one-field change. The same gate on the smallest write.

The card is an Evidence Card: the rendering of an Affidavit, one row per field the agent proposes to write. Each row carries a badge naming where its value came from. Both apps spell the provenance ladder out in the same plain words:

Badge ProvenanceSource Meaning
You said this UserStated The user said it, in so many words.
Looked up External Read from a system of record.
Calculated Computed Derived deterministically from trusted inputs.
From your conversation Conversation Drawn from earlier in the dialogue.
AI suggested Inferred The model’s best guess. Plausible, not sworn.
System default Default A fallback value no one supplied.
Not derived — please verify Empty No provenance. Must be resolved before it counts.

Approve and Reject are the Review Gate from the reviewer’s side. While a required field is still Not derived, Approve is held — the framework flags, the host decides. Change a field before approving and the amendment is recorded as UserStated — the reviewer’s word outranks the model’s.

Meridian’s guided walkthrough is Rule 6 in the open: the agent knows which form fields exist because the UI registered them, not because it read the page.

Both apps are .NET 10 and React, talking over SignalR, with Gemini 2.5 Flash as the model, hosted on Cloudflare. Their tools are ordinary C# classes discovered by reflection — the same shape the quickstart builds. Where they differ is the point:

Meridian HR Portal
Backend Microsoft Agent Framework, through Affiant.AgentFramework IChatClient directly, through Affiant.Extensions.AI
Docket store Affiant.Docket, in memory Affiant.Docket persisted by Affiant.EntityFramework (SQLite)
Packages in play Affiant.Core, Affiant.AgentFramework, Affiant.Docket, Affiant.Policies, Affiant.Transport.SignalR Affiant.Core, Affiant.Extensions.AI, Affiant.Docket, Affiant.EntityFramework, Affiant.Policies, Affiant.Transport.SignalR

Two backends, two stores, one Evidence Card — see Interception Backends.

  • The third backend. Affiant also runs on Semantic Kernel — see Interception Backends.
  • Nothing about hosted tools. Both apps’ tools are invoked locally, which is exactly the seam Affiant hooks. Tools that execute on a remote runtime are outside it, and the framework does not claim otherwise.
  • Not a security claim. The demos show provenance and review; they do not show — and Affiant does not promise — that a model cannot be wrong.
  • Not the source. Meridian and HR Portal are private first-party applications. Everything they run on is Apache-2.0 at github.com/Sakwala/affiant.