Skip to main content

build fast, flexible, secure backends in minutes

Exograph LogoExograph Logo

You focus on the domain model

Exograph does everything else

Data Models in Seconds

Describe your domain model, and automatically get a GraphQL API for it. Leave execution to Exograph; don't write SQL ever again.
@postgres
module EcommerceDatabase {
@access(true)
type Product {
@pk id: Int = autoIncrement()
name: String
description: String
price: Float
published: Boolean
department: Department
}

@access(true)
type Department {
@pk id: Int = autoIncrement()
name: String
products: Set<Product>?
}
}

Fine-Grained Access Controls

Go beyond role-based authorization. Specify complex permissions with just a few lines of code.
Integrate with any authentication system including OpenID Connect.
context AuthContext {
@jwt role: String
}

@postgres
module EcommerceDatabase {
@access(
query=self.published || AuthContext.role=="admin",
mutation=AuthContext.role=="admin")
type Product {
// ...
published: Boolean
}

@access(
query=true,
mutation=AuthContext.role=="admin")
type Department {
// ...
published: Boolean
}
}

Connect to Custom Logic

Integrate with external APIs or define custom algorithms with just a few lines of JavaScript or TypeScript.
@deno("announce.ts")
module ProductAnnouncement {
@access(AuthContext.role=="admin")
mutation announce(productId: Int, @inject exo: Exograph): String
}
const productQuery = 
`query getProduct($id: Int) {
product(id: $id) {
name,
price
}
}`;

export function announce(productId: number, exo: Exograph): string {
const product = exo.executeQuery(productQuery, {id: productId});
const potentialBuyers = exo.executeQuery(... analytics GraphQL query);
sendEmail(
potentialBuyers,
"New Product", `A new product ${product.name} is available`
);
return "Announcement sent";
}

Awesome Developer Experience

Iterarate fast with support for schema creation, migration, deployment, and more throughout the application lifecycle.
Exograph models fit right into your existing Git workflow.

Performant

Exograph's architecture provides high performance, fast startup time, and low memory usage. Suitable for serverless and traditional cloud deployments.
  • Cold startup time on AWS Lambda < 200ms
  • Memory footprint < 64MB
  • Fast query execution

Deploy Anywhere

Deploy to the cloud of your choice. Exograph comes with direct support for AWS Lambda, Fly.io, and any platform with Docker support.
Docker LogoFly LogoFly LogoFly Logo