Inspiration

After Hours began with one question: can software protect private human space without taking authority away from the people inside it?

Most relationship and social applications optimize engagement. After Hours optimizes consent, shared boundaries, and human sovereignty.

What it does

After Hours creates a private room for two people.

Each participant keeps an independent identity and authority state. The room computes only what both people permit:

  • One No blocks.
  • The lowest shared Yes governs.
  • Readiness must be mutual.
  • Guest access requires both approvals.
  • AI assistance remains room-bound and subordinate to human authority.

The prototype includes synchronized private chat, consent-governed themes, mutual readiness, guided interaction, dual-approval Guest Wing access, room-specific Butler guidance, private media notes, and native room re-entry.

How we built it

After Hours is a TypeScript web application deployed on Netlify with Supabase-backed room, participant, consent, message, and media state.

OpenAI Codex was used as an engineering and QA counterpart. During live validation, two independent Codex browser sessions entered the same room as separate participants and exercised the application’s authority rules without gaining authority over the humans or deployment.

What we learned

Consent should not be decorative text. It can be executable application state.

Multi-agent QA also exposed an important distinction between product behavior and external agent-orchestration timing. The application’s own synchronized evidence allowed us to separate those failure classes honestly.

Challenges

The hardest problems were preserving two independent participant identities, enforcing mutual authority across synchronized state, protecting private access material, handling room re-entry, and preventing automated QA agents from manufacturing a false green result.

After Hours is submitted as a controlled competition prototype.

Consent is executable. Privacy is structural. Human authority remains sovereign.

Built With

Share this project:

Updates