> ## Documentation Index
> Fetch the complete documentation index at: https://012e27a-docs-2.manicule.dev/llms.txt
> Use this file to discover all available pages before exploring further.
> For every page in one file, fetch https://012e27a-docs-2.manicule.dev/llms-full.txt (large).
> To search and read these docs as tools, connect the MCP server at https://012e27a-docs-2.manicule.dev/api/mcp.
> Every agent surface: https://012e27a-docs-2.manicule.dev/.well-known/llms-manifest.json

# Supabase Managed Postgres (/databases/supabase-postgres)

<!-- agent-signals: reading_time_min: 1 · est_tokens: 274 · updated: 2026-11-12 -->
Related: [Managed Databases & Storage](/databases/overview.md), [Cloudflare D1 (Edge SQLite)](/databases/cloudflare-d1.md), [Neon Serverless Postgres](/databases/neon-postgres.md), [Database Migrations & ORM Setup](/databases/migrations.md)

> Enterprise Postgres with auth, storage buckets, and realtime subscriptions.

**Supabase** provides a managed PostgreSQL database alongside authentication, file storage,
and realtime subscriptions.

## Capabilities

* **Auth integration**: Google, GitHub, and email/password flows.
* **Row Level Security**: enforce access rules at the database level.
* **Storage buckets**: upload and serve images, media, and documents.

```ts title="lib/supabase.ts"
import { createClient } from "@supabase/supabase-js";

export const supabase = createClient(
  process.env.NEXT_PUBLIC_SUPABASE_URL!,
  process.env.NEXT_PUBLIC_SUPABASE_ANON_KEY!,
);

export async function fetchOrders() {
  const { data, error } = await supabase
    .from("orders")
    .select("*, items(*)")
    .order("created_at", { ascending: false });

  if (error) throw error;
  return data;
}
```

<Warning title="Enable RLS on every table">Client-side queries run with the anon key. A table without Row Level Security is readable by
anyone with that key.</Warning>

Provision it from the [Supabase connector](/connectors/supabase).
