Open Source · Self-Hosted · PostgreSQL + MySQL

Instant APIs from any database

Automatic GraphQL and REST APIs from your schema. Kubernetes-native database provisioning. AI-native workflow engine. All open source, all on your infrastructure.

Excalibase
EXCALIBASEYour database, instantly an API
GraphQL/graphql
Auto-generated
REQUEST
query {
film(where: {
rating: { eq: "PG" }
}, first: 10) {
title rental_rate
actor { first_name }
}
}
RESPONSE
{
"film": [{
"title": "ACADEMY DINOSAUR"
"rental_rate": 0.99
"actor": [{ "first_name": "PENELOPE" }]
}]
}
Also:
AI Workflows
K8s Provisioning
CDC Watcher
Schema UI
GraphQL APIREST APICDC RealtimeRLS SecurityK8s ProvisioningAI WorkflowsEdge FunctionsAuthStorage
Workflow Enginedev

AI-native workflow orchestration

Define DAG workflows in YAML. 83 built-in executors — HTTP, AI (Claude, GPT, Ollama), databases, Slack, GitHub, and more. NATS-backed queue with Kubernetes-native execution. Tasks run as isolated containers, scale independently.

HTTPAI/LLMSlackGitHubEmailPythonSQLMCP
new-customer-onboarding
⟳ Executing…
WebhookPOST /webhook/onboardFetch DataHTTP GET /customerAI Writeclaude-sonnet-4-6Send EmailResend APISlack Alert#team-channel
Tasks: 0/5Parallel: 2 branches
83 executors available
K8s Provisioningdev

Production Postgres in 90 seconds

One API call provisions a full PostgreSQL cluster on Kubernetes — HA replicas, WAL backups to S3, encrypted credentials, per-pod metrics. Built with Go + native client-go, 27MB binary.

CloudNativePGHA FailoverPITRS3 BackupsMetricsGo
terminal
$ curl -X POST /api/provision -d '{"tier":"STANDARD"}'
↵ Press enter to provision...
duke-databaseSTANDARD
PROVISIONING
CPU— / 6 cores
MEM— / 12288 MB
postgres-1primary
0.024c93MB
postgres-2replica
0.018c97MB
postgres-3replica
0.015c67MB
Conn: 5/100Cache: 99.8%Backup:

Everything your backend needs

Eight open-source products. Use one or all of them.

GraphQL

Instant GraphQL API

Point at any PostgreSQL or MySQL database. Get a full GraphQL API — queries, mutations, subscriptions, filtering, pagination — zero code.

query {
  users(where: { status: { eq: "active" } }
        first: 10) {
    edges { node { id email orders { total } } }
    pageInfo { hasNextPage endCursor }
  }
}
Read the docs
REST

Instant REST API

Every table becomes a fully functional REST endpoint. Filtering, sorting, pagination, bulk operations, and real-time CDC via SSE and WebSocket — all from your schema.

GET /api/users?status=eq.active
        &orderBy=createdAt.desc
        &limit=20

POST /api/orders/bulk
[{"userId":1,"total":99.99}, ...]
Read the docs
Workflow

AI-Native Workflows

83 built-in executors with a NATS queue. Native support for Claude, GPT, Ollama, MCP servers, RAG, and Kubernetes-native execution.

tasks:
  - name: fetch
    type: http.request
    properties:
      url: https://api.example.com/data
  - name: summarize
    type: ai.anthropic.chat
    depends_on: [fetch]
    properties:
      model: claude-sonnet-4-20250514
      messages:
        - role: user
          content: '{{ outputs["fetch"]["body"] }}'
Read the docs
Provisioning

K8s Database Provisioning

Spin up a production PostgreSQL cluster with one API call. Automated WAL backups, point-in-time recovery, and multi-tier sizing.

POST /api/provision
{
  "projectName": "prod-db",
  "databaseType": "POSTGRESQL",
  "tier": "STANDARD"
}
// 8-stage pipeline → cluster ready
Read the docs
Watcher

CDC Watcher

Stream INSERT, UPDATE, DELETE, and DDL events from PostgreSQL or MySQL to NATS JetStream in real time. Your self-hosted Firebase alternative.

[CDC] INSERT table=orders
  data={"id":1,"product":"keyboard"}
[CDC] UPDATE table=orders
  data={"old":{"status":"new"},
        "new":{"status":"shipped"}}
// → NATS cdc.public.orders
Read the docs
Functions

Serverless Functions

Deploy TypeScript functions to Kubernetes. Deno Workers for isolation, sub-50ms cold start, auto-scaling. Use as APIs, webhooks, or lifecycle hooks.

POST /deploy
{ "id": "hello",
  "code": "function handler(req) {
    return { message: 'Hello ' + req.name }
  }" }

curl /invoke/hello -d '{"name":"World"}'
→ { "message": "Hello World" }
Read the docs
Auth

Authentication

Email, OAuth, magic link, and phone OTP — all backed by Postgres. JWT tokens feed directly into Row-Level Security. Zero vendor lock-in.

POST /auth/signup
{ "email": "user@example.com",
  "password": "••••••••" }

→ { "access_token": "eyJhbG...",
    "user": { "id": "uuid", "role": "authenticated" } }

// JWT claims → Postgres RLS policies
// SELECT * FROM orders WHERE user_id = auth.uid()
Read the docs
Storage

Object Storage

S3-compatible file storage with presigned uploads. Access policies enforced via Postgres RLS — same auth token for database and files.

// Get presigned upload URL
POST /storage/upload
{ "bucket": "avatars", "path": "user-123.png" }

→ { "uploadUrl": "https://s3.../presigned",
    "publicUrl": "https://cdn.../avatars/user-123.png" }

// PUT file directly to S3/MinIO
PUT https://s3.../presigned
Content-Type: image/png
Read the docs

Built on

Java 21GoDenoSpring BootPostgreSQLMySQLMinIOKubernetesCloudNativePGApache 2.0