Supabase is an open source Firebase alternative. Start your project with a Postgres database, Authentication, instant APIs, Edge Functions, Realtime subscriptions, and Storage.
Trusted by fast-growing companies worldwide
Use one or all. Best of breed products. Integrated as a platform.
Every project is a full Postgres database, the world's most trusted relational database.
Add user sign ups and logins, securing your data with Row Level Security.
Store, organize, and serve large files. Handle videos, images, and documents.
Every project is a full Postgres database, the world's most trusted relational database. No restrictions or limitations.
Automated backups with point-in-time recovery
Write custom SQL functions and triggers
Use popular Postgres extensions out of the box
// Create tables and insert data
CREATE TABLE products (
id serial PRIMARY KEY,
name text,
price decimal
);
// Query your data
SELECT * FROM products
WHERE price > 100
ORDER BY name;
// Real-time subscriptions
supabase
.from('products')
.select('*')
.subscribe()
Add user sign ups and logins, securing your data with Row Level Security. Multiple auth providers supported out of the box.
Postgres policies protect your data at the database level
Social logins, phone auth, and magic links
SAML 2.0 and custom SSO compatibility
// Sign up a new user
const { user, error } = await supabase.auth
.signUp({
email: 'example@email.com',
password: 'example-password'
})
// Sign in with social provider
const { user, error } = await supabase.auth
.signIn({
provider: 'github'
})
// Access control with RLS
CREATE POLICY "Users can only access their own data"
ON todos FOR ALL
USING (auth.uid() = user_id);
Start for free, pay as you grow. No hidden fees.
Perfect for side projects
For production applications
For large-scale applications
Powerful tools and APIs for modern application development
// Initialize the Supabase client
const supabase = createClient(
'YOUR_SUPABASE_URL',
'YOUR_SUPABASE_ANON_KEY'
)
// Fetch data from your database
const { data, error } = await supabase
.from('posts')
.select('*')
.order('created_at', { ascending: false })
// Real-time subscriptions
const subscription = supabase
.from('comments')
.on('INSERT', payload => {
console.log('New comment:', payload)
})
.subscribe()
Auto-generated types for your database schema and real-time subscriptions.
Auto-generated REST and GraphQL APIs based on your database schema.
Row Level Security and JWT authentication out of the box.
Join the community and see what developers are saying about Supabase
Working with @supabase has been one of the best dev experiences I've had lately. Incredibly easy to set up, great documentation, and so many fewer hoops to jump through than the competition.
Holy crap. @supabase is absolutely incredible. Most elegant backend as a service I've ever used. This is a dream.
I'm not sure what magic @supabase is using but we've migrated @happyteamsdotio database to @supabase from @heroku and it's much much faster at half the cost.
There are a lot of indie hackers building in public, but it's rare to see a startup shipping as consistently and transparently as Supabase.
Contributing to open-source projects and seeing merged PRs gives enormous happiness! Special thanks to @supabase, for giving this opportunity by staying open-source and being junior-friendly✌🏼
Using @supabase I'm really pleased on the power of postgres (and sql in general). Despite being a bit dubious about the whole backend as a service thing I have to say I really don't miss anything.
Join thousands of developers building scalable applications with Supabase. Start for free, scale as you grow.