Platform
What every app gets.
Nothing to assemble.
Create an app with one command. It comes with a database, keys, sign in, policies, realtime, storage, functions, webhooks, SQL, export, and hosting for your site. The docs cover each one.
Postgres per app
Each app is its own Postgres database with its own role. Tables, columns, indexes, and rows through the API, with filters, cursors, upsert, and bulk import.
- One database and one role per app
- PostgREST style filters and cursor pagination
- CSV and NDJSON import
Keys
An account key for your laptop, a secret key for your server, a publishable key for your phone or browser build.
- bak_, bsk_, bpk_
- Create and revoke per build
End-user auth
Your app's users sign up with email and password or an emailed code. JWT access tokens and rotating refresh tokens.
Row policies
Each table is secret, public, authenticated, or owner only, enforced with Postgres row level security.
berth tables policy notes \
--read owner --write owner
Realtime
Stream inserts, updates, and deletes from any table over server sent events, and resume after a drop.
Storage
Buckets with read and write policies, size and type limits, and signed URLs for private files.
Functions
One TypeScript file on Deno. Import from npm and jsr, read your env vars, call the API with an injected secret key, and run on a cron schedule.
terminalIllustrative
01 berth env set GREETING=Hi saved
02 berth functions deploy hello hello.ts deployed
03 berth functions invoke hello 200
04 berth functions deploy nightly nightly.ts --schedule @daily scheduled
Webhooks
Signed row events POSTed to your URL, retried for hours, with a delivery log.
SQL
Parameterized SQL for joins and reports, with a read only mode and time limits.
Export
Take a standard pg_dump of your app any time, and restore it as a new app.
Sites
Host your website or front end at name.atberth.com or your own domain, with HTTPS, preview links, instant rollbacks, redirects, and cookie-free stats and campaign links.
- Only changed files upload. Switches are instant.
- Custom domains with automatic HTTPS
- Rewrite /api/* to your functions. No CORS.
- Password-protect a site or its previews
berth sites deploy ./dist --site my-site
Live: https://my-site.atberth.com
berth sites deploy ./dist --site my-site --preview
berth sites domains add my-site example.com
berth sites rollback my-site