📖 Scenario: You want to start a new Supabase project on your local machine to develop and test your database and API before deploying it to the cloud.
🎯 Goal: Set up the Supabase CLI locally, initialize a new Supabase project, and configure it for local development.
📋 What You'll Learn
Install Supabase CLI
Initialize a new Supabase project folder
Configure the Supabase project with default settings
Start the local Supabase development environment
💡 Why This Matters
🌍 Real World
Developers use the Supabase CLI to build and test backend services locally before deploying to production, speeding up development and reducing errors.
💼 Career
Knowing how to set up and use Supabase CLI is valuable for backend developers, cloud engineers, and full-stack developers working with modern open-source backend platforms.
Progress0 / 4 steps
1
Install Supabase CLI
Install the Supabase CLI by running the command npm install -g supabase in your terminal.
Supabase
Hint
Use npm to install the Supabase CLI globally so you can use the supabase command anywhere.
2
Initialize a new Supabase project
Create a new folder called supabase-project and run supabase init inside it to initialize the Supabase project.
Supabase
Hint
Use mkdir to create the folder, cd to enter it, then run supabase init to set up the project.
3
Configure Supabase project
Inside the supabase-project folder, open the supabase/config.toml file and set the project_id to local for local development.
Supabase
Hint
Open the config file and set project_id to local so Supabase knows this is a local project.
4
Start local Supabase development environment
Run supabase start inside the supabase-project folder to launch the local Supabase services.
Supabase
Hint
Use supabase start to run the local database and API services for development.
Practice
(1/5)
1. What is the primary purpose of the Supabase CLI?
easy
A. To manage your Supabase backend from the terminal
B. To create frontend user interfaces
C. To host websites on Supabase servers
D. To write SQL queries directly in the browser
Solution
Step 1: Understand Supabase CLI role
The Supabase CLI is designed to help developers manage backend services like databases and authentication from the command line.
Step 2: Differentiate from frontend and hosting tools
It does not create frontend interfaces or host websites; those are separate tasks.
Final Answer:
To manage your Supabase backend from the terminal -> Option A
Quick Check:
Supabase CLI = backend management [OK]
Hint: CLI means command line tool for backend tasks [OK]
Common Mistakes:
Confusing CLI with frontend tools
Thinking CLI hosts websites
Assuming CLI runs in browser
2. Which command correctly installs the Supabase CLI using npm?
easy
A. npm install -g supabase
B. npm supabase install
C. install npm supabase
D. npm get supabase
Solution
Step 1: Recall npm global install syntax
To install a package globally with npm, the command is npm install -g package-name.
Step 2: Match correct command for Supabase CLI
The correct command is npm install -g supabase. Other options do not follow npm syntax.
Final Answer:
npm install -g supabase -> Option A
Quick Check:
npm install -g = global install [OK]
Hint: npm install -g for global CLI tools [OK]
Common Mistakes:
Using wrong npm command order
Missing -g for global install
Typing commands in wrong sequence
3. What will happen if you run supabase start after initializing a project?
medium
A. It deploys your project to the cloud
B. It starts a local Supabase environment for testing
C. It deletes your local database
D. It opens the Supabase dashboard in a browser
Solution
Step 1: Understand the supabase start command
This command launches a local Supabase environment including database and API for development and testing.
Step 2: Differentiate from deployment and other actions
It does not deploy to cloud, delete data, or open dashboards automatically.
Final Answer:
It starts a local Supabase environment for testing -> Option B
Quick Check:
supabase start = local test environment [OK]
Hint: start means launch local environment, not deploy [OK]
Common Mistakes:
Confusing start with deploy
Expecting browser dashboard to open
Thinking it deletes data
4. You run supabase init but get an error saying 'Project already initialized'. What should you do?
medium
A. Delete the existing supabase folder before reinitializing
B. Reinstall the Supabase CLI
C. Run supabase start instead to launch the environment
D. Ignore the error and continue working
Solution
Step 1: Understand the meaning of the error
The error means the project was already set up with supabase init before, so reinitializing is unnecessary.
Step 2: Choose the correct next step
Instead of reinitializing, you should start the local environment with supabase start.
Final Answer:
Run supabase start instead to launch the environment -> Option C
Quick Check:
Already initialized? Use start to run [OK]
Hint: If initialized, start instead of init again [OK]
Common Mistakes:
Trying to init repeatedly
Deleting files unnecessarily
Reinstalling CLI without cause
5. You want to test changes locally and then deploy them. Which sequence of commands is correct?
hard
A. supabase start -> supabase init -> make changes -> supabase db push
B. supabase db push -> supabase start -> make changes -> supabase init
C. supabase stop -> supabase db push -> make changes -> supabase start
D. supabase init -> supabase start -> make changes -> supabase stop -> supabase db push
Solution
Step 1: Initialize project before starting environment
You must run supabase init once to set up the project files before starting the local environment.
Step 2: Start environment, make changes, then stop and deploy
After supabase start, you test changes locally. Then stop the environment with supabase stop before deploying with supabase db push.
Final Answer:
supabase init -> supabase start -> make changes -> supabase stop -> supabase db push -> Option D
Quick Check:
Init, start, test, stop, db push = correct flow [OK]
Hint: Init once, start to test, stop before db push [OK]
Common Mistakes:
Deploying before testing locally
Starting before initializing
Skipping stop before deploy
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.