Interactive demo · synthetic dataEvery record on this page is fabricated.
DENAVUM
A private, single-user app whose security boundary is the database, explained here rather than simulated.
The production code behind this demo is my own work — architecture, directing Claude Code, row-level security on every table, deployment.
What is real, and what is simulated
Runs in your browser
- The recurrence engine — occursOn, occurrencesBetween, describeRecurrence and the date-only arithmetic underneath them — copied from the recurrence and date modules of DENAVUM’s first version with no logic changed
- One validation schema object, called by the browser panel and the server-action panel on this page. Not two copies that agree: the same exported object
The policy SQL is quoted verbatim from the first version’s own migration file. 40 tests assert the ported recurrence and validation behaviour, and assert that nothing in this page’s dataset names an employer or customer, carries a credential, an email address or an identifier of the live app, or repeats the retired claim that the migrations never ran.
Simulated
- Nothing about row-level security. There is no mock policy layer, no second user, and no row set that changes — deliberately. That widget is the lie this page exists to refuse
- The policy SQL is quoted from the first version’s migration files, not executed here. Those migrations had run against its live database before it was retired on 30 Sep 2026; the date they ran was not recorded
- The validation chain is a plain-TypeScript port of the first version’s Zod 4 field builders — same normalisation order, same refinements, same messages. This portfolio does not depend on Zod, and the page does not pretend the library call is literally the same one
- No database, no network, no account. Nothing on this page reads or writes anything anywhere, and no figure, screen or record on it comes from the live app