Functions Coming soon
TypeScript functions at your project endpoint
Deploy TypeScript or JavaScript functions and call them at /functions/v1/<name>. They run in isolates on the same edge runtime Supabase uses, in your project's region, with secrets, logs and limits set by your plan. Functions are being built now.
Functions are in development. Everything on this page describes how they work at launch. Coming soon
How it works
Functions, step by step
- Step 01
Write a handler
A Deno-style Deno.serve handler in TypeScript, with npm and JSR imports.
- Step 02
Deploy
The CLI bundles the function and uploads it; every deploy is a version you can roll back to.
- Step 03
Call or trigger it
Over HTTP with a project key or a user's session, on a schedule, from a queue or when rows change.
- Step 04
Watch it
Logs and invocation metrics per function in the portal and the CLI.
What you get
-
Isolates per project
Each invocation runs in its own isolate from a warm pool for your project, with CPU, memory and wall-clock limits.
Coming soon -
Cron, queue and database triggers
Run a function on a schedule, for each queue message, or when rows in a table change.
Coming soon -
Secrets by reference
Project secrets and database credentials are injected in the cell; the control plane stores references only.
Coming soon -
Logs and metrics
Per-invocation logs with your plan's log retention, and counts, errors and duration per function.
Coming soon
Live today and coming next
Every part of this service and where it stands. The list changes as each piece ships, and the changelog announces it.
- TypeScript functions over HTTP, with secrets and logs Coming soon
- Cron, queue and database-change triggers Coming soon
Live: available on the platform today. Coming soon: being built now; prices and plan limits are already published. See every service on the platform overview.
Try it
Invoking a function with supabase-js.
import { createClient } from "@supabase/supabase-js";
// Your project's endpoint and publishable key, from Project settings in the portal.
const supabase = createClient("https://<ref>.us-east.databasezy.com:8443", "<publishable-key>");
const { data, error } = await supabase.functions.invoke("hello", {
body: { name: "world" },
});Plan availability
Generated from the same plan catalogue that billing and the API use.
- Coming soon
Free
$0 /mo5 functions, 250K invocations, 150 MB and 150 s per invocation
- Coming soon
Solo
$25 /mo25 functions, 2M invocations, 256 MB and 400 s per invocation
- Coming soon
Team
$599 /mo100 functions, 10M invocations, 512 MB and 400 s per invocation
- Coming soon
Enterprise
CustomUnlimited functions; usage set in your contract
Above the allowance, invocations are $2 per million and compute $0.0000166 per GB-second. On Free the allowance is a hard limit.
Questions
When can I use them?
Functions are being built now. This page and the docs switch to Live when they ship, and the changelog announces it.
Will my Supabase Edge Functions run?
They are the target: the same runtime, the same Deno.serve handler and the same invoke call from supabase-js. The compatibility notes will list anything that differs at launch.
Where do functions run?
In your project's region, next to its databases. Multi-region execution comes later.
Related features
- Coming soon
Storage
Buckets for files and images, with policies in your Postgres and an S3-compatible endpoint.
Learn more about Storage - Coming soon
Realtime
Broadcast, presence and Postgres changes over WebSockets, filtered by row-level security.
Learn more about Realtime - Coming soon
Apps and jobs
Always-on containers next to your databases, with releases, rollback and cron jobs, from $5 a month.
Learn more about Apps and jobs
Start today
Create your first database
A free instance, no card. Upgrade when you outgrow it; nothing converts silently.