Launch your First App Quickly with Supabase & FlutterFlow – The FlutSup Stack

modern A workspace with a laptop and an external monitor display lines of programming code.

As an aspiring full-stack developer, the ability to seamlessly connect the backend with the frontend is essential. FlutterFlow and Supabase are two powerful tools that make this integration easier. FlutterFlow is a low-code platform for visually building cross-platform apps using Flutter, with the flexibility to add custom Dart code. Supabase, an open-source backend-as-a-service, offers a Postgres database, authentication, real-time updates, and storage—positioning itself as a Firebase alternative. With built-in support for Supabase, FlutterFlow makes full-stack development more accessible and efficient.

This blog assumes that you already have a FlutterFlow and Supabase account setup with some tables. If not, here is some documentation to help you get started:

Setting Up Integration

Assuming you're all set up, let’s walk through how to integrate a Supabase project into FlutterFlow. In my example, I have two tables: one called users (Figure 1) and another called orders (Figure 2).

Users table from my Supabase project which contains three columns
Figure 1.
Orders table from my Supabase project which contains four columns.
Figure 2.

Our first goal is to gather the Project URL and the anon API key, as these are required to connect Supabase with FlutterFlow. To do this:

  1. In your Supabase project, navigate to Project Settings > Data API to find your Project URL (Figure 3).
  2. While still in Project Settings, go to API Keys to find your anon key (Figure 4).
Project URL required for FlutterFlow integration highlighted in red.
Figure 3.
Project anon API key required for FlutterFlow integration highlighted in red.
Figure 4.

Once you’ve taken note of both the Project URL and the anon key, switch over to your FlutterFlow project (figure 5).

  1. Go to your Project Settings and select the Supabase Integration tab.
  2. Enable Supabase integration.
  3. Enter the Project URL and anon API key you retrieved earlier.
Image showing FlutterFlow with Supabase enabled.
Figure 5.

If everything is entered correctly, you should see your Supabase tables or views appear (Figure 6), meaning the connection has been successfully established.

Supabase tables appearing in FlutterFlow after entering project URL and anon API key.
Figure 6.

How to Display Data Using the Supabase Integration

The next step is to display data from your Supabase tables in your FlutterFlow app.

Start by inserting a Column widget into your page, and within it, add a RichText widget. This RichText element will eventually show the table data.

To fetch data from Supabase:

  1. Click on the Column widget and set up a Backend Query using the Supabase Query option (Figure 7).
  2. From here, select the table you want to query, and choose whether to return a list of rows or a single row. You can also configure limits, filters, and sorting options (Figure 8).
  3. Click Confirm to apply the query.
 Configuration required to perform a Supabase query
Figure 7

Menu to retrieve data from a desired Supabase table
Figure 8.

Now that your query is set up, populate the RichText widget (figure 9):

  1. Click the RichText element to open its properties.
  2. Use different Text Spans within the RichText widget to display specific columns from your Supabase table.
Accessing the Supabase table columns to populate the RichText widget
Figure 9

By assigning different spans to different fields (e.g., username, email), you'll see the data render dynamically (Figure 10). Run the app in test mode to confirm that the integration and data fetching are working correctly (Figure 11).

RichText widget assigned to Supabase table columns
Figure 10

Results of Supabase Integration.
Figure 11.

Conclusion

Integrating Supabase with FlutterFlow unlocks powerful capabilities for building full-stack apps without writing boilerplate code. This walkthrough demonstrated how to connect a Supabase backend, display table data, and set up dynamic widgets in FlutterFlow. With this foundation, you can explore more advanced features such as user authentication, data filtering, and full CRUD operations—all from within a visual interface. Whether you're a beginner or refining your app-building workflow, the FlutSup stack offers a modern, efficient approach to full-stack development.