Estra Cloud · Firestore-compatible backend · Email

The Firestore API,
with email built in.

Documents, queries, realtime, auth, rules, triggers, files and transactional email, on one platform that runs close to your users. Start a new app from a starter with npm create @estra, or keep your firestore.rules and change one host.

- https://firestore.googleapis.com/v1/projects/my-app/…
+ https://api.my-app.com/v1/projects/my-app/…
client rules commit topics listeners trigger email offline cache
One write: checked by your rules, committed atomically, fanned out to every listener, and a trigger can send the email.

In production at venven since October 2026

115,083
documents moved from Firestore
25 / 25
app queries return identical results
30 / 30
security-rules tests pass unchanged
0
users asked to sign in again

Platform

Everything Firestore apps lean on. Nothing you have to rewrite.

Database

Documents & queries

Collections are real SQL tables. Compound and or filters, in, array-contains, collection groups, cursors, aggregates and radius search.

Rules

Your rules, as written

firestore.rules and storage.rules compile as-is, or write rules in TypeScript. Test them without an emulator.

Realtime

Live listeners

onSnapshot over hibernating WebSockets, sharded topics, resume after reconnect, plus presence and broadcast channels.

Client

Offline first

A local cache with latency compensation and pending writes, so the app keeps working on a train.

Auth

Sign-in, or keep yours

Email, Google, Apple and GitHub, account linking and session cookies. Imports Firebase users with their password hashes, or accepts Firebase ID tokens as they are.

Functions

Triggers & callables

onCreate, onUpdate and onDelete with retries, callable functions and storage triggers. Push notifications go out over FCM.

Storage

Files

Uploads, downloads and storage rules, with zero egress fees, so a viral image doesn't turn into an invoice.

Gateway

Speaks Firebase

Serves the Firestore and Identity Toolkit REST paths, a firebase-admin-shaped Node client, and a Kotlin Multiplatform SDK for iOS and Android.

Also included: an admin console, live aggregates and counters, Yjs collaboration, and a frozen /v1 API contract.

Email Early access

Transactional email, built in.

A Resend-compatible email API on the same platform as your data. Sign-in links and password resets go out through it automatically. Already sending with Resend? Change one variable.

API

Drop-in compatible

The same POST /emails request, response and errors as Resend. The Resend SDK works as is, pointed at Estra.

Domains

Every domain you own

No plan tiers for sending domains: one per app, per brand, per region. We generate the DKIM, SPF and DMARC records.

Keys

One key per app

Scoped to the domains that app may send from, rate-limited, shown once, revocable at any time.

Delivery

Retries and suppression

Every email is queued and retried until it's accepted. Hard bounces and complaints are suppressed automatically, protecting your reputation.

Templates

Templates and batches

{{variables}} with HTML escaping, batches of up to 100, and idempotency keys, so a retried request never sends twice.

Logs

See what went out

A 30-day message log, plus daily sent, bounced and complaint totals per app, kept for good.

Migrate

Three commands, then a host change.

  1. 01

    Draft a schema

    Estra reads your Firestore data and drafts a typed schema for you to review: collections, fields and subcollections.

    estra-import schema --project my-app
  2. 02

    Copy and verify

    It copies every collection and user without writing anything to Firebase, then compares the two side by side. Top up with --since until you switch.

    estra-import data --project my-app
    estra-import verify --random --sample 200
  3. 03

    Switch hosts

    Point the SDK or REST base URL at Estra. Sessions carry over, and Firestore stays untouched as your rollback.

    initializeFirestore(app, { estraUrl })

Pricing

Pay for what you use. Nothing else.

No instance sizes to pick, no per-user fees, no egress fees and no email plans. Usage is billed by the million (email by the thousand), and the first tier is free.

Starter

$0 / month

  • 1M API requests
  • 2M rows written, 1B rows read
  • 500 MB database, 1 GB files
  • 1M realtime messages
  • 1,000 emails
  • Never pauses
Start free

A document write costs one row, plus one row per index it touches, plus two rows for the realtime change feed. That's typically 4–6 rows. Reads cost about a tenth of a cent per million rows.

Compare

Your workload, three monthly bills.

Pick a preset or drag the sliders. Same workload, each provider's list prices.

How we calculate this
  • Estra: email at $0.39 per 1,000 after Starter's 1,000; about 10 documents per read request, 3 rows read and 5 rows written per document, 4 ms of CPU per request, and 3 realtime fan-out messages per write. Files average 2 MB, and about 10% of them are new each month. Downloads average 0.5 MB. The Starter allowance applies, then the Pro minimum.
  • Firebase: Firestore Standard in nam5 ($0.60/M reads, $1.80/M writes, $0.18/GiB), with the free quotas (50k reads and 20k writes a day). Cloud Storage at $0.026/GB, $0.12/GB egress after 100 GB, and $0.05 per 10k uploads. Firebase Auth is counted as free.
  • Supabase: Pro at $25 with 8 GB of disk, 100 GB of files and 250 GB of egress included. The overages are $0.125/GB of disk, $0.0213/GB of files, $0.09/GB of egress and $0.00325 per MAU over 100k. Compute is sized to load (Micro, Small, Medium, Large), net of the $10 credit. Small workloads use the Free plan, which pauses after a week of inactivity.
  • Email: Firebase and Supabase don't send transactional email, so both include Resend at its list price for the same volume (the cheapest of Free, Pro and Scale).
  • List prices were checked on 22 October 2026. Database egress is ignored for every provider. Your mileage will vary, so model your own numbers.

Questions

The fine print, up front.

What are the limits?

Each database holds up to 10 GB; split larger apps across databases. A query returns up to 1,000 documents a page, and the schema is strict: a write that names an undeclared field is refused, which catches typos before they become data.

Can I keep Firebase Auth?

Yes. Estra accepts Firebase ID tokens, so you can move the database first and nobody signs in again. You can move auth later, with password hashes imported, or never.

Am I locked in?

No. Export your data whenever you like, and because Estra speaks the Firestore API, your app code stays portable.

When is Estra cheaper than Firebase or Supabase?

Usually when reads, file downloads, traffic or email dominate, since reads are nearly free, egress is free, and email costs less than half of Resend's overage rate. Write-heavy apps with many indexes pay more per write than on Supabase. The calculator above shows where your workload lands.

Where does my data live?

Hosted projects keep their database in North America today, and files are served from a global network with no egress fees. Tell us if you need another region.

Can I use Estra just for email?

Email comes with every Estra project: add your sending domain, publish the DNS records it gives you, and create keys from the dashboard. Email-only accounts are coming.

Bring your Firestore app. Bring your email, too.