Amolfi Labs

We're building the operating layer a company runs on. Not another tool to check — the surface the work happens on: every record connected, agents that act with receipts, a human approval on everything that matters. Built in the open.

The hard part

The problems worth being honest about

Letting software act on a real business is genuinely hard, and we'd rather show the seams than hide them. None of these are solved by a bigger model — they're solved by the layer around it, and that layer is the actual work of the lab.

Live

Moving a live business off Firestore — with zero downtime

The hard part

You can't take a multi-tenant SaaS offline to swap its database. Around 37 collections of live customer data had to move from Firestore to Aurora Postgres while the app kept reading and writing every second — with no moment where a write lands in the old store and a read hits the new one.

Our approach

Migrated wave by wave behind one signed bridge, kept the old listeners only as an on-error fallback during each cutover, then verified row counts and checksums identical across dev, staging, and prod before retiring the old path.

docs/unified-data-spine/full-aws-execution-plan.md
Live

Tenant isolation enforced by the database, not the app

The hard part

In a shared database, one missed org_id filter is a cross-customer leak — and every new query is a fresh chance to forget it. The isolation has to hold even against a bug, and survive a connection reused across tenants.

Our approach

Every tenant-scoped table runs Postgres FORCE ROW LEVEL SECURITY. All access goes through a transaction that sets a transaction-local org id, so the database — not the application code — refuses any row from another tenant.

infra/lambda/shared/db.ts
Live

Real-time updates without a database that pushes

The hard part

Firestore gave live updates for free; Aurora does not push. The naive replacement — write the row, then publish an event — risks the classic dual-write failure: the publish is lost or the transaction rolls back, and one client's screen silently disagrees with the database.

Our approach

The write and a domain-event row commit in the same transaction; a worker drains that transactional outbox to AppSync subscriptions with per-consumer idempotency and retry — so an event lands exactly where it should, even if a step fails mid-flight.

functions/db/migrations/0027_foundation_outbox_messages.sql
In progress

Agents that act on the real system — with receipts

The hard part

An assistant that only talks is safe but limited; one that can start a campaign, move a deal, or send money is dangerous the moment it is wrong or manipulated. The hard part is letting an agent reach the same real action handlers a human clicks, while it can never do something the asking user could not.

Our approach

Agents only re-enter the existing action handlers as the resolved requester — never the database directly — through a gate where reads run inline, low-risk writes follow the workspace autonomy setting, and high-risk actions become a human approval card. Every run leaves an attributable receipt.

infra/lambda/kernel/native-tools.ts
In progress

Shared AI memory that never leaks need-to-know data

The hard part

A company memory is only safe if a junior's agent can't extract a finance secret a summary happened to absorb. Filtering results after the fact still leaks through ranking and counts; a cross-scope summary can carry a secret its reader can't access the source of.

Our approach

Memory carries no access list of its own — each record inherits its source’s scope, the permission filter runs inside the SQL search rather than after it, and derived memory inherits the strictest of its inputs. A standing red-team probe proves a low-scope requester reaches no high-scope record.

infra/lambda/kernel/scopes.ts
In progress

One platform that fits many trades — without forking

The hard part

A marketing agency's project is a cabinet shop's job is a consultancy's engagement. Hard-code one schema and the product fits one vertical and fights every other one.

Our approach

Every org boots on a base ontology pack, then layers capability and per-industry overlay packs validated at load — so a vertical is data, an overlay over the same engine, not a fork of the platform.

infra/lambda/ontology-packs.ts
Live

A signed gateway that can't be spoofed or replayed

The hard part

Splitting the system across Firebase for auth and AWS for data creates a trust seam: every request crossing it must be provably from the real bridge — not forged, replayed later, or altered in transit.

Our approach

Every call carries an HMAC signature over its timestamp, method, and exact body, verified with a constant-time compare and a five-minute freshness window — so a captured request cannot be replayed.

infra/lambda/shared/bridge-auth.ts

In the lab

What we're building, and where it stands

The whole operating system in motion — some live, some in progress, some still on the bench. We mark each piece honestly, because a roadmap you can trust is worth more than one that only sounds finished.

Unified Data Spine

The whole platform runs on Aurora Postgres, Lambda, and AppSync behind one signed bridge — the Firestore listener loop is gone and prod matches staging.

Live

Chat — the One Surface

A messaging fabric where humans and governed agents share rooms and DMs, with meetings, transcription, search, and attachments.

Live

Playbooks

Company knowledge turned into execution — a library with assignments, progress, and step types for acknowledgement, quiz, review, and proof upload.

Live

Marketing specialist & Social Operator

The Marketing specialist and Social Operator turn ideas into platform-specific drafts, route approvals, and publish only after owner confirmation.

Live

Finance specialist

A cash-basis finance workspace with accounts, transactions, imports, categorization, matching, reports, and governed Finance specialist actions.

Live

Contracts & e-signing

The live contracts register combines approved templates, contract drafting, embedded e-signature preparation, and lifecycle tracking — never legal advice.

Live

Billing & subscriptions

Self-serve workspace plans, Stripe Checkout, and payment-confirmed entitlements, with subscription controls inside the workspace.

Live

Newsletter Operator

The Newsletter Operator supports consented lists, authenticated sending domains, campaign drafts, and owner-approved sends under the Marketing specialist.

Live

Agent OS

A governance kernel that lets a chat line trigger real platform actions safely — scoped by who is asking, allowlist-checked in SQL, with receipts on every run.

In progress

Company Brain & Ontology

An org-scoped semantic model of each business — objects, relationships, and rules — that grounds governed agents in what a company actually is.

In progress

Files Creation Suite

Docs, AI-generated custom views, and a publisher — with generated views sandboxed against data exfiltration.

In progress

Amolfi Code

A governed coding agent — connect a repo and Dev Amo reads it with your business context and opens PRs through the same approval cards as every other seat.

In progress

For developers

API contract

Browse selected implemented resource paths and example payloads. The customer-facing base URL is not published yet.

The authenticated API currently covers tasks, contacts, deals, accounts, calendar events, and form submissions. The paths below document that contract; they are not a copy-and-paste public endpoint.

Authentication

One workspace token — amolfi_sk_… — minted in-app, shown once, hashed at rest. It carries the workspace inside the credential and dies with the minting member’s access.

Webhooks

Four signed CRM events today (deal and contact, created and updated) — HMAC-signed payloads with retry. Nothing broader is promised until it exists.

Email ingest

Forward email to a workspace address to create tasks automatically.

API reference

Resource: Discovery3 documented routes

Returns the resource object.

Returns the resource object.

Returns the resource object.

Use Amolfi now

The lab ships continuously. Amolfi is live and in use. Choose a workspace plan today, then follow the build as new capabilities move from the bench into the product.

Amolfi runs your whole business from one place. Sales, finance, marketing, projects, meetings, and more with AI agents that do the work, you sign off.