05 / SAMI

SAMI supports the live picture between human reports

SAMI is an optional sensor for participating venues. Its machine-learning models process ambient activity on the machine itself. Only the datapoints required for reporting are sent to OUTBND.

One job: fill reporting gaps

SAMI helps OUTBND detect changes when staff and patrons have not submitted a recent report. Its signal is one input. It does not replace verified venue facts or human updates.

01 / Processes signals locally

Machine-learning models run on SAMI. Raw acoustic and nearby-device inputs stay on the machine.

02 / Sends only what reporting needs

SAMI pushes only the datapoints OUTBND requires to support a report. Sensitive source data is never collected.

03 / Keeps raw inputs off the network

Raw inputs never leave SAMI, and OUTBND never stores them in the cloud.

PRIVACY / ON-DEVICE PROCESSING

Sensitive inputs stay on the machine

What OUTBND receives Only the datapoints required for reporting. Raw acoustic and nearby-device inputs never leave SAMI.

The machine-learning models run on SAMI itself. OUTBND never collects or stores the sensitive source data they process.

06 / Technical Architecture

Built to move updates quickly while labeling them honestly

A report moves from its source to the OUTBND API, through the venue database, and out to nearby phones. Each layer preserves where the report came from, when it arrived, and how much confidence it carries.

Open a layer to inspect its stack.

01 // CLIENT LAYER iOS 17+ · Native iPhone Client
Stack SwiftUI · Mapbox Vector Maps · MapKit

The iPhone app puts nearby venues, current status, and walking time on one map designed for quick, one-handed use at night.

02 // API & COMPUTE Python 3.12 · Async FastAPI Backend
Stack Fly.io Dual-Node Dedicated Compute

The API receives reports, validates them, applies freshness rules, and sends accepted changes to connected phones without waiting for a refresh.

03 // SPATIAL ENGINE Postgres 16 · PostGIS Postgres & PostGIS
Stack Supabase Dedicated Database + RLS

PostGIS stores venue facts and finds active venues within three kilometers of the user, so the phone only receives relevant results.

04 // REAL-TIME DISPATCH Redis · Sub-15ms Event Loop WebSocket & Redis Sync
Stack In-Memory Pub/Sub Event Broker

WebSockets push accepted status changes to open maps. Redis distributes each update across the running server instances.

05 // TYPE CONTRACT OpenAPI 3.1 · Automated Schema & Contract Safety
Stack Automated Swift Model Codegen

The API contract generates Swift models during the build, helping the app and server keep the same fields and data types.

06 // OPERATOR SECURITY Cryptographic Token Gate Verified Staff Access
Stack Cloudflare Mail Auth + Salted Tokens

Approved venue staff receive single-use access links, so only authorized operators can publish official updates. Browsing remains passwordless.