# Supabase

Used by the [build playbook](https://www.ihatereading.lol/build.md) on ihatereading.lol.

### Supabase

Kind: database

Official links:

- [Supabase Dashboard](https://supabase.com/dashboard)
- [API keys](https://supabase.com/docs/guides/api/api-keys)
- [Next.js guide](https://supabase.com/docs/guides/getting-started/quickstarts/nextjs)
- [Server-side Next.js](https://supabase.com/docs/guides/auth/server-side/nextjs)
- [Row Level Security](https://supabase.com/docs/guides/auth/row-level-security)
- [JS client](https://supabase.com/docs/reference/javascript/introduction)
- [@supabase/ssr npm](https://www.npmjs.com/package/@supabase/ssr)

npm packages:

- `@supabase/supabase-js`
- `@supabase/ssr`

API keys:

- `NEXT_PUBLIC_SUPABASE_URL`: Supabase Dashboard → Project Settings → API → Project URL
- `NEXT_PUBLIC_SUPABASE_ANON_KEY`: Same page → Project API keys → anon / public
- `SUPABASE_SERVICE_ROLE_KEY`: Same page → service_role (secret). Server only. Bypasses RLS.

Setup:

```
1. https://supabase.com/dashboard → New project
2. Project Settings → API → copy URL, anon key, service_role
3. SQL Editor: create listings, bids, pending_checkouts + indexes
4. RLS: public SELECT on live listings; writes only with service_role in Route Handlers
```


All platforms: https://www.ihatereading.lol/build/platforms.md
