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.

WEB
Web App
AI
AI Agent
MOB
Mobile
CLI
CLI / SDK
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
PG
PostgreSQL
MG
MongoDB
ORA
Oracle
MDB
MariaDB
MY
MySQL
RD
Redis
SQL
SQL Server
CDB
CockroachDB
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