Move maintenance out of the critical path
Temporal rebuilds projections, removes stale indexes, expires runs, and reconciles delivery without moving authorization away from the online request.
An invitation to engineers
We are building a system that can understand two people without exposing either one, test whether a connection works in both directions, and stop when permission or evidence runs out. This page shows the architecture we have chosen, the workload we can bound, and the production proof we still need engineers to earn.
The questions that decide the system
These are not edge cases to solve later. They determine whether the system can be useful without becoming careless, invasive, or impossible to operate.
Claims and evidence
Our architecture answer
We do not build a lie detector.
We preserve who said what, when, for which purpose, from which source, with which confidence basis, and through which version lineage. Assertions, model proposals, bounded verifications, corrections, and contradictions remain different states. When a disputed fact matters, the system asks for the minimum clarification or stronger evidence it needs.
Bounded retrieval
Our architecture answer
Never compare everyone with everyone.
Offline, purpose-scoped projections divide the corpus by lane, role, geography, time, policy, and model version. Hybrid retrieval searches only compatible partitions and returns a bounded union. PostgreSQL then rechecks current consent, blocks, expiry, and hard constraints before reciprocal scoring reduces the set again.
LLM infrastructure
Our architecture answer
Put models inside a governed system.
NestJS services authorize each task. Mastra orchestrates approved model calls through typed AI SDK boundaries using privacy-minimized context plus versioned prompts and models. Schemas reject malformed output, Temporal owns durable retries and reconciliation, and PostgreSQL keeps canonical state. Langfuse is the approved target for privacy-minimized traces, evaluations, versions, latency, and cost evidence.
What we are building with
We chose familiar tools with clear jobs so the hard work stays visible. Some are already in use. Others are approved targets that still need to be integrated and proven.
In use
React
Web interface runtime
In use
Vite
Web build system
In use
Expo
Native mobile application
In use
React Native
Native interface runtime and StyleSheet.create styling
In use
TanStack
Router and server state
In use
Three.js
Spatial matching visualization
In use
Tailwind CSS
Application styling
In use
TypeScript
Typed application source
In use
Paraglide JS
Typed localization
In use
Node.js
Server JavaScript runtime
In use
NestJS
HTTP and application composition
In use
Fastify
NestJS HTTP server adapter
In use
Zod
Boundary validation
In use
OpenAPI
Public API contract
In use
Scalar
Interactive API reference
In use
Fern
Generated TypeScript client
In use
Better Auth
Account and session authority
In use
Mastra
Service-controlled AI orchestration
In use
AI SDK
Typed model and streaming protocol
In use
Temporal
Durable background workflows
In use
PostgreSQL
Canonical product and consent truth
In use
TypeORM
Persistence mapping and migrations
Approved target
dbt
Analytics transformations and data quality
Approved target
Apache Iceberg
Open analytical table format
Approved target
Amazon SageMaker
Managed model training and evaluation
In use
Cloudflare
Edge, storage, and static delivery cloud
Approved target
AWS
Training and analytical workload cloud
In use
Docker Compose
Versioned service topology
In use
Dokploy
VPS deployment controller
Approved target
Terraform
Versioned infrastructure provisioning
In use
Cloudflare Pages
Static web deployment
In use
Cloudflare R2
Protected object storage
In use
Consola
Structured diagnostic logging
Approved target
Langfuse
AI traces, evaluations, versions, latency, and cost evidence
Approved target
PostHog
Consent-gated product behavior analytics
Approved target
Sentry
Scrubbed application crash diagnostics
In use
Vitest
Backend and contract behavior tests
In use
Testcontainers
Disposable PostgreSQL integration environments
In use
Playwright CLI
Human-observed browser walkthroughs
In use
Maestro
Native mobile end-to-end verification
In use
Oxc
Formatting and static linting
Operating tool
GitHub
Source collaboration and review
Operating tool
GitHub Actions
Automated verification and deployment evidence
Operating tool
Composio
Authorized external-tool connector
In use
pnpm
Package management
In use
Turborepo
Workspace task orchestration
Reciprocal matching
Matching pipeline stages
100M target corpus
≤1,000 retrieved
≤200 policy eligible
≤50 reciprocal pairs
3–10 reviewed
1–3 proposals
These are workload limits for one authorized run. They are not conversion targets, and they do not promise that anyone will be introduced.
The feasibility argument
Purpose, lane, role, geography, time, and model version keep irrelevant intentions outside the run.
Indexes and vectors make recall fast. They can be rebuilt because they never own identity, consent, policy, or current version state.
Before costly scoring or a proposal, PostgreSQL checks both directions in one bounded set query against current policy.
Temporal rebuilds projections, removes stale indexes, expires runs, and reconciles delivery without moving authorization away from the online request.
The work ahead
The architecture is specified, but production feasibility still has to be earned. We need engineers who want to measure the system under uneven load, break its assumptions, protect its privacy boundaries, and make every failure explainable.