--- id: vercel title: 'Vercel' description: The fastest way to get up and running with an application that uses Supabase is with Vercel's Next.js starter and Supabase integration. --- This guide steps through using Vercel's dashboard to create a Next.js project integrated with Supabase. To further streamline the process, we will be using the Next.js starter template, which can be automatically forked to a new GitHub repo, without leaving the dashboard! If you don’t have a Vercel account, create one [here](https://vercel.com/signup). ## Step 1: Create a Supabase project This guide could use an existing Supabase project, but to create the `todo` demo from scratch, navigate to [Supabase](https://app.supabase.com/), click `Sign In` and authenticate with GitHub to login or register a new account. From the Supabase dashboard, click `New project` and select an organization. > Note: You may need to create an organization first. Give your project a `name`, `password`, select a `region` close to your potential users and click `Create new project`.  Supabase will take a couple of minutes to configure the infrastructure. Once this is finished, navigate to `SQL Editor` from the sidebar menu and click `New query`. This will create a new SQL snippet called "New Query". Copy and paste the following and click `Run`. ```sql create table todos ( id bigint generated by default as identity primary key, title text, is_complete boolean default false, created_at timestamp with time zone default timezone('utc'::text, now()) not null ); alter table todos enable row level security; create policy "Anyone can view todos" on todos for select using (true); create policy "Anyone can add new todos" on todos for insert with check (true); insert into todos(title) values ('Create Supabase project'), ('Create Vercel project'), ('Install Supabase integration'); ``` This will create a new todos table, enable row level security, add policies for selecting and inserting data, and add some example rows. > Note: To simplify this example, we are allowing anyone to `select` and `insert` rows on the `todos` table. Usually, these actions would be locked down to only allow logged in users to perform them. Check out [this video](https://www.youtube.com/watch?v=Ow_Uzedfohk) to learn more about Row Level Security and policies. ## Step 2: Create Vercel project From your [Vercel dashboard](https://vercel.com/dashboard), click `New Project`.  Under the `Clone Template` menu, click `Next.js`.  In the `Create Git Repository` section, click `GitHub`, select your username under `GIT SCOPE`, enter a name for your project, choose whether you want your repo `private` or `public`, and click `Create`.  This will create a new GitHub repository, clone and commit the Next.js starter project, then build and deploy your new project to Vercel. Once you have been redirected to the `Congratulations` screen, click `Go to Dashboard`. Navigate to `Settings`, `Integrations`, then click `Browse Marketplace`. Search for `Supabase` and click the Supabase integration.  Click `Add Integration`. Select your account from the `Vercel Scope` dropdown, and click `CONTINUE`.  Choose `Specific Projects` and select your new Vercel project from the dropdown, and click `Add Integration`.  From the Supabase popup, select your new Vercel Project and Supabase project from the dropdowns.  ## Step 3: Clone GitHub repo The fastest way to get this project running locally is to clone the repo that Vercel created for us. Navigate back to the Vercel project `Overview` page, and click `View Git Repository`.  This will open the GitHub repo. From here, click the arrow next to `Code` and copy the url from the dropdown.  Open a terminal window or CLI and run the following command to clone the GitHub repo. ```bash git clone your-repo-url.git ``` Open the project in your code editor of choice, and update the contents of `pages/index.js` to the following: ```jsx import styles from '../styles/Home.module.css' export default function Home() { return
{todo.title}
))}