Getting Started

Framework Quickstarts

Use Supabase with NuxtJS

Learn how to create a Supabase project, add some sample data to your database, and query the data from a NuxtJS app.

1

Set up a Supabase project with sample data

Create a new project in the Supabase Dashboard.

After your project is ready, create a table in your Supabase database using the SQL Editor in the Dashboard. Use the following SQL statement to create a countries table with some sample data.

Editor
-- Create the table
create table countries (
id serial primary key,
name varchar(255) not null
);

-- Insert some sample data into the table
insert into countries (name) values ('United States');
insert into countries (name) values ('Canada');
insert into countries (name) values ('Mexico');
2

Create a NuxtJS app

Create a Nuxt.js app using the npx nuxi command.

Terminal
npx nuxi@latest init my-app
3

Install the Supabase client library

The fastest way to get started is to use the supabase-js client library which provides a convenient interface for working with Supabase from a NuxtJS app.

Navigate to the NuxtJS app and install supabase-js.

Terminal
cd my-app && npm install @supabase/supabase-js
4

Query data from the app

In src/App.vue, create a Supabase client using your Project URL and public API (anon) key.

Replace the existing content in your src/App.vue file with the following code.

src/App.vue
<script setup>
import { createClient } from '@supabase/supabase-js'
const supabase = createClient('https://<project>.supabase.co', '<your-anon-key>')
const countries = ref([])

async function getCountries() {
const { data } = await supabase.from('countries').select()
countries.value = data
}

onMounted(() => {
getCountries()
})
</script>

<template>
<ul>
<li v-for="country in countries" :key="country.id">{{ country.name }}</li>
</ul>
</template>
5

Start the app

Start the app, navigate to http://localhost:3000 in the browser, open the browser console, and you should see the list of countries.

Terminal
npm run dev

We only collect analytics essential to ensuring smooth operation of our services.

Learn more