Bird
Raised Fist0
Supabasecloud~5 mins

Supabase architecture (Postgres, Auth, Storage, Realtime, Edge Functions) - Cheat Sheet & Quick Revision

Choose your learning style10 modes available
Recall & Review
beginner
What is the role of Postgres in Supabase architecture?
Postgres is the main database in Supabase. It stores all your app data in tables and supports SQL queries. It is reliable and open-source.
Click to reveal answer
beginner
How does Supabase Auth help your application?
Supabase Auth manages user sign-up, sign-in, and security. It handles passwords, social logins, and tokens to keep users safe.
Click to reveal answer
beginner
What is Supabase Storage used for?
Storage in Supabase lets you save and serve files like images, videos, or documents. It works like a simple cloud folder for your app.
Click to reveal answer
intermediate
Explain the purpose of Supabase Realtime.
Realtime allows your app to get live updates from the database. When data changes, your app sees it instantly without refreshing.
Click to reveal answer
intermediate
What are Edge Functions in Supabase?
Edge Functions are small pieces of code that run close to users. They let you add custom backend logic quickly and securely without managing servers.
Click to reveal answer
Which component in Supabase handles user login and security?
AStorage
BAuth
CPostgres
DRealtime
What type of database does Supabase use?
APostgres
BMongoDB
CSQLite
DMySQL
Supabase Storage is best used for storing:
ASQL queries
BUser credentials
CApp files like images and videos
DRealtime data streams
What does Supabase Realtime provide?
AFile storage
BDatabase backups
CUser authentication
DLive updates when data changes
Edge Functions in Supabase are:
AServerless backend code running near users
BUser login pages
CDatabase tables
DFile upload tools
Describe the main components of Supabase architecture and their roles.
Think about how each part helps build a full app backend.
You got /5 concepts.
    How does Supabase Realtime improve user experience in an app?
    Imagine chatting or live feeds without delays.
    You got /3 concepts.

      Practice

      (1/5)
      1. Which Supabase component is responsible for managing user sign-ups and logins?
      easy
      A. Storage
      B. Postgres
      C. Realtime
      D. Auth

      Solution

      1. Step 1: Understand Supabase components

        Supabase has several parts: Postgres for data, Auth for users, Storage for files, Realtime for live updates, and Edge Functions for custom code.
      2. Step 2: Identify user management part

        The component that handles user sign-ups, logins, and authentication is called Auth.
      3. Final Answer:

        Auth -> Option D
      4. Quick Check:

        User management = Auth [OK]
      Hint: Auth means user login and signup system [OK]
      Common Mistakes:
      • Confusing Postgres with user management
      • Thinking Storage handles users
      • Mixing Realtime with authentication
      2. Which of the following is the correct way to initialize Supabase client in JavaScript?
      easy
      A. const supabase = Supabase.create('url', 'anon_key');
      B. const supabase = createClient('url', 'anon_key');
      C. const supabase = supabaseClient('url', 'anon_key');
      D. const supabase = new Supabase('url', 'anon_key');

      Solution

      1. Step 1: Recall Supabase client initialization syntax

        Supabase uses the function createClient(url, key) to create a client instance.
      2. Step 2: Match correct syntax

        const supabase = createClient('url', 'anon_key'); matches the exact syntax: const supabase = createClient('url', 'anon_key');
      3. Final Answer:

        const supabase = createClient('url', 'anon_key'); -> Option B
      4. Quick Check:

        Use createClient() to initialize Supabase [OK]
      Hint: Use createClient() function to start Supabase [OK]
      Common Mistakes:
      • Using new keyword with Supabase
      • Calling wrong function names
      • Mixing class and function syntax
      3. Given this code snippet, what will be logged if a new row is inserted into the 'messages' table?
      const subscription = supabase
        .from('messages')
        .on('INSERT', payload => {
          console.log('New message:', payload.new.text);
        })
        .subscribe();
      medium
      A. New message: [text of inserted row]
      B. New message: undefined
      C. Error: .subscribe() is not a function
      D. No output, subscription does not listen to INSERT

      Solution

      1. Step 1: Understand Realtime subscription

        The code listens for INSERT events on the 'messages' table and logs the new row's text field.
      2. Step 2: Analyze the callback behavior

        When a new row is inserted, payload.new contains the new row data, so payload.new.text is the inserted message text.
      3. Final Answer:

        New message: [text of inserted row] -> Option A
      4. Quick Check:

        Realtime INSERT event logs new row text [OK]
      Hint: INSERT event payload.new has new row data [OK]
      Common Mistakes:
      • Expecting payload.old instead of payload.new
      • Thinking .subscribe() is invalid
      • Assuming no output on INSERT
      4. You wrote this Edge Function to upload a file to Supabase Storage but it fails with a permission error. What is the likely cause?
      export async function POST(request) {
        const supabase = createClient(SUPABASE_URL, SUPABASE_SERVICE_ROLE_KEY);
        const data = await request.formData();
        const file = data.get('file');
        const { error } = await supabase.storage.from('avatars').upload(file.name, file);
        if (error) return new Response(error.message, { status: 400 });
        return new Response('Upload successful');
      }
      medium
      A. Storage upload requires user session, missing auth
      B. The 'avatars' bucket does not exist
      C. File object is not properly extracted from formData
      D. Using SERVICE_ROLE_KEY in Edge Function is insecure and disabled

      Solution

      1. Step 1: Check authentication context for storage upload

        Storage upload requires a user session or proper auth context; using service role key alone in Edge Functions does not provide user session.
      2. Step 2: Identify missing user session

        Without user session, storage upload is denied due to permission error.
      3. Final Answer:

        Storage upload requires user session, missing auth -> Option A
      4. Quick Check:

        Storage upload needs user auth session [OK]
      Hint: Storage upload needs user session, not just service key [OK]
      Common Mistakes:
      • Assuming service role key works for storage upload
      • Ignoring bucket existence
      • Not checking file extraction from formData
      5. You want to build a chat app using Supabase that updates messages live and stores user avatars. Which combination of Supabase components should you use?
      hard
      A. Auth for messages, Edge Functions for avatars, Storage for live updates
      B. Realtime for messages and avatars, Postgres for user login
      C. Postgres for messages, Storage for avatars, Realtime for live updates, Auth for user login
      D. Storage for messages, Postgres for avatars, Edge Functions for live updates

      Solution

      1. Step 1: Identify storage needs

        Messages are structured data best stored in Postgres; avatars are files stored in Storage.
      2. Step 2: Identify live update and user management

        Realtime provides live updates for messages; Auth manages user login.
      3. Final Answer:

        Postgres for messages, Storage for avatars, Realtime for live updates, Auth for user login -> Option C
      4. Quick Check:

        Use Postgres, Storage, Realtime, Auth together [OK]
      Hint: Messages in Postgres, avatars in Storage, live with Realtime [OK]
      Common Mistakes:
      • Mixing Storage with live updates
      • Using Realtime for file storage
      • Confusing Auth with data storage
      Recommended

      Ready to prove it?

      Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

      10 questions~5 mineasy hard