Build in a weekendScale to millions

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.

Works seamlessly with 20+ frameworks

Join the community

Supported by a network of early advocates, contributors, and champions.

Start building in seconds

Kickstart your next project with templates built by us and our community.

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 schema

Explore more about /docs/client/generating-typesExplore more

Install from CDN

Use Supabase in the browser without a build process

Explore more about /docs/client/initializingExplore more

Local emulator

Develop locally and push to production when you're ready

Explore more about /docs/guides/self-hostingExplore more

Supabase CLI

Manage Supabase projects from your local machine

Explore 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 user
const { user, error } = await supabase.auth.signUp({
  email: '[email protected]',
  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 messages
const 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 bucket
const { 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 function
const { 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 room
const newRoom = await supabase
  .from('rooms')
  .insert({ name: 'Supabase Fan Club', public: true })
    
// Get public rooms and their messages
const publicRooms = await supabase
  .from('rooms')
  .select(`
    name,
    messages ( text )
  `)
  .eq('public', true)
  
// Update multiple users
const 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.

Explore Auth about /authExplore Auth

Build in a weekend, scale to millions