PostgreSQL vs Supabase

# Supabase is Postgres plus a platform. Here is which part is which.

PostgreSQL is the database. Supabase is a hosted platform built around it: every project gets a Postgres database, with an API layer, sign-in, file storage, realtime and edge functions around it. So the question is rarely Postgres or Supabase; it is how much of the platform your app uses. Lathe runs the Postgres part, and sign-in that supabase-js keeps working with, on a dedicated machine of your own for a flat price. [Start free - 14 days, no card needed ](https://app.lathe.live/login)[From $15 a month → ](https://lathe.live/pricing)

## What is Postgres, and what is the platform. Plain Postgres Tables, SQL, indexes, row-level security, roles, extensions such as pgvector, and pg_dump. All of it works the same on any PostgreSQL server, because it is PostgreSQL. The API layer Supabase generates a REST and GraphQL API from your schema, so a front end can query without a server of its own. Without it, your app talks to Postgres through a driver or an ORM, which is how most server-side apps already work. Sign-in Supabase Auth keeps the users in an auth schema of the same database. Lathe's sign-in is built on the same open-source server, so supabase-js sign-in calls keep working against it. Storage, realtime and functions File storage, change feeds over websockets and edge functions are platform services, not Postgres. Lathe does not offer them as managed services; your own app on the same machine can do the work they did. The shape of the bill Supabase bills a subscription plus usage past what the plan includes: users, disk, egress and compute (the Supabase alternative guide has the current numbers). Lathe bills the machine, $15 to $89 a month, with storage and 20 TB of traffic included. When Supabase is the better choice When the front end queries the database directly through the generated API, or when realtime, storage and edge functions do real work in your app. Rebuilding those costs more than a smaller bill saves.

## Good for

- Deciding whether you need the platform or only the database
- An app that talks to Postgres through an ORM and uses supabase-js only for sign-in
- Moving the database off Supabase and keeping row-level security
- Explaining to a teammate what Supabase adds to Postgres

## Questions

**Is Supabase just PostgreSQL? **

No. Every Supabase project has a real PostgreSQL database, and the platform adds an API layer, sign-in, storage, realtime and functions around it. The database part is standard Postgres and moves with pg_dump.

**Can I use supabase-js with plain Postgres? **

For sign-in, yes, against Lathe's Auth URL and anon key. For queries, supabase-js talks to the generated API rather than to Postgres, so without that layer your server queries Postgres with a normal driver.

**Does row-level security need Supabase? **

No. It is a PostgreSQL feature. What changes is who sets the user for each request: the API layer did it from the token, and without it your app sets it once per request.

**How do I move from Supabase to plain Postgres? **

pg_dump from the Supabase database, pg_restore into the new server, change the connection string. The Supabase alternative guide walks through the sign-in and the app as well.

Every number on this page comes from the [pricing page ](https://lathe.live/pricing)'s facts. [Previous Leave Supabase and keep supabase-js for sign-in ](https://docs.lathe.live/guides/supabase-js-compatible)[Next A Neon alternative that never scales to zero ](https://docs.lathe.live/guides/neon-alternative)

## Related

- [Supabase alternative: one machine, one flat bill ](https://docs.lathe.live/guides/supabase-alternative)

Your app, Postgres and sign-in on one dedicated machine, one flat price from $15 a month, no price per user. What changes, what you give up, and the move.
- [Connect to PostgreSQL ](https://docs.lathe.live/postgres)

Connect to Lathe PostgreSQL with TLS, pooling and network allowlists from an app, terminal or database client.

[All guides ](https://docs.lathe.live/guides)

## The Postgres part, and the sign-in, from $15 a month.

Live about 5 minutes on average after checkout. Cancel any time; Mini starts with a 14-day free trial. [Start free - 14 days, no card needed ](https://app.lathe.live/login)
