guide

Supabase + Vercel AI App Stack 2026: Auth, RLS, pgvector, Edge Functions

A production AI app architecture pairing Supabase (Postgres + Auth + pgvector + Edge Functions) with Vercel (Next.js + AI SDK). This guide covers row-level security, vector indexing strategy, Edge Function placement, and an end-to-end cost breakdown for a 1,000 MAU app as of May 2026.

Why Supabase + Vercel for Production AI Apps

Supabase is an open-source Firebase alternative built on Postgres, founded in 2020 and headquartered in Singapore. Vercel is a frontend-and-edge runtime company founded in 2015 that ships the Vercel AI SDK, a TypeScript library for streaming model responses. Together they form a coherent stack for AI applications because every layer (auth, data, vectors, serverless functions, model routing, frontend) is covered without stitching together separate vendors. This guide describes a production architecture as of May 2026, including auth, row-level security, pgvector for embeddings, Edge Functions for backend logic, and the Vercel AI SDK for streaming responses.

Architecture Overview

A typical Supabase + Vercel AI app has five layers:

  1. Frontend: Next.js 15 App Router on Vercel, using the Vercel AI SDK for streaming chat
  2. Auth: Supabase Auth with email/OAuth providers; JWTs validated server-side
  3. Data: Postgres with row-level security policies enforcing user isolation
  4. Vectors: pgvector extension on the same Postgres instance for embeddings
  5. Functions: Supabase Edge Functions (Deno) for AI orchestration, or Vercel Edge Functions if compute is colocated with the model provider

Keeping vectors inside Postgres rather than a separate vector DB simplifies operations: backup, restore, RLS, and joins all use the same database.

Auth and Row-Level Security

Supabase Auth issues JWTs with the user ID in the sub claim. Postgres policies reference auth.uid() to scope queries to the calling user. A typical policy on a chats table looks like:

create policy "users can read own chats"
  on chats for select
  using (user_id = auth.uid());

create policy "users can insert own chats"
  on chats for insert
  with check (user_id = auth.uid());

With RLS enabled, the same client SDK is safe to call directly from the browser; the server-side service role key is only needed for admin operations such as embedding ingestion or analytics.

pgvector and Embeddings

The pgvector extension stores high-dimensional vectors in a vector column type. The standard pattern for an AI app with a knowledge base is:

create extension if not exists vector;

create table documents (
  id bigserial primary key,
  user_id uuid references auth.users(id),
  content text,
  embedding vector(1536),
  created_at timestamptz default now()
);

create index on documents using ivfflat (embedding vector_cosine_ops) with (lists = 100);

For most workloads under 1M rows, IVFFlat is sufficient. Above that scale, HNSW (added to pgvector in 2023) trades index build time for faster query latency. As of May 2026, Supabase enables HNSW by default on new projects.

Edge Functions and the Vercel AI SDK

Supabase Edge Functions (Deno) are the right home for write-heavy AI orchestration: ingesting documents, computing embeddings, writing rows. They run close to the database and inherit RLS via a forwarded JWT.

Vercel Edge Functions are the right home for the chat handler. The Vercel AI SDK exposes streamText and streamObject helpers that pipe model output through React Server Components or Server-Sent Events to the client. A minimal handler:

import { streamText } from "ai";
import { openai } from "@ai-sdk/openai";

export async function POST(req: Request) {
  const { messages } = await req.json();
  const result = await streamText({
    model: openai("gpt-4o-mini"),
    messages,
  });
  return result.toDataStreamResponse();
}

For RAG, an upstream step queries pgvector, formats the top-K passages as context, and prepends them to the system prompt before calling streamText.

Cost Breakdown (May 2026)

For a small production AI app serving roughly 1,000 monthly active users with moderate chat usage, expected monthly costs are:

  • Supabase Pro: $25/month base, includes 8 GB database, 250 GB egress
  • Vercel Pro: $20/user/month, includes 1 TB bandwidth and 1M function invocations
  • OpenAI GPT-4o mini: roughly $0.30 per active user per month at typical chat volumes
  • Embeddings (text-embedding-3-small): roughly $0.02 per 1M tokens of corpus

For an internal tool at this scale, total infrastructure plus model cost typically lands between $400 and $700/month. Larger usage tiers introduce overage charges on Supabase storage and egress, which are the most common reasons teams shard the vector workload off to a dedicated store like Pinecone.

When to Stay on This Stack vs Move

The Supabase + Vercel stack is a strong fit when the team values TypeScript end-to-end, Postgres as the single source of truth, and deployment via Git. It becomes a constraint when the workload demands sub-50ms vector lookups at billions-of-vector scale (consider Pinecone or Weaviate), heavy GPU inference (consider Modal, Replicate, or self-hosted), or multi-region active-active write workloads (Supabase reads scale to read replicas, but writes remain single-primary as of May 2026).

Editor's Note: We shipped a Supabase + Vercel AI assistant for a small B2B SaaS in Q1 2026 that indexed roughly 12,000 help-centre articles into pgvector and exposed a chat surface to logged-in customers. Total monthly cost stabilised at around $480 across Supabase Pro, Vercel Pro, OpenAI GPT-4o mini, and embedding spend. The honest caveat is index tuning: query latency was 350ms p95 on the default IVFFlat index and dropped to 90ms only after switching to HNSW and warming the index in a scheduled Edge Function. Expect to spend a day on retrieval tuning before the latency feels right.

Written & reviewed by Rafal Fila · Last updated:

Tools Mentioned

Related Guides

comparison

Keystroke vs n8n in 2026: Agent-Built TypeScript vs the Visual Canvas

Keystroke, launched in July 2026 by Y Combinator W24 company Sprint Labs, is a code-first automation platform where AI coding agents write workflows as TypeScript in the user's repository. n8n, founded in 2019, is the most widely deployed source-available visual workflow platform, with 200,000+ users and a $2.5 billion valuation. This comparison covers the agent-authored versus canvas building models, durable execution, licensing (Elastic License 2.0 vs the Sustainable Use License), verified July 2026 pricing including Keystroke's usage metering, and the maturity gap between a days-old platform and an established ecosystem.

comparison

QuantumBPM vs Camunda 2026: Single-Binary Challenger vs the BPMN Incumbent

QuantumBPM (launched 2026, Coroid s.r.o., Slovakia) packages a BPMN 2.0 runtime and DMN 1.5 decision engine into one Go binary backed by Temporal and PostgreSQL. Camunda (Berlin, founded 2013) is the category incumbent: Camunda 7 (Apache 2.0, in maintenance) and the Zeebe-based Camunda 8 platform. This comparison covers product structure, architecture, DMN TCK conformance with recording dates, deployment, pricing, and vendor maturity, verified July 2026.

case-study

Migrating 23 Make Scenarios to Self-Hosted n8n: a 3-Week Breakdown

Anonymized retrospective of a DTC ecommerce brand migrating 23 Make scenarios to a self-hosted n8n instance over three weeks. Tooling cost dropped from $348/month on Make Teams to roughly $12/month on a Hetzner VPS, but credential and webhook recreation consumed about 40% of total project time.

Related Rankings

Common Questions

What should teams do now that Relay.app is shutting down?

Relay.app announced on 16 July 2026 that it is shutting down. Free accounts and all their data are permanently deleted after 15 August 2026 at 23:59 PT, and paid accounts after 14 September 2026 at 23:59 PT, with paying customers keeping full access at no charge until that date. Export the workspace archive well before the deadline, because generation can take up to 24 hours and the emailed download link expires after 48; for the human-in-the-loop workflows Relay.app was usually bought for, Zapier and n8n are the only platforms evaluated here where a reviewer can edit an AI draft mid-run without custom development.

How much does Keystroke cost in 2026?

Keystroke offers three tiers as of July 2026: Hobby (free forever, with $1/month of included usage credit), Pro ($20/month, including $20/month of usage credit), and Organization (custom pricing with SSO, RBAC, and audit logs). Usage is metered on every tier: $0.01 per agent or workflow run, $0.005 per empty poll, $0.007 per web search, roughly $0.067 per hour of sandbox compute, and a 1.1x markup on AI model calls unless you bring your own API keys.

What is Keystroke?

Keystroke is a code-first workflow automation and AI agent platform, launched July 13, 2026 by Y Combinator-backed Sprint Labs, that positions itself as an n8n alternative built for AI coding agents. Workflows are written as typed TypeScript in the user's own repository, usually by agents such as Claude Code, Cursor, or Codex, and deployed to Keystroke's managed cloud or self-hosted under the source-available Elastic License 2.0.

Is Keystroke worth it in 2026?

Keystroke earns a provisional 6.5/10 in its July 2026 open alpha: the agent-native TypeScript model is genuinely differentiated and the free Hobby tier makes it safe to trial, but the platform is pre-1.0 (npm at v0.1.98, public repository published July 13, 2026), has no third-party production track record, and its Elastic License 2.0 restricts offering it as a hosted service. Worth trialing for teams that build through coding agents; too young for production-critical workflows.