supasheet
FeaturesUse casesPricingDocs
DocsGet started
Open source · Supabase-native

Turn any Supabase project into a real business platform.

One SQL migration in, an ERP, CRM, or admin platform out - auto-CRUD, six data views, dashboards, RBAC, RLS, audit logs, and file storage, all enforced natively by Supabase.

Get startedStar on GitHub
Self-host free, MIT licensedHosted: 7-day free trial on your first projectYour data stays in your Supabase
yourproject.supasheet.app / launches / kanban
Sound on
01SQL 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, views, and filter presets live 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
1create table crm.deals (2  id uuid primary key default gen_random_uuid(),3  name text not null,4  amount numeric(12,2),5  stage crm.deal_stage not null default 'lead',6  close_date date,7  owner_id uuid references auth.users8);9 10comment on table crm.deals is '{11  "sections": [12    { "title": "Deal", "icon": "Briefcase",13      "items": ["name","amount","stage"] },14    { "title": "Timeline", "icon": "Calendar",15      "items": ["close_date","owner_id"] }16  ]17}';
02Hosted platform

Write the SQL yourself, or click it together.

The hosted platform connects to your Supabase account, installs Supasheet into a project in one click, and gives you a visual builder for every SQL surface - tables, views, charts, dashboards, RLS policies, triggers, and more. Your app goes live at your-project.supasheet.app.

01
Connect Supabase
Sign in with your Supabase account. The platform lists your projects - the database always stays yours.
02
Install in one click
Migrations, edge functions, and API exposure run automatically. Optional demo data to explore with.
03
Build visually
Design tables, metadata, charts, dashboards, and permissions in the UI builder - it writes the SQL for you.
tablesviewsmaterialized viewschartsdashboardsreportstypesRLS policiestriggersrolesusersstorage
Get startedSee pricingFor hosted plans, contact info@supasheet.app.
03Built 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 schema in your Supabase project.

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.

CompaniesContactsDeals+2
HRPeople operations

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

EmployeesDepartmentsLeave+2
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.

InvoicesBillsExpenses+2
InventoryStock & warehouses

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

WarehousesProductsStock+2
ManufacturingProduction planning

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

Work ordersBOMsWork centres+2
ProcurementVendor management

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

SuppliersRequisitionsRFQs+2
QualityQMS

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

InspectionsNCRsCAPAs+2
LMSLearning

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

CoursesModulesLessons+2
HostelAccommodation

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

RoomsBookingsGuests+2
E-commerce storeCommerce

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

ProductsOrdersCustomers+2
Blog & CMSContent

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

PostsCategoriesAuthors+2
Help deskSupport

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

ProjectsTasksTickets+2
Bring your own schemaTemplates are starting points. Supasheet introspects any schema in your Supabase project - existing or new.
Browse all use cases
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
04Forms

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.
  • · Conditional fields: visible, required, or read-only based on other values.
  • · Foreign keys become searchable pickers with cascading filters and auto-filled fields.
  • · Quick-create dialogs, record duplication, and inline child forms for detail tables.
Learn about auto-CRUD
05Fields

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
EMAILURLTELRICH_TEXTFILEAVATARRATINGPERCENTAGEDURATIONCOLOR
Ten built-in domains
From validated emails and URLs to star ratings, rich text, file uploads, and colour pickers.
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
06Table 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 - and edit any record from a side sheet without leaving the view.

crm.deals - grid
7 rows · cell amount/3 · ready
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
07Dashboard

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, progress meters, and tables, all permission-scoped to the user's role. No widget builder, no drag-and-drop, no JSON config beyond the view comment.

fygtkjpcxbhorxnuovoq.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
Six widget types
Four KPI card layouts and two table layouts - a view comment picks which.
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
08Chart

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
09Report

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
6 rows · 4 filters
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
10Import & export

A million rows in, the filtered set out.

Drop a CSV on any resource, map columns to fields, and Supasheet handles type coercion, foreign-key lookups, and validation - errors surface row-by-row. Going the other way, every table and report exports the currently-filtered rows to CSV or JSON.

  • · Matching column names auto-map; everything else is a dropdown.
  • · Resolve foreign keys by email or natural key - no uuids in your CSV.
  • · Batched inserts that respect RLS and constraints; bad rows are flagged with the exact reason.
Learn about imports
crm.deals - import
deals-may.csv · 482 rows
deals-may.csv·482 rows · 6 columnspreview
csv column
schema column
type
status
Deal Name
name
text
mapped
Value (USD)
amount
numeric
mapped
Stage
stage
enum
mapped
Close
close_date
date
mapped
Owner Email
owner_id
uuid → users
lookup
Source
-
-
skip
4 mapped, 1 lookup by email, 1 skippedImport 482 rows
ai
crm
Which open deals over $50k have had no activity this month?
3 deals match
namestageamount
Globex CorpNegotiation$86,000
InitechProposal$64,500
Acme IncProposal$52,000
Move all three back to the “Proposal” stage.
Mutation preview — nothing runs until you confirm
update crm.deals set stage = 'proposal'
where id in ($1, $2, $3);  -- 3 rows
ApplyDiscard
11AI chat

Ask your database. Approve before it writes.

Chat with your data in plain English and get answers as tables, numbers, or text. When you ask for a change, the AI shows the exact SQL as a mutation preview - nothing runs until you confirm, and RLS applies to every query it makes.

  • · Tabular answers render in the same data table as the rest of the app.
  • · Inserts, updates, and deletes always go through a preview-and-confirm step.
  • · Runs with the user's session - the AI can never see rows the user can't.
Learn about AI chat
12RBAC

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
Three built-in roles plus your own - assign permissions to roles, roles to users.
RLS-enforced
UI permission checks are a convenience; RLS is the real gate.
Learn about RBAC
13Audit 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
stageProposal→Negotiationamount$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 Devi→Mei 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.
Global and per-record
Browse the whole trail in Core, or the history of one record on its Audit tab.
Learn about audit logs
14File 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 permission-gated uploads, each enforced by RLS policies that mirror your existing table permissions.

fygtkjpcxbhorxnuovoq.supasheet.app / storage / crm
1 selected · 7 items
buckets
crmdeals2026-Q2
Search files
New folder
Upload
namesizelast modified
  • acme-corp-May 18, 2026 · 10:24
  • globex-pilot-May 16, 2026 · 09:11
  • acme-contract-v3.pdf124 KBMay 14, 2026 · 16:02
  • discovery-call.mp418.4 MBMay 12, 2026 · 11:48
  • logo-acme.svg14 KBMay 10, 2026 · 08:33
  • pricing-2026.xlsx88 KBMay 09, 2026 · 14:21
  • requirements.md6 KBMay 06, 2026 · 09:02
Three bucket modes
Public assets, per-user private, or permission-gated per table.
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
15Comment

A single comment thread per record.

Anyone whose role can `SELECT` a table can already post comments on its records - no separate permission to grant. 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.
  • · Gated by the same table-level SELECT grant that gates row access - nothing extra to configure.
  • · Works on any table with zero schema changes.
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…⌘↩
inbox
3 unread
  • New comment on crm.deals / Acme
    Mei Chen · 2m ago
  • SLA at risk on ticket #4821
    desk.tickets · 8m ago
  • Invoice INV-0432 uploaded
    finance.invoices · 21m ago
  • Leave request approved
    hr.leave_requests · 1h ago
  • Weekly report ready
    reports · 4h ago
16Notifications

An inbox for every user, driven by triggers.

Insert one notification row and fan it out to any set of recipients - by role, by permission, or by id - each with their own read and archive state. A bell in the header shows the unread count; clicking a notification routes straight to the record.

  • · Emit from any table with a trigger - new comment, SLA breach, approval needed.
  • · Resolve recipients with `get_users_with_role` or `get_users_with_permission`.
  • · Title, body, link, and arbitrary JSON metadata per notification.
Learn about notifications
17And 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.

Saved filters

Save filter, sort, and column presets per resource. Share them with the team.

Authentication & MFA

Magic link, OAuth, and TOTP MFA wired into every Supasheet app.

Templates

Pre-built example schemas for CRM, HR, finance, inventory, and more.

SQL editor

Run arbitrary SQL with query caching and parameter binding.

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
18Multi-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, so 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
Pricing

Free forever, or fully managed.

Self-host Supasheet for free and own the whole stack, or connect your Supabase project and get the hosted frontend plus the visual UI builder - your first project comes with a 7-day free trial, then contact us at info@supasheet.app to keep it running.

Free100% free & open source
$0forever

Run Supasheet on your own infrastructure. You own all your data; nothing leaves your servers.

  • Every Supasheet feature included
  • Bring your own Supabase project
  • Self-host the Supasheet app anywhere
  • No usage limits, no seat limits
  • Community support on GitHub
  • MIT license, fork and modify freely
Get it on GitHub
Most popular
HostedFree for 7 days on your first project
Contact us

Connect your own Supabase project and we host the Supasheet frontend for you, with the visual UI builder on top.

  • 7-day free trial on your first project
  • Connect your own Supabase project
  • Hosted Supasheet frontend (no DevOps)
  • Visual UI builder
  • All premium features included
  • Automatic updates
  • Custom domain support
  • Email support
Contact us
Need a full breakdown of what each plan includes?Compare all plans
Get started

Ship your next business app this week.

Connect Supabase, install the Supasheet schema, and design dashboards, CRMs, or ERPs in minutes.

Get startedStar on GitHub
No credit cardSelf-host or managedMIT licensed
supasheet

The open-source Supabase-native application platform. Your schema is the app.

Product
  • Features
  • Use cases
  • Pricing
  • Get started
Features
  • Auto-generated CRUD
  • Multi-view data
  • Saved filters
  • Bulk import
  • AI chat
  • Dashboards
Use cases
  • CRM
  • HR
  • Finance
  • Inventory
  • Manufacturing
  • Procurement
Company
  • About
  • GitHub
  • Privacy
  • Terms
  • Refunds
All systems operational© 2026 Supasheet. MIT licensed.
built on supabase · postgres · react · tanstack · shadcn
Advertisement
Advertisement