Open-source · Self-hosted · Apache 2.0

Every tool you run bills you for growing.

Identity charges per active user. Flags per seat. Observability per host, then per gigabyte. CRM, HRMS, docs, tasks, recordings, scheduling — per seat, every month, forever. A small company now runs ~150 SaaS apps at around $8,000 per employee per year. None of it costs the vendor more when you hire. It just costs you more.

SOMA is that stack rebuilt in Rust as open source you self-host for nothing — one design system, one login, one Postgres across every product. When you'd rather we ran it, we meter the two things that actually cost money: bytes stored and bytes moved.

SOMA is in beta. Some components are earlier-stage than others — the roadmap shows where everything stands.

SaaS apps, small company
~150
SaaS spend / employee
$8,000/yr
Infra floor, self-hosted
$540+/mo idle
SOMA, self-hosted
$0any headcount

live process · this server right now

8MB

RSS

0.0

Req/s

0ms

p50 latency

0.0%

CPU

The problem · 01

Do the multiplication your vendors hope you won't.

Per-employee SaaS spend at small companies now averages about $8,000 a year — the highest of any company size, because you carry an enterprise-shaped tool stack across far fewer people. For a typical early team:

on software subscriptions — before a dollar of cloud compute, before a single customer. Hire twenty-five more and the seat-priced majority of it doubles, even though serving a seat costs the vendor a few hundred bytes of Postgres.

SaaS spend and app-count figures: Zylo 2025 SaaS Management Index (40M+ licences under management) — $4,830/employee/yr average across all company sizes, ≈$8,000 and ≈150 apps at small companies. The worked example multiplies the small-company average; your stack will differ.

The problem · 02

The meter is rigged to your success.

Look at what each vendor counts. Almost every line of that $200,000 is indexed to a measure of your own growth — users you won, people you hired, machines you needed. Not one of these units tracks the vendor's cost to serve you.

Tool classTypical vendorsBilled byDoubles when…
IdentityAuth0, Oktamonthly active usersyour product succeeds
Feature flagsLaunchDarkly, Splitseats + MAUyou hire, or you succeed
ObservabilityDatadog, New Relichosts + GB ingested + custom metricsyou scale out
Product analyticsPostHog, Mixpanel, Amplitudeevents capturedpeople use your product
NotificationsCustomer.io, Braze, Novuprofiles + messagesyour audience grows
CRM & salesSalesforce, HubSpotseatsyou hire
HR & peopleWorkday, BambooHR, Ripplingemployeesyou hire — twice over
Docs & tasksNotion, Confluence, Jira, Linearseatsyou hire
Record, schedule, meetLoom, Calendly, Firefliesseatsyou hire
SOMA, self-hostedyou, on your own boxnothingnever
SOMA Cloudus, on oursGB stored + GB movedyou genuinely store or move more

Billing metrics above are the published, structural pricing units for each product class — the unit, not a quoted price. The unit is what determines whether your bill tracks your headcount.

The problem · 03

Self-hosting the incumbents doesn't save you either.

The standard escape route is to self-host the open-source alternatives. But each one arrives with its own database, its own runtime and its own appetite — these are the vendors' own published minimums, at idle, before load.

The conventional self-hosted stack is roughly 18 to 21 containers across six products; the SOMA equivalent is three binaries sharing one Postgres THE CONVENTIONAL STACK SOMA Keycloak Postgres Infisical PG 8 GB Redis 4 GB GrowthBook ×3 + Mongo PostHog ×9 SigNoz ×5 Novu MongoDB Redis ≈18–21 containers ≈$540–640/mo idle · 6 UIs · 6 upgrade paths soma-control IAM · Vault · Flags · Licensing soma-insights Observe · Analytics · Audit soma-growth Notify · Social · Extract one Postgres 3 binaries · 1 database 5.15 MiB measured control plane · $0
What it doesThe usual answerWhat it wantsSOMA
IdentityKeycloak1,250 MB/pod · min. 2 services · external DBsoma-iam
SecretsInfisical~16 GB across 3 servicessoma-vault
Feature flagsGrowthBook2 GB / 1 vCPU × 3 instances + MongoDBsoma-flags
AnalyticsPostHog4 vCPU / 16 GB · 9+ containerssoma-analytics
ObservabilitySigNoz~28 cores / ~72 GiB · 5 component typessoma-observe
NotificationsNovu4 vCPU / 8 GB + MongoDB + Redissoma-notify
All sixsoma-control + soma-insights + soma-notify3 binaries · one Postgres · 5.15 MiB measured for the control planeshipped
$540–640per month in AWS on-demand compute, across roughly 18–21 containers, to run a minimal version of the stack above at idle. That's the floor under the $16,600 — the cost of dodging SaaS the conventional way.

Vendor minimums are for idle/light load and grow with usage. soma-control figure is measured (linux/arm64, Docker Desktop on Apple Silicon, 2026-07-31, commit de4f858); remaining SOMA figures are design targets pending measurement. Full methodology at soma.dev/footprint. Sources: keycloak.org · infisical.com/docs · growthbook.io · posthog.com/docs · signoz.io/docs · docs.novu.co · AWS us-east-1 on-demand 2026-07.

The platform

Layers, not logos.

A SOMA layer is a set of products that ship together, sharing one design system, one login, one Postgres and one audit trail. Four layers exist today in some state; the architecture doesn't cap the count — each new layer compiles against the ones below it.

The SOMA stack exploded: operations layer, business layer (planned), developer layer, and the DevKit foundation — every layer wired into one Postgres one Postgres every layer, one database · one schema per service OPERATIONS LAYER s-delights delivery ops · verticals to follow BUSINESS LAYER · planned CRM · HRMS · Tasks · Docs · Record · Schedule DEVELOPER LAYER Control · Insights · Growth · AI · Security · Radar FOUNDATION SOMA-DevKit — infra · schema · ui · audit · sdks
Foundation

SOMA-DevKit

shipped

The shared floor every layer stands on. Postgres pooling, migrations, crypto, caching, storage and telemetry wiring — and soma-ui, 160+ Leptos components that are the face of every product in the stack. Your CRM will look like your observability looks like your IAM, because they're drawn from the same kit.

soma-infrasoma-schemasoma-uisoma-auditsoma-sdks

Replaces the fortnight every team spends re-wiring the same pool, the same migration runner, the same AES-GCM helper. soma-schema is on crates.io today.

Developer layer

Everything an engineering team subscribes to

The tools you'd otherwise assemble from six vendors and twenty containers — as Rust binaries on one Postgres.

SOMA-Control

shipped

IAM · Vault · Flags · Licensing

Auth0 Okta Keycloak HashiCorp Vault Infisical LaunchDarkly Chargebee

SOMA-Insights

shipped

Observe · Analytics · Audit

Datadog New Relic SigNoz PostHog Mixpanel Amplitude

SOMA-Growth

usable

Notify · Social · Extract

Novu Customer.io Braze Firecrawl Buffer

SOMA-AI

wip

Agents · RAG · Memory · Guardrails · Evals

LangSmith Pinecone Weaviate Braintrust

SOMA-Security

usable

Security graph · CIS rules · CIEM

Wiz Orca

SOMA-Radar

wip

Device intel · Behavioural biometrics · Fraud verdicts

Sift Castle Fingerprint

Business layer

The apps every company pays seats for

planned

Every one of these is mostly identity, permissions, records, search, notifications and an audit trail — which is precisely what the rest of the stack already is. Building them is assembly, not invention. None of this is written yet, and this page says so.

CRMHRMSPRMERMTasksDocsRecordScheduleMeet notes

↳ will replaceSalesforce HubSpot Workday BambooHR Rippling PartnerStack Jira Linear Asana Notion Confluence Loom Calendly Fireflies

Seeds in the repo today: SOMA-Video-to-md already turns recordings into structured markdown — the start of the meeting-notes piece.

Operations layer

Running the actual business, not just the software

usable

Complete vertical platforms — staff, customer and field apps on one backend — proving the whole substrate end-to-end. Where the business layer manages the company, this layer runs its operation.

s-delights

usable

Delivery operations — 80+ routes, 108 migrations, staff / customer / driver tiers, payments, mobile apps

the first vertical; the pattern for the ones that follow

Next strata

The stack keeps accreting

Layers get added when a group of products makes sense together — media production and purpose-built small LLMs are already taking shape in the repo. The seam on the left is the rule: whatever the layer, it ships on the same UI, the same login, the same Postgres.

docker run -p 80:80 soma/ecosystemHowever many layers you run — nine services, Postgres, Redis and Caddy boot from one command (SOMA-Ecosystem).

Zoom into one product

The anatomy of soma-control — the pattern every product follows

Four services that would each be a separate vendor, as rings of one process: shared port, shared router, shared Postgres pool, dashboards compiled to WASM and embedded in the binary.

Anatomy of soma-control: one process and one Postgres pool at the center; IAM, Vault, Flags, and Licensing as rings; the capability surface on the outer ring; WASM dashboards embedded ONE PORT ONE PROCESS ONE POSTGRES POOL soma-control 216 + 46 + 42 + 37 routes · one Axum router one process one pool · one port 5.15 MiB idle · measured IAM 216 routes Vault 46 routes Flags 42 routes Licensing 37 routes WebAuthn · SAML OIDC · SCIM · TOTP AES-256-GCM · AES-KW envelope encryption plans · meters coupons · webhooks segments · multi-env change requests embedded WASM dashboards — no CDN, no Node.js

The model

We stopped counting people.

Seat pricing exists because it's easy to meter, not because a seat costs anything to serve. A user record is a few hundred bytes. So we bill the two quantities that genuinely move our own costs, and ignore everything else.

Self-hosted

$0

Apache 2.0, every layer and every library. Clone it, run it, fork it, sell what you build on it.

  • Unlimited users, seats, tenants, environments
  • No licence key, no seat audit, no phone-home
  • Every dashboard included, embedded in the binary
  • Runs on one VPS. Often on one container.

SOMA Cloud — planned

Tier+ meter

A flat tier for the capability surface and the support you want, then usage on two axes only.

  • Tier — picks features, regions, retention and response times. Never headcount.
  • Storage — per GB-month actually held, after compression and cold-tiering to Parquet.
  • Network — per GB egressed.
  • Same binaries as the open-source release. Leaving means pointing at your own Postgres.

Never on the invoice

Add your whole company on the first of the month. Add a hundred thousand end users. Turn on every layer. The bill moves only if you stored or moved more bytes.

SeatsUsersMonthly active usersEmployeesHostsContainersAgentsEventsCustom metricsProjectsEnvironmentsAPI callsAdmin seatsSSO upchargeAudit-log upcharge

SOMA Cloud is a planned track, not a live product — there are no tier boundaries or per-GB rates to quote yet. Single sign-on and the audit log are in the open-source release and will never sit behind a pricing tier.

Where this actually stands

Beta, and specific about it.

The foundation and most of the developer layer run today. SOMA-AI and SOMA-Radar are fast-moving builds. The business layer is a plan with seeds behind it. The operations layer has one real product. Anyone claiming a whole stack of this size is finished in beta is lying; the roadmap is the ledger instead, refreshed from the repos themselves.