Post 1.2 — The 8 Core Pillars of Supabase

Supabase is often introduced as "Postgres with extras," but it's worth seeing the full picture of what those extras actually are before we start building with them. Here are the 8 pillars, what each one does, and when you'd actually reach for it in a real application.

1. Postgres Database

The foundation everything else sits on. A full, dedicated Postgres instance per project — not a shared or limited version. You get:

  • A visual Table Editor (spreadsheet-style interface)
  • A full SQL Editor with saved snippets
  • Support for Postgres extensions (pgvector, pg_cron, postgis, and more)
  • Daily automatic backups (point-in-time recovery on paid plans)

Use it for: literally storing and modeling your application's data — users, posts, orders, products, anything relational.

2. Auto-Generated Data APIs

The moment you create a table, Supabase exposes it as a REST API automatically, powered by a tool called PostgREST. A GraphQL API is also available (via the pg_graphql extension), though it's opt-in per project rather than enabled by default.

Use it for: basic CRUD operations without writing a single API route yourself. Create a table → it's queryable over HTTP within seconds.

3. Authentication (Auth)

A complete user-management system, supporting:

  • Email/password login
  • Magic links (passwordless email login)
  • OTP (one-time codes via SMS/email)
  • OAuth (Google, GitHub, and other providers)
  • Multi-factor authentication (MFA)

Auth integrates directly with the database through Row Level Security (RLS) — Postgres-level rules like "a user can only see their own rows," enforced by the database itself, not just your application code.

Use it for: signup/login flows, protected routes, and permission systems.

4. Storage

An S3-compatible file storage system for images, videos, PDFs, and other files.

  • Public and private buckets
  • Access rules written using the same policy language as database tables
  • On-the-fly image transformation (resizing, optimization)

Use it for: profile pictures, document uploads, media galleries — anything that isn't structured row data.

5. Realtime

A system for pushing live updates to connected clients, made of three distinct tools:

  • Postgres Changes — subscribe to inserts/updates/deletes on a table
  • Broadcast — send low-latency, ephemeral messages between clients (supports binary payloads)
  • Presence — track who's currently active in a shared space (e.g., "3 people viewing this document")

Use it for: chat apps, live dashboards, collaborative tools, live notifications.

6. Edge Functions

Server-side TypeScript functions (built on Deno) that run close to your users globally. Used for logic that must not run in the browser — calling a third-party API with a secret key, processing a payment webhook, sending an email.

Use it for: anything that needs a secret key, custom server logic, or a webhook receiver, without standing up a separate backend server.

7. Vector & AI Tooling

Because Postgres supports the pgvector extension, Supabase doubles as a vector database. You can store embeddings alongside your normal relational data and run similarity search directly in SQL.

Use it for: semantic search, recommendation systems, and Retrieval-Augmented Generation (RAG) pipelines for AI features.

8. Studio (Dashboard) and Developer Tooling

The web dashboard where you manage every pillar above — tables, auth users, storage buckets, function logs, and more. It also includes a Unified Logs view (one searchable feed across every service, with live tail and filtering), plus integrations like Grafana Cloud for metrics.

Use it for: day-to-day project management, debugging, and monitoring — the control room for everything else on this list.

How These Pillars Work Together

A typical feature in a real app usually touches more than one pillar at once. Example — a "user uploads a profile picture" feature:

  1. Auth confirms who the logged-in user is
  2. Storage holds the uploaded file, with an RLS policy allowing only that user to upload to their own folder
  3. Database stores the file's URL in a profiles table
  4. Realtime (optionally) pushes the updated avatar to other connected clients instantly

This is the pattern you'll see repeatedly through this course: the pillars are not isolated products — they're designed to compose.


Next up — Post 1.3: the current state of the Supabase platform in 2026 — the new API key system, pg_graphql becoming opt-in, and other recent changes you need to know before building anything.

No comments:

Post a Comment

Post 1.4 — Next.js App Router Setup + Connecting Supabase

This post covers project setup, Supabase package installation, environment variables, and creating separate Supabase clients for the browser...