Team email with an app platform built in.

Build the tools your team needs and run them right inside your Sobamail inbox. No servers or databases of your own to wire up.

Already have an account? Download the app or open Webmail.
Just want to see some code? Head over to GitHub.

Unifying apps with Sobamail

How it works

Your mailbox is the single source of truth for your email, your apps, and their data.
It stays in sync across your devices and with your teammates.

  1. 1

    Native clients

    Sobamail offers standards-compliant email hosting (SMTP, IMAP, POP3, and webmail), paired with a fast native desktop client.

    Beyond a no-nonsense email experience, the client provides large file support (up to 1 GB) and the runtime that runs your apps locally.

  2. 2

    Mailbox is the data store

    Your email archive, app data, and files live inside your mailbox.

    There are no separate backends to run and no logins to build: your email address is the account your apps use.

  3. 3

    A modern, email-compatible protocol

    Between Sobamail clients, replication runs on a proprietary protocol built for real-time sync, through the Sobamail cloud or peer-to-peer over your local network.

    Peers outside the platform aren't left out: they simply receive an ordinary email with a machine-readable attachment.

  4. 4

    Works offline, always in sync

    Because apps run on your own machine, they keep working with no connection, and catch up automatically once you're back online.

    However it gets there, all your devices end up with exactly the same data. On a collaborative app, so do your teammates.

Your work, your apps

The people closest to the work build the tools they need with today's AI coding tools, on infrastructure your IT team already controls.

Build tools that fit how you work

Build tools that fit how you work

Off-the-shelf software rarely fits how a specialist works, but Sobamail's building blocks are simple enough to shape around your exact process: an intake form, an approval checklist, a case tracker.

No new attack surface

No new attack surface

Every new tool usually means another server, endpoint, and set of credentials to secure. Sobamail apps add none of that.

They run inside the mailbox and client you already trust, so even in tightly controlled environments your attack surface stays flat as your toolset grows.

One hub for the whole team

One hub for the whole team

Your team's apps and their records live in one mailbox, a single place to look instead of a dozen scattered tools.

Your data, on your terms

No lock-in: you can export your mail and app data with standard email tools anytime, decide exactly who can see it, and run the whole platform on your own infrastructure.

  • Your data stays in your mailbox

    App data and files live in the mailbox you control, not behind links to third-party services.

  • Take your data with you

    Nothing here is a one-way door. Export your mail and app data with standard email tools and move to another host whenever you choose.

  • Private by default

    Your mailbox and its apps are yours alone. Data is shared only when you explicitly create a shared app instance with the people you choose.

  • Run it on your own infrastructure

    Don't want to depend on our servers? Sobamail can run on infrastructure you control, so your data never has to leave it.

Have a security or compliance question? Read the full FAQ or email us.

Build local-first apps

Ready to build? A Sobamail app is a JS backend plus a regular web UI.

You write a Mutator, a simple handler that keeps your app's local state up to date, and a frontend in plain HTML, CSS, and JavaScript, while Sobamail handles storage and background sync.

Better yet, don't start from a blank page: every app we ship is open source, so you can fork a working one and shape it to fit.

Building needs an account, free during the beta. Read the docs now, and request access when you're ready.

import "soba://computer/R2";

export default class Mutator {
  static id = "todo.alice.user.app.example.com";
  static name = "My First App";
  static version = "1.0.0.0";
  static objects = new Map([ /* events to handle */ ]);

  constructor() {
    // define your tables, run sanity checks
  }

  process(message, metadata) {
    // react to the incoming event
  }
}

Get your Sobamail account

Tell us a bit about you and we'll set up your account. We review every request by hand during the beta.