Supabase is an open source Firebase alternative.
Start your project with a Postgres database, Authentication, instant APIs, Edge Functions, Realtime subscriptions, Storage, and Vector embeddings.
Start your projectDocumentation
Works seamlessly with 20+ frameworks
Database
Every project is a full Postgres database, the world's most trusted relational database.
Authentication
Add user sign ups and logins, securing your data with Row Level Security.
Edge Functions
Easily write custom code without deploying or scaling servers.
Storage Store, organize, and serve large files, from videos to images.
Realtime Build multiplayer experiences with realtime data synchronization.
Vector Integrate your favorite ML-models to store, index and search vector embeddings. • OpenAI • Hugging Face
Join the community
Supported by a network of early advocates, contributors, and champions.
"@supabase is lit. It took me less than 10 minutes to setup, the DX is just amazing."
Start building in seconds
Kickstart your next project with templates built by us and our community.
View all examplesOfficial GitHub library
Stripe Subscriptions Starter
Next.js Starter
An open-source AI chatbot app template built with Next.js, the Vercel AI SDK, OpenAI, and Supabase.
LangChain + Next.js Starter
Flutter User Management
Expo React Native Starter
Instant APIs that do the hard work for you
We introspect your database to provide APIs instantly. Stop building repetitive CRUD endpoints and focus on your product.
TypeScript support Type definitions built directly from your database schemaExplore more about /docs/client/generating-typesExplore moreInstall from CDN Use Supabase in the browser without a build processExplore more about /docs/client/initializingExplore moreLocal emulator Develop locally and push to production when you're readyExplore more about /docs/guides/self-hostingExplore moreSupabase CLI Manage Supabase projects from your local machineExplore more about https://github.com/supabase/cliExplore more
import { createClient } from '@supabase/supabase-js'
// Initialize const supabaseUrl = 'https://chat-room.supabase.co'const supabaseKey = 'public-anon-key'const supabase = createClient(supabaseUrl, supabaseKey)
// Create a new userconst { user, error } = await supabase.auth.signUp({
email: 'example@email.com',
password: 'example-password',
})
import { createClient } from '@supabase/supabase-js'
// Initialize const supabaseUrl = 'https://chat-room.supabase.co'const supabaseKey = 'public-anon-key'const supabase = createClient(supabaseUrl, supabaseKey)
// Get notified of all new chat messagesconst realtime = supabase
.from('messages')
.on('INSERT', message => {
console.log('New message!', message)
})
.subscribe()
import { createClient } from '@supabase/supabase-js'
// Initialize const supabaseUrl = 'https://chat-room.supabase.co'const supabaseKey = 'public-anon-key'const supabase = createClient(supabaseUrl, supabaseKey)
// Create a new bucketconst { data, error } = await supabase
.storage
.createBucket('avatars', {
public: false,
allowedMimeTypes: ['image/png'],
fileSizeLimit: 1024 })
import { createClient } from '@supabase/supabase-js'
// Initialize const supabaseUrl = 'https://chat-room.supabase.co'const supabaseKey = 'public-anon-key'const supabase = createClient(supabaseUrl, supabaseKey)
// Invoke a functionconst { data, error } = await supabase.functions.invoke('hello', {
body: { foo: 'bar' }
})
import { createClient } from '@supabase/supabase-js'
// Initialize const supabaseUrl = 'https://chat-room.supabase.co'const supabaseKey = 'public-anon-key'const supabase = createClient(supabaseUrl, supabaseKey)
// Create a new chat roomconst newRoom = await supabase
.from('rooms')
.insert({ name: 'Supabase Fan Club', public: true })
// Get public rooms and their messagesconst publicRooms = await supabase
.from('rooms')
.select(`
name,
messages ( text )
`)
.eq('public', true)
// Update multiple usersconst updatedUsers = await supabase
.from('users')
.eq('account_type', 'paid')
.update({ highlight_color: 'gold' })
Build your app without leaving the dashboard
Manage your data with the familiarity of a spreadsheet
You don’t have to be a database expert to use Supabase. Our table editor makes Postgres easy to use, even for non-techies. You can do everything right in our dashboard.
Explore Table View about /databaseExplore Table View
In-built SQL editor for when you need greater control
Write, save, and execute SQL queries directly on our dashboard, with templates to save you time. Run common queries and even build applications using our growing list of templates.
Explore SQL Editor about /databaseExplore SQL Editor
User management as straight-forward as it can be
Easily manage your users with Supabase Auth, with email logins, magic links, and third-party logins. Create complex access policies with SQL rules to fit your unique business needs.