scribase
Scribase for internal tools teams

A backend for internal tools you can stand up and hand off

A REST API over your schema, auth, and RLS — exportable when a project graduates.

Internal tools live or die on speed to build and clean handoff. Scribase gives you an instant REST API over your Postgres schema, built-in auth, and row-level security to scope what each role can see — and because export produces a runnable bundle, a tool that outgrows "internal" can graduate to its own stack instead of being rebuilt.

What you need

  • A data API without hand-writing a CRUD backend
  • Role-based access so the tool shows the right rows to the right people
  • A clean exit when an internal tool becomes a real product
# query the schema over the REST data API
const { data } = await client
  .from('tickets')
  .select('id, title, status, assignee(email)')
  .eq('status', 'open')

How Scribase fits

An instant API over your schema

The /rest data API exposes your Postgres tables and views directly, so a dashboard or admin panel talks to the database without a hand-written CRUD layer in between.

Roles and row-level security

Built-in auth plus Postgres row-level security scope what each role can read and write, so an internal tool does not need its own bespoke permission system to be safe.

Export when it graduates

When an internal tool becomes a product, scribase export writes a runnable bundle — schema, data, storage, and policies — so it moves to its own stack without a rewrite or a lock-in trap.

FAQ

Common questions

Do I have to build a CRUD API for an internal tool?

No. The REST data API exposes your Postgres tables and views directly, so a dashboard reads and writes without a hand-written backend layer.

What happens when an internal tool becomes a real product?

Run scribase export to get a runnable bundle — schema, data, storage, and policies — so the tool moves to its own managed or self-hosted stack without a rewrite.