# Supabase Client Libraries

Supabase client for Next.js

## Installation

Install this block:

```bash
npx shadcn@latest add @supabase/supabase-client-nextjs
```

## Folder structure

- `lib/`
  - `supabase/`
    - `client.ts`
    - `middleware.ts`
    - `server.ts`

Full source: https://supabase.com/library/r/supabase-client-nextjs.json

## Usage

This block installs a Supabase client for connecting your Next.js project to Supabase. It's designed for use with the App Router and fully supports server-side rendering (SSR).

If you've already set up your Supabase client—either using the `npx create-next-app -e with-supabase` template or another method—you can continue using your existing setup.

### Getting started

After installing the block, you'll have the following environment variables in your `.env.local` file:

```env
NEXT_PUBLIC_SUPABASE_URL=
NEXT_PUBLIC_SUPABASE_PUBLISHABLE_KEY=
```

- If you're using supabase.com, you can find these values in the [Connect modal](https://supabase.com/dashboard/project/_?showConnect=true\&connectTab=frameworks\&framework=nextjs) under App Frameworks or in your project's [API settings](https://supabase.com/dashboard/project/_/settings/api).

- If you're using a local instance of Supabase, you can find these values by running `supabase start` or `supabase status` (if you already have it running).

Warning: This Supabase client is built for SSR with the Next.js App Router. If you're building a React SPA,
use the [React SPA client](https://supabase.com/library/docs/react-router/client.md) instead.

## Further reading

- [Generating TypeScript types for your client](https://supabase.com/docs/guides/api/rest/generating-types)
