Supabase: where your data lives

Row-level security and tenant scoping.

Your library's data lives in a Supabase Postgres database.

What's stored

  • Books, copies, loans, holds, bookmarks
  • Patrons, families
  • Settings, custom genres, custom topics
  • Sales leads
  • Email log
  • All transaction history

Multi-tenant scoping

Each library is a tenant. Every row in tenant-scoped tables has a library_id pointing to the library. Row-Level Security (RLS) ensures one library's queries can only see their own data.

Data residency

Currently: US (Supabase's default region). Available regions: EU, Asia-Pacific, etc.

If you need EU data residency (GDPR), contact us to migrate.

Backups

Daily automated backups. Retained for 7 days on Starter/Community, 30 days on Custom. Restore from any backup point.

Direct database access

For Custom plans, you can request direct PostgreSQL access. Read-only by default. Useful for custom integrations or BI tools.

Schema

The full schema is in supabase/migrations/. Migration files document every change.

Patron-facing privacy

Patrons see only their own data via Row-Level Security. They cannot query other patrons' loan history even if they figured out a database connection — RLS blocks it.

Export

  • Per-library data export: Settings → Export
  • Includes books, patrons, loans, holds, email log
  • Format: JSON or CSV
Still stuck? Email hello@tryshelfwise.comand we'll get back within one business day.