The shape, in one paragraph
Every account gets its own dedicated agent server, its own cloud storage bucket for vault files, and its own semantic memory store. A small gateway in front of all of them routes your traffic, authenticates you, and scales your personal agent up when you arrive and back down when you go quiet. The PWA you use is the same web app on every device — pinned to your phone's home screen, opened on your laptop, identical underneath.
The pieces
PWA
The app you actually use. Lives at 1presence.com, pins to your home screen, behaves like native. Real-time streaming, connector flows, inline draft editing, vault and memory browsers. Same code on every device — bugs fixed once.
Gateway
The always-on door. A small TypeScript service that authenticates you, provisions a new agent server on first sign-in, and proxies traffic to your personal agent. The one component online for everyone at once. Stateless, horizontally scaled.
Agent server — yours alone
A tiny process in its own isolated namespace, with its own service account, scoped to read only your prefix in storage. It runs the conversation loop. Goes quiet after 10 minutes; wakes when you return — memory and vault intact.
Vault
Plain files in your own bucket, accessed via per-user credentials. Markdown — readable in any editor, exportable, Obsidian-compatible. No opaque database in the middle.
Memory — three-layered
A separate store: a knowledge graph of facts and relationships, a memory map of filed notes, and a vector index for semantic search. All scoped to your account, browsable in the app, exportable as JSON.
Connectors — scoped, revocable
Each connection uses your own OAuth credentials, held in encrypted secret storage and scoped to exactly what is needed. Connect what you want, revoke any of it in one tap.
A request, end to end
What happens when you type "brief me for the 3pm" and tap send — the shape of it first:
The same path, step by step:
- Your message lands at the gateway. It verifies your Firebase token in microseconds.
- The gateway looks up your agent's endpoint. If your agent is sleeping, it wakes it (~1.5 seconds).
- The gateway forwards the message and opens a streaming connection back to your browser.
- Your agent loads your system context, your memory wing, and the relevant slice of your vault.
- It plans: which tools to call. For "brief me for the 3pm", it picks calendar, email, vault search, and possibly Notion.
- It calls the tools in parallel. Each tool runs against the connector's scoped credentials.
- Results stream back into the agent's reasoning loop. It composes the brief, streaming tokens to you as it goes.
- Anything worth filing — the brief itself, new facts about the people involved — gets written to vault and memory.
- When you go idle, the agent server scales back down. Memory is checkpointed to GCS.
The whole thing is usually 5-15 seconds, depending on how many sources the synthesis needs.
Why we built it this way
The hard decisions, in case you are evaluating:
- Per-user pods, not shared processes. This is the choice that makes data isolation structural, not policy-based. The cost is operational complexity — a price worth paying for isolation that does not depend on us getting a policy right.
- GCS markdown vault, not a database. The vault is yours, not ours. Plain files. Obsidian-compatible. Exportable. Anything else is a long-term trap.
- Semantic memory + knowledge graph. Not just a vector store. The graph is what lets Presence answer "what do I know about Maya" without hallucinating.
- PWA, not native apps. One codebase. Instant updates. No store middlemen.
- TypeScript end-to-end. Same language across PWA, gateway, agent. Easier to maintain by a small team.
Where it goes next
The infrastructure does the boring thing every day, and stays out of the way.
The architecture is stable enough that most active work is on the product surface — more connectors, sharper agents, better workflows, richer memory introspection. Workflows run each stage on the same per-user agent server, one after another; Creator Studio hands media generation off to specialist providers and streams the results back.
Start a conversation.
Free to try. No credit card. Just you and your agent.
Works on any device. Takes 60 seconds to start.