Getting Started

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

  1. 1Choose an input method. On the Generator page, select Upload Diagram to upload an image, or Describe in Text to type a description.
  2. 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.
  3. 3Generate. Click Generate Schema. The AI streams results into the Tables, Relationships, and RLS Policies tabs in real time.
  4. 4Review and use. Switch tabs to review the output. Export as JSON or deploy directly to Supabase (Pro).

Understanding the output

✓Tables: Lists every table the AI inferred with its name and column count. Columns include types, constraints, defaults, and indexes.
✓Relationships: Shows all foreign-key links between tables: which column on which table points where, and the cardinality (one-to-many, many-to-many via junction table, etc.).
✓RLS Policies: Row Level Security policies generated per table — four full CRUD policies (SELECT, INSERT, UPDATE, DELETE) tied to auth.uid(), on both the Free and Pro plans.
Input Methods

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

PNGJPG / JPEGWEBPClass diagramsERDsUML diagrams
Pro tip: Use tools like draw.io, Lucidchart, or Mermaid to draw your diagram, export as PNG, then upload. The cleaner the diagram, the more accurate the result.
On the Pro plan, you can add AI Requirements Notes alongside your diagram — extra context like naming conventions, domain rules, or FK constraints that guide the AI to produce a more precise schema.
Schema Output

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_id column 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.
PlanPolicies per table
FreeFull SELECT, INSERT, UPDATE, DELETE policies
ProFull 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.

Use Download JSONon any project's page to export that schema. To export everything at once, use Export all data (JSON) on the Profile page.
Free & Pro

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

  1. 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.
  2. 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.
  3. 3Test the connection. Schemavo checks that the token can reach your project before anything runs.
A personal access token can manage the projects in your Supabase account, so treat it like a password. Schemavo sends it over HTTPS for the deployment only and never stores it on its servers. If you tick Remember credentials in this browser, it is saved in this browser's local storage on that device. Revoke tokens you no longer need from your Supabase account.

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.

Schemavo generates CREATE TABLE IF NOT EXISTS statements, so re-deploying the same schema is safe and idempotent.
Pro

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

Billing

Free vs Pro

FeatureFreePro
Schema generations3 lifetimeUnlimited
Diagram + text input✓✓
Export as JSON✓✓
Full CRUD RLS policies✓✓
AI Requirements Notes—✓
Supabase deployment1 (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.

FAQ

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.