Open source · Supabase native

Turn any Supabase project into a complete admin platform

Supasheet reads your Postgres schema and renders a full internal tool — auto-CRUD, dashboards, charts, reports, RBAC, audit logs, and collaboration. No code per table.

0.supasheet.app / crm / dashboard
MRR
$148.2k+12.4%
Open deals
294+8.1%
Win rate
34.7%-1.2%
Revenue trendarea
Pipeline by stagebar
MRR last 12 weekstrend
Active userstrend
Avg deal sizetrend
SQL is your API

Your database is the source of truth - including the UI.

Define a table, annotate it with a JSON comment, and Supasheet generates the forms, list views, filters, and detail pages. Change the schema, change the UI.

  • Schema-driven
    Postgres types, defaults, and check constraints flow straight into the UI.
  • Metadata, not config
    Form layout lives in a JSON comment on the table - no extra config files.
  • No regenerate step
    New columns appear immediately. Migrations are your release pipeline.
migrations/20260520_create_deals.sql
sql
create table crm.deals (
  id uuid primary key default gen_random_uuid(),
  name text not null,
  amount numeric(12,2),
  stage crm.deal_stage not null default 'lead',
  close_date date,
  owner_id uuid references auth.users
);

comment on table crm.deals is '{
  "sections": [
    { "title": "Deal", "icon": "Briefcase",
      "items": ["name","amount","stage"] },
    { "title": "Timeline", "icon": "Calendar",
      "items": ["close_date","owner_id"] }
  ]
}';
crm.deals - new record
generated from schema
Dealsection
text
Acme Corp renewal
numeric
$48,000.00
enum
Negotiation
enum
High
Timelinesection
date
2026-06-04
uuid → users
LPLena Park
CancelCreate deal
Forms

Every table is a finished form.

Supasheet introspects your columns, types, defaults, and check constraints to render a complete create/update form - sectioned layouts, foreign-key pickers, Zod validation that mirrors the database. Zero frontend code per table.

  • · JSON in a `COMMENT ON TABLE` drives sections, icons, and field order.
  • · Foreign keys become searchable async-loaded pickers automatically.
  • · Constraints become inline validation - errors surface before round-trip.
Learn about auto-CRUD
Fields

Strongly-typed inputs from Postgres domains.

Type a column as `supasheet.RATING` and get a star input. Type it as `supasheet.COLOR` and get a colour picker. The right component renders automatically - constraints live in the database, not the form code.

supasheet domains
6 built-in
supasheet.EMAILdomain
lena@acme.com
validated email input
supasheet.URLdomain
https://acme.com
parsed url input
supasheet.RATINGdomain
check (0..5)
supasheet.PERCENTAGEdomain
68%
check (0..100)
supasheet.DURATIONdomain
02h 15m
time interval
supasheet.COLORdomain
#F43F5E
hex color picker
Six built-in domains
Email, URL, rating, percentage, duration, and colour — strongly-typed, validated in Postgres.
Validated in Postgres
Check constraints enforce bounds (e.g. RATING between 0 and 5) before any insert.
UI maps automatically
No per-form configuration to pick the right input - the domain decides.
Learn about fields
Table views

The same data, however your users prefer to see it.

Every table gets six interchangeable views. The Grid is a spreadsheet of cells you edit in place. Pick a date column for a Calendar, an enum for Kanban, or a parent_id for a Tree.

crm.deals - grid
Search deals
stage in (Discovery, Proposal, Negotiation)
New deal
name
amount
stage
owner
close_date
Acme Corp renewal
48,000
Negotiation
Lena P.
2026-06-04
Globex Pilot
12,500
Discovery
Rohan S.
2026-05-28
Initech Expansion
96,200
Proposal
Mei C.
2026-07-12
Hooli Lighthouse
185,000
Negotiation
Lena P.
2026-06-18
Pied Piper Q3
24,000
Won
Asha D.
2026-05-02
Soylent SaaS
7,400
Discovery
Mei C.
2026-07-30
Wonka Confections
32,500
Proposal
Rohan S.
2026-08-11
Dashboard

A per-schema dashboard, composed from SQL views.

Mark a Postgres view as `dashboard_widget` in its comment and it appears as a tile on the schema dashboard - KPI cards, sparklines, full charts, all permission-scoped to the user's role. No widget builder, no drag-and-drop, no JSON config beyond the view comment.

0.supasheet.app / crm / dashboard
MRR
$148.2k+12.4%
Open deals
294+8.1%
Win rate
34.7%-1.2%
Revenue trendarea
Pipeline by stagebar
MRR last 12 weekstrend
Active userstrend
Avg deal sizetrend
SQL-defined widgets
A view is a widget. Aggregate, join, window - any SQL is fair game.
Permission-scoped
Users only see widgets whose underlying view they can SELECT.
Per-schema
Each schema gets its own dashboard - perfect for multi-tenant or multi-domain apps.
Learn about dashboards
Chart

Recharts, from a Postgres view.

Write a view that returns the shape Recharts expects, add a `chart` hint to the comment, and Supasheet renders an interactive chart with axis controls, legend toggling, and series colours. Five chart types out of the box.

crm - dashboard widgets
May 2026 · live
Revenue (k)area
Pipeline by stagebar
Source mixpie
Activity vs priorline
areabarlinepieradar
Series per column
Every numeric column becomes its own series with a distinct colour.
Time-series ready
`date_trunc` and window functions for trends over any interval.
Filter-aware
Charts inherit the filter bar of the underlying table or view.
Learn about charts
Report

Any view is a runnable, exportable report.

Tag a Postgres view as `report` and it appears in the Reports section with CSV and JSON export, full filter/sort/pagination, and permissions inherited from the underlying view. No separate report definition language.

crm.deals
Search deals
stage in (Discovery, Proposal, Negotiation)
amount > 10000
New deal
nameamountstageownerclose_date
Acme Corp renewal$48,000NegotiationLena P.Jun 04
Globex Pilot$12,500DiscoveryRohan S.May 28
Initech Expansion$96,200ProposalMei C.Jul 12
Hooli Lighthouse$185,000NegotiationLena P.Jun 18
Pied Piper Q3$24,000WonAsha D.May 02
Soylent SaaS$7,400DiscoveryMei C.Jul 30
Full Postgres
CTEs, window functions, recursive queries - everything Postgres supports.
One-click export
CSV or JSON export of the currently-filtered result set.
Familiar toolbar
Filters and pagination inherit from the standard data-table.
Learn about reports
RBAC

Typed permissions, enforced by RLS.

100+ typed permissions are first-class Postgres enums. Every UI action checks them client-side; every query is enforced server-side by Row Level Security. Two layers, one source of truth.

permissions matrix
rls-enforced
resource
action
user
manager
admin
x-admin
crm.deals
select
crm.deals
insert
crm.deals
update
crm.deals
delete
crm.deals
comment
finance.invoices
select
finance.invoices
update
supasheet.users
invite
Typed enums
`schema.table:action` enum values - no string typos in policies or hooks.
Role-based
Assign permissions to roles, roles to users - standard RBAC at the DB layer.
RLS-enforced
UI permission checks are a convenience; RLS is the real gate.
Learn about RBAC
Audit log

Immutable history for every audited table.

Drop an `audit_trigger()` on a table and every insert, update, and delete is logged with the user, role, operation, old data, new data, and changed fields. Built for SOX, HIPAA, GDPR.

supasheet.audit_logs
today · 482 events
12:42:08UPDATEcrm.dealsd_8a2…Lena Parkadmin
stageProposalNegotiationamount$42,000$48,000
12:38:51INSERTcrm.contactsc_3f1…Rohan Sharmauser
emailpriya@globex.io
11:55:14DELETEcrm.activitiesa_910…Asha Deviadmin
11:22:09UPDATEcrm.dealsd_77c…Mei Chenuser
owner_idAsha DeviMei Chen
One-line opt-in
`CREATE TRIGGER ... EXECUTE FUNCTION audit_trigger()` and you are done.
Full diffs
Old and new JSON snapshots plus the list of changed fields.
Failure tracking
Errors logged with code and message for after-the-fact debugging.
Learn about audit logs
File storage

A full bucket browser, permissioned by the same RBAC.

Browse, upload, rename, move, and preview files across Supabase Storage buckets - public, per-user private, or schema-scoped, each enforced by RLS policies that mirror your existing table permissions.

0.supasheet.app / storage / crm
1 selected · 7 items
crmdeals2026-Q2
Search files
New folder
Upload
namesize
  • acme-corp
  • globex-pilot
  • acme-contract-v3.pdf124 KB
  • discovery-call.mp418.4 MB
  • logo-acme.svg14 KB
  • pricing-2026.xlsx88 KB
  • requirements.md6 KB
Three bucket modes
Public assets, per-user private, or scoped to a schema.
Drag-and-drop
Form fields typed as `FILE` or `AVATAR` accept uploads inline.
In-browser preview
Images, PDFs, video, and documents render in a side sheet.
Folder navigation
Breadcrumbs, multi-select, rename, and move - like a real file manager.
Learn about file storage
Comment

A single comment thread per record.

Users with the `<schema>.<table>:comment` permission can post comments on individual records. One flat, chronological thread per record - no nested replies. Stored in `supasheet.comments`, rendered inline in the detail view, gated by the same RBAC as the data.

  • · Scoped to schema, table, and record id - portable across resources.
  • · Permission-gated by the same RBAC that gates row access.
  • · Real-time updates via TanStack Query invalidations.
Learn about comments
record: crm.deals / d_8a2…
3 comments
LP
Lena Park12m ago

Moved to negotiation - legal is reviewing the redlines today. Owner change rolled to @mei.

MC
Mei Chen7m ago

Pulled the latest contract version into /contracts/acme-2026.pdf.

RS
Rohan Sharma3m ago

Heads up: stakeholder ask shifted the close date by a week. Updated the record.

ADAdd a comment…⌘↩
And the rest

Building blocks that ship with every install.

Features that live inside the screens above as toolbars, dialogs, dropdowns, and admin pages - not destinations of their own. Tap any tile for the full breakdown.

Every feature has a dedicated pageEach links to a longer write-up with the SQL, the JSON metadata, and the permission rules in one place.
Browse all features
Multi-schema

One Supabase project. As many apps as you have schemas.

Each Postgres schema becomes its own app inside Supasheet — its own dashboard, its own tables, its own permissions, its own audit trail. Switch between CRM, HR, and Finance from a single workspace, all powered by the same database.

  • A schema is an app
    Group related tables into a schema; Supasheet treats it as a self-contained module with its own routes.
  • Isolated by RLS
    Each schema can have its own roles and policies — finance data never leaks into the CRM module.
  • Shared meta layer
    Users, roles, comments, and audit logs live in one place. Add a new module without re-doing auth.
Learn about multi-schema
schema switcher
one schema · one app
CRMcrm
modules
  • CRMcrm12 tables
  • HRhr18 tables
  • Financefinance22 tables
  • Inventoryinventory14 tables
  • Manufacturingmanufacturing19 tables
  • Hostelhostel9 tables
Built for every team

From CRM to manufacturing - start from a template.

Twelve real-world example schemas you can install in one click and edit in SQL. Each ships as a single migration with tables, views, seed data, and example dashboards. Or bring your own - Supasheet works with any Postgres schema.

CRMSales & pipeline

Manage your sales pipeline with deals on a drag-and-drop kanban board grouped by stage, activities on a timeline, and revenue dashboards driven by SQL views.

HRPeople operations

Run your people operations on Postgres: employees, departments, roles, leave requests, performance reviews, candidates, and offers - all with audit trails on every change.

FinanceAccounting

A finance back office on Supabase: chart of accounts, invoices, bills, payments, and expense approvals. Every mutation is captured in audit logs for compliance.

InventoryStock & warehouses

Track stock across warehouses, manage purchase orders and shipments, and get low-stock alerts from materialised views.

ManufacturingProduction planning

Plan and track production: work orders by stage, bill of materials per product, capacity by work centre, and quality results per batch.

ProcurementVendor management

Manage suppliers, run RFQs and quotes side-by-side, track contracts, and schedule maintenance for owned assets.

QualityQMS

A lightweight QMS: define inspection plans, record results, manage non-conformances and corrective actions, and run audits with full traceability.

LMSLearning

A learning back office: courses with modular content, enrolments per learner, assignment submissions, and grade reports.

HostelAccommodation

Run a hostel or hotel: room inventory, bookings on a calendar, guest profiles, and maintenance tickets with priority.

E-commerce storeCommerce

A commerce back office for a Supabase-powered storefront: product catalog, orders pipeline, inventory levels, and customer reviews.

Blog & CMSContent

A simple CMS for a Supabase-backed marketing site: posts with rich text, categories, authors with social links, and moderated comments.

Help deskSupport

A project and ticket tracker: projects with tasks on a kanban, ticket queues, SLA tracking, and completion reports.

Bring your own schemaTemplates are starting points. Supasheet introspects any Postgres schema you point it at - existing or new.
Browse all use cases
Get started

Ship your internal tool this week.

Connect Supabase, install the Supasheet schema, design dashboards in minutes. Your data never leaves your project.

No credit cardSelf-host or managedMIT licensed