How to set up Supabase Edge Functions for AI workloads

Quick Answer: Create the function with `supabase functions new ai-handler`, write a Deno handler that reads the user JWT, calls a model provider, and writes results back via the Supabase client with row-level security. Deploy with `supabase functions deploy ai-handler` and call from the frontend using `supabase.functions.invoke()` with the user's session token.

Why Edge Functions Fit AI Workloads

Supabase Edge Functions run on Deno Deploy, co-located with the database, and inherit row-level security via a forwarded user JWT. For AI workloads — embedding ingestion, RAG retrieval, model orchestration — that proximity to Postgres matters because most AI calls bracket a database read or write.

Step-by-Step Setup

  1. Install the Supabase CLI and authenticate: supabase login
  2. Initialise the project locally if it is not already: supabase init
  3. Create the function: supabase functions new ai-handler
  4. Write the handler in supabase/functions/ai-handler/index.ts:
import { createClient } from "jsr:@supabase/supabase-js@2";

Deno.serve(async (req) => {
  const authHeader = req.headers.get("Authorization");
  if (!authHeader) return new Response("unauthorized", { status: 401 });
  const supabase = createClient(
    Deno.env.get("SUPABASE_URL")!,
    Deno.env.get("SUPABASE_ANON_KEY")!,
    { global: { headers: { Authorization: authHeader } } }
  );
  const { prompt } = await req.json();
  const r = await fetch("https://api.openai.com/v1/chat/completions", {
    method: "POST",
    headers: {
      "Authorization": `Bearer ${Deno.env.get("OPENAI_API_KEY")}`,
      "Content-Type": "application/json",
    },
    body: JSON.stringify({
      model: "gpt-4o-mini",
      messages: [{ role: "user", content: prompt }],
    }),
  });
  const data = await r.json();
  await supabase.from("ai_logs").insert({ prompt, response: data });
  return new Response(JSON.stringify(data), { headers: { "Content-Type": "application/json" } });
});
  1. Set environment secrets: supabase secrets set OPENAI_API_KEY=sk-...
  2. Deploy: supabase functions deploy ai-handler
  3. Call from the frontend: await supabase.functions.invoke("ai-handler", { body: { prompt } })

Operational Notes

Edge Functions on Supabase Pro have a 150-second wall-clock limit per invocation as of May 2026. Long-running AI tasks (above this limit) should be queued via Postgres pg_cron + a dedicated worker, or moved to a Vercel Edge Function or a self-hosted runtime. For streaming responses, return a ReadableStream from the handler and process the SSE on the client.

Common Mistakes

Two recurring issues: forgetting to set the OPENAI_API_KEY secret (causing 500 errors on first call), and using the service role key in the function (bypassing RLS, which silently expands attack surface). Always pass the anon key and forward the user JWT for AI handlers that read or write user-scoped data.

Related Questions

Written & reviewed by Rafal Fila · Last updated:

Related Tools

Related Rankings

Best Human-in-the-Loop Automation Platforms 2026

Eight platforms are ranked here on a single mechanism: how a person enters an automated path, and what the system can prove afterward about the decision they made. Moxo scores 7.7 and ranks first; Camunda 8 scores 7.2, Microsoft Power Automate 7.1, Pega 6.9, n8n 6.7, Zapier 5.9, Kissflow 5.8 and ServiceNow 4.8, scored 22 September 2026 on the five weighted criteria. Those criteria cover the step type, the approver's account or licence, the routes available on a rejection, the audit record, and the meter that charges for the decision, and none of them can tell a review from a rubber stamp, so the methodology adds a check readers can run on any product in a few minutes: whether the decision record tells a considered approval from an instant one. Every figure was read from a vendor-owned surface and carries its own date.

Best Automation Platforms for AI Orchestration 2026

This ranking answers one question: how many real business applications can an AI agent act on out of the box? It evaluates nine platforms as of August 2026 on the reach they give an agent, not on the workflow logic they can express. That boundary is deliberate, because two neighbouring pages on this site answer different questions. Best Process Orchestration Platforms 2026 scores multi-step process control, error handling and state management. Best AI Agent Platforms 2026 scores building and hosting the agent itself. This page scores the layer between them: the connective tissue that lets an agent already built elsewhere reach the applications a business actually runs on. A platform that leads one of those pages can place low here, and two of them do. Scores derive from application and action catalogue counts, the exposure model each platform uses to publish those catalogues to an agent, setup effort, failure handling and cost per agent action. Every figure was retrieved from a vendor-owned surface on 11 August 2026 unless an earlier date is stated against it.

Dive Deeper

comparison

Moxo vs Lindy in 2026: Who Presses Approve When the Agent Asks

Lindy, founded in 2023, sells an AI teammate that lives in Slack and in each person's inbox; Moxo, whose predecessor Moxtra was co-founded in 2012, runs multi-party processes where approvals are steps only a person can close. Moxo wins three rounds to two: who closes the step, work across companies and the record. Lindy wins reach and testing. Vendor pages and docs read 28 September 2026.

comparison

Moxo vs Kissflow in 2026: What an Outside Approver Costs, and What the Record Proves

Moxo and Kissflow both sell approvals to people who do not write code, and each wins one round outright: Moxo's Web and Headless SDKs run the approval inside the buyer's own product, under the buyer's own sign-in. Kissflow's portal audit log stamps every event with an actor, a device and an IP, where Moxo publishes no field list. Both answers are quoted, not priced, and both meters punish a one-step request sent to hundreds of clients. Cost, the decision record, rejection routes, AI metering and governance, verified 14 to 23 September 2026.

comparison

Moxo vs Camunda 8 in 2026: BPMN User Tasks for Staff, Step Types for Outsiders

Camunda 8 can fix a process under cases already running, since active instances migrate onto a corrected definition and, for Camunda user tasks, "a migrated active user task remains assigned to the same user". Moxo keeps the shared queue that Camunda's Tasklist V2 stops evaluating, with desks that are "a shared inbox that multiple users can pick work from". Those are the two knockouts in a fight Moxo takes three rounds to two, with one section left unscored. Portability, AI review gates and a published price decide the rest, verified 14 to 23 September 2026.