Go to supabase.com and click the "Start your project" button in the top-right corner. You can sign up with either a GitHub account or an email address. GitHub authentication is the fastest option — click the GitHub button, authorize the application, and you are logged in. If you prefer email, enter your address, create a password, and verify your email inbox.
Once logged in, you land on the Supabase Dashboard. This is the central hub where you manage projects, view organization settings, and monitor usage.
Creating Your First Project
Follow these steps to create a new project:
Click the "New project" button on the dashboard.
Enter a project name — something descriptive like "supabase-tutorial".
Set a database password. This password is for the postgres role, the superuser of your database. Store it in a password manager — you need it for direct database connections.
Choose a region closest to your users. Select the region that minimizes latency for your target audience. For example, choose us-east-1 for North America, eu-west-2 for Europe.
Select the free tier pricing plan.
Click "Create new project".
Your project takes about two minutes to provision. Supabase spins up a dedicated PostgreSQL database instance, deploys the API services, and runs initial migrations. You see a loading screen with progress indicators while this happens.
Dashboard Walkthrough
After the project is ready, explore the main sections of the dashboard:
Table Editor — A spreadsheet-like interface for viewing and editing database tables. You can create tables, add columns, insert rows, and browse data without writing SQL. It is useful for quick data inspection and manual edits.
SQL Editor — A full-featured SQL query editor with syntax highlighting and auto-complete. Run any SQL command against your database: CREATE TABLE, SELECT, INSERT, UPDATE, DELETE, or manage extensions. This is where you write migrations and test queries.
API Settings — Displays your project URL, anon key, and service_role key. You also find the auto-generated REST API documentation here, listing all available endpoints for your tables.
Authentication — Manage users, configure auth providers, set redirect URLs, and customize email templates. The Users tab lists everyone who has signed up, along with their provider, created date, and last sign-in time.
Storage — Create buckets for file uploads, set public or private access, and configure RLS policies for each bucket. Files are stored in an S3-compatible backend.
Realtime — Enable or disable realtime replication for specific tables. When enabled, any insert, update, or delete on the table is broadcast to subscribed clients over WebSockets.
Getting Your API Keys
From the dashboard, go to Project Settings > API. You see three important values:
Project URL — The base URL for all API requests, e.g., https://abcdefghijklm.supabase.co. Every Supabase client points to this URL.
anon public key — The client-safe API key used in browser code. It is safe to expose because RLS policies enforce data access restrictions. The anon key is a JWT token signed by the service.
service_role key — The admin-level key that bypasses all RLS policies. Never expose this in client-side code. Use it only in trusted server environments like edge functions, cron jobs, or database migrations.
Free Tier Limits
The Supabase free tier includes 500 MB of database size, 50 MB of file storage, 50,000 monthly active users, 2 GB bandwidth, and 2 million edge function invocations per month. Projects on the free tier pause after one week of inactivity (you can unpause them from the dashboard). These limits are generous enough for learning, prototyping, and even small production applications.
Understanding Project Settings
The Settings page has several tabs. General settings show project name, region, and creation date. Database settings display connection parameters including the direct PostgreSQL connection string (port 5432) and the connection pooler string (port 6543) for serverless environments. API settings show the keys and URL you need for client configuration.
Billing
The free plan is sufficient for this tutorial. Supabase also offers Pro ($25/month) and Team ($599/month) plans with higher limits, priority support, and features like branching, point-in-time recovery, and read replicas. All plans include unlimited API requests and realtime connections.
Exercise
Go to supabase.com, create an account, and start a new project. Choose a name and region, then wait for the database to provision. Navigate to Project Settings > API and copy your project URL and anon key. Paste them into your local project's .env file and app.js. Run the HTML file in your browser and confirm the Supabase client initializes without errors.