Documentation
Schemavo turns your ideas — a rough diagram or a plain-text description — into a production-ready PostgreSQL schema with tables, relationships, and Row Level Security policies, ready to deploy to Supabase.
What is Schemavo?
Schemavo is an AI-powered schema generator. You describe your data model either by uploading a class diagram / ERD image or by writing a few sentences, and the AI infers the tables, columns, foreign keys, indexes, and RLS policies your project needs.
The generated schema can be exported as JSON or — on the Pro plan — deployed directly to your Supabase project as a SQL migration.
Creating your first schema
- 1Choose an input method. On the Generator page, select Upload Diagram to upload an image, or Describe in Text to type a description.
- 2Provide your input. Upload a PNG/JPG class diagram or ERD, or type a description such as:
A blog with users, posts, comments, and tags. Users can follow each other. - 3Generate. Click Generate Schema. The AI streams results into the Tables, Relationships, and RLS Policies tabs in real time.
- 4Review and use. Switch tabs to review the output. Export as JSON or deploy directly to Supabase (Pro).
Understanding the output
auth.uid(), on both the Free and Pro plans.Input Methods
Schemavo accepts two types of input. Both produce the same structured output.
Text prompts
Write a natural-language description of your data model. Be specific about entities and how they relate.
Good prompt
An e-commerce platform with customers, products, orders, and order_items. Each order belongs to one customer and has many order_items. Each order_item references one product and has a quantity and unit_price. Add soft-delete on orders.
Vague prompt
A shop with users and stuff they buy.
Tips for better prompts:
- Name your entities explicitly (not just "users" — say "customers" if that's the intent)
- Mention key relationships ("orders belong to customers", "posts have many tags")
- Call out special columns you need (soft-delete, timestamps, slugs, status enums)
- Mention your domain — e-commerce, SaaS, social network — for richer inference
Diagram upload
Upload an image of a class diagram, Entity-Relationship Diagram (ERD), or Use Case diagram. The AI reads the visual structure and extracts entities, attributes, and relationships.
Supported formats
Schema Output
After generation, your schema is available in three views and can be exported.
Tables tab
Each table card shows the table name and column count. The full schema (with column names, types, constraints, indexes, and defaults) is included in the JSON export and Supabase deployment.
Relationships tab
Every foreign-key relationship is listed with the source table and column, the target table, and the join type. Many-to-many relationships are represented via auto-generated junction tables.
RLS Policies tab
Row Level Security policies control which rows a user can read, insert, update, or delete. Schemavo generates policies tied to auth.uid() so they work with Supabase Auth out of the box.
- Tables with an owner — a
user_idcolumn or a foreign key to your users — are private to that user. - Tables owned through a parent— a task that belongs to a project — follow the parent's owner, up to four levels deep. Junction tables follow the rows they link.
- Tables with no owner at all, such as a list of categories, are treated as shared reference data: signed-in users can read them, and only the service role can change them. Add your own insert, update and delete policies if users should edit them.
| Plan | Policies per table |
|---|---|
| Free | Full SELECT, INSERT, UPDATE, DELETE policies |
| Pro | Full SELECT, INSERT, UPDATE, DELETE policies |
Export as JSON
Available on all plans. The JSON export contains the full schema definition including tables, columns, relationships, indexes, and RLS policies — ready to be used in your own migration tooling or stored in version control.
Supabase Integration
Deploy your generated schema directly to a Supabase project as a SQL migration — no copy-pasting required. Free accounts get one deployment during Early Access; Pro is unlimited.
Connecting your Supabase project
- 1Open the deploy wizard. Click Deploy to Supabase on a project's page, or go to Profile → Push to Supabase → Open push wizard and pick a saved project.
- 2Enter your Project ID and a personal access token. The Project ID is in your Supabase dashboard under Project Settings → General → Project ID. Create a personal access token (it starts with
sbp_) under Account → Access Tokens. - 3Test the connection. Schemavo checks that the token can reach your project before anything runs.
Deploying a schema
After the connection test, the wizard shows the full SQL migration so you can review it — and copy it, if you want to run it yourself. Confirm to run it against your Supabase database.
CREATE TABLE IF NOT EXISTS statements, so re-deploying the same schema is safe and idempotent.Webhooks
Receive an HTTP POST to your endpoint whenever a key event occurs in Schemavo. Connect to Slack, n8n, Zapier, or any custom service.
Supported events
schema.generatedA schema generation completed successfully.project.createdA new project was saved.project.deletedA project was deleted.Payload format
Every webhook delivers a signed JSON payload via HTTP POST.
{
"event": "schema.generated",
"timestamp": "2026-05-24T10:00:00.000Z",
"data": {
"projectId": "proj_abc123",
"tableCount": 5,
"userId": "user_xyz"
}
}Each request includes an X-Schemavo-Signature header — an HMAC-SHA256 hash of the raw body signed with your webhook secret. Verify it to confirm the request came from Schemavo:
const crypto = require('crypto')
function verify(rawBody, signature, secret) {
const expected = crypto
.createHmac('sha256', secret)
.update(rawBody)
.digest('hex')
return crypto.timingSafeEqual(
Buffer.from(expected),
Buffer.from(signature)
)
}Integrations set up before we were renamed from SchemaForge can keep reading X-SchemaForge-Signature — it carries the same value.
Connecting to Slack / Zapier / n8n
Slack
Create an Incoming Webhook in your Slack app settings. Paste the Slack webhook URL into Schemavo → Profile → Integrations → Webhooks. Use schema.generated as the trigger event.
Zapier
Create a Zap with the Webhooks by Zapier trigger (Catch Hook). Copy the Zapier-provided URL into Schemavo webhooks. Map data.projectId to downstream actions.
n8n
Add a Webhook node in n8n, set the method to POST, and paste the n8n URL into Schemavo. Use the HTTP Request node to forward or transform the payload.
Billing
Free vs Pro
| Feature | Free | Pro |
|---|---|---|
| Schema generations | 3 lifetime | Unlimited |
| Diagram + text input | ✓ | ✓ |
| Export as JSON | ✓ | ✓ |
| Full CRUD RLS policies | ✓ | ✓ |
| AI Requirements Notes | — | ✓ |
| Supabase deployment | 1 (Early Access) | Unlimited |
| Webhook integrations | — | ✓ |
| Priority support | — | ✓ |
Pro is $9 / month or $79 / year (save 27%). Payments are processed by Lemon Squeezy — we never store your card details.
Cancelling and resuming
You can cancel your subscription at any time from Profile → Integrations → Billing & invoices → Manage billing.
Cancelling does not remove access immediately. You keep Pro features until the end of your current billing period. After that, your account moves to the Free plan.
You can resume a cancelled subscription at any time before the period ends — no new charge is made until your next renewal date.
Invoices
Invoices are generated after each billing cycle and available under Profile → Integrations → Billing & invoices. You can download each invoice as a PDF directly from the app.
Frequently Asked Questions
Is my data stored?
Yes, in your account. Each generation is saved as a project with the generated schema, the text you typed, and the diagram you uploaded, so you can reopen it later. Your text and diagrams are also sent to OpenAI to generate the schema. Deleting a project deletes its saved diagram.
What AI model is used?
Schemavo uses OpenAI models. Free and Pro accounts currently use the same model, so every schema gets the same quality. Pro adds unlimited generations, unlimited Supabase deployments, AI requirements notes for diagrams, and webhooks.
Can I edit the generated schema?
Not inside Schemavo yet — you can change a project’s title and description, but not its tables. Download the schema as JSON to edit it in any text editor or your own migration tooling. Editing tables and columns in the app is on the roadmap.
What happens to my projects if I downgrade from Pro to Free?
Your existing projects are preserved. You lose access to Pro-only features (unlimited generations and Supabase deployments, AI requirements notes, webhooks) but can still view and export JSON from your saved projects.
Where are my Supabase credentials kept?
Deploying uses your Project ID and a Supabase personal access token. The token is sent over HTTPS for that deployment only and is never stored on Schemavo’s servers. If you tick “Remember credentials in this browser”, it is saved in your browser’s local storage on that device. You can revoke the token at any time from your Supabase account.
Can I use Schemavo with databases other than Supabase?
The tables, relationships and indexes are standard PostgreSQL. The RLS policies use auth.uid() from Supabase Auth, so they need Supabase (or an equivalent auth.uid() function) to work as written. One-click deployment is Supabase-only; you can download the schema as JSON, or copy the full SQL from the review step of the deploy wizard.