Build the systems that power your operations Build the systems that power your operationsBuild the systems that power your operationsBuild the systems that power your operations Build the systems that power your operations Build the systems that power your operations Build the systems that power your operations Build the systems that power your operations Build the systems that power your operations Build the systems that power your operations Build the systems that power your operations Build the systems that power your operations Build the systems that power your operations Build the systems that power your operations Build the systems that power your operations Build the systems that power your operations Build the systems that power your operations Build the systems that power your operations Build the systems that power your operations Build the systems that power your operations Build the systems that power your operations Build the systems that power your operations Build the systems that power your operations Build the systems that power your operations Build the systems that power your operations Build the systems that power your operationsBuild the systems that power your operations Build the systems that power your operations

Product

Build the systems that power your operations Build the systems that power your operations Build the systems that power your operations Build the systems that power your operations Build the systems that power your operations Build the systems that power your operations Build the systems that power your operations Build the systems that power your operations Build the systems that power your operationsBuild the systems that power your operationsBuild the systems that power your operations Build the systems that power your operations Build the systems that power your operations Build the systems that power your operations Build the systems that power your operations Build the systems that power your operations Build the systems that power your operations Build the systems that power your operations Build the systems that power your operations Build the systems that power your operations Build the systems that power your operations Build the systems that power your operations Build the systems that power your operations Build the systems that power your operations Build the systems that power your operations Build the systems that power your operations Build the systems that power your operations Build the systems that power your operations Build the systems that power your operations Build the systems that power your operations Build the systems that power your operations Build the systems that power your operations Build the systems that power your operationsBuild the systems that power your operations Build the systems that power your operations

Product

Build the systems that power your operations Build the systems that power your operations Build the systems that power your operations Build the systems that power your operations Build the systems that power your operations Build the systems that power your operations Build the systems that power your operations Build the systems that power your operations Build the systems that power your operationsBuild the systems that power your operationsBuild the systems that power your operations Build the systems that power your operations Build the systems that power your operations Build the systems that power your operations Build the systems that power your operations Build the systems that power your operations Build the systems that power your operations Build the systems that power your operations Build the systems that power your operations Build the systems that power your operations Build the systems that power your operations Build the systems that power your operations Build the systems that power your operations Build the systems that power your operations Build the systems that power your operations Build the systems that power your operations Build the systems that power your operations Build the systems that power your operations Build the systems that power your operations Build the systems that power your operations Build the systems that power your operations Build the systems that power your operations Build the systems that power your operationsBuild the systems that power your operations Build the systems that power your operations
Build the systems that power your operations Build the systems that power your operations Build the systems that power your operations Build the systems that power your operations Build the systems that power your operations Build the systems that power your operations Build the systems that power your operations Build the systems that power your operations Build the systems that power your operationsBuild the systems that power your operationsBuild the systems that power your operations Build the systems that power your operations Build the systems that power your operations Build the systems that power your operations Build the systems that power your operations Build the systems that power your operations Build the systems that power your operations Build the systems that power your operations Build the systems that power your operations Build the systems that power your operations Build the systems that power your operations Build the systems that power your operations Build the systems that power your operations Build the systems that power your operations Build the systems that power your operations Build the systems that power your operations Build the systems that power your operations Build the systems that power your operations Build the systems that power your operations Build the systems that power your operations Build the systems that power your operations Build the systems that power your operations Build the systems that power your operationsBuild the systems that power your operations Build the systems that power your operations
Build the systems that power your operations Build the systems that power your operations Build the systems that power your operations Build the systems that power your operations Build the systems that power your operations Build the systems that power your operations Build the systems that power your operations Build the systems that power your operations Build the systems that power your operationsBuild the systems that power your operationsBuild the systems that power your operations Build the systems that power your operations Build the systems that power your operations Build the systems that power your operations Build the systems that power your operations Build the systems that power your operations Build the systems that power your operations Build the systems that power your operations Build the systems that power your operations Build the systems that power your operations Build the systems that power your operations Build the systems that power your operations Build the systems that power your operations Build the systems that power your operations Build the systems that power your operations Build the systems that power your operations Build the systems that power your operations Build the systems that power your operations Build the systems that power your operations Build the systems that power your operations Build the systems that power your operations Build the systems that power your operations Build the systems that power your operationsBuild the systems that power your operations Build the systems that power your operations

The programmable operations platform

$ npx keel init

$ npx keel init

$ npx keel init

$ npx keel init

It all starts with the Schema

The schema is the source of truth and describes your whole system. Keel is unapologetically code first and built on top of engineering best practices enabling you to build quickly and confidently.

Data model

API

endpoints

Authentication

Secrets

Data model

Authentication

Secrets

API endpoints

schema.keel

model Task {

fields {

title Text

complete Boolean

owner Identity

project Project?

}


actions {

create createTask() with (name, project.id?) {

@set(task.owner = ctx.identity)
@permission(expression: ctx.isAuthenticated)

}

get getTask(id)

update updateTask(id) with (name, project.id)

update completeTask(id) {

@set(todo.complete = true)

}

list listTasks(project.id?)

delete deleteTask(id)

}

@permission(

actions: [get, list, update, delete],

expression: todo.owner == ctx.identity

)

}


model Project {

fields {

name Text

tasks Task[]

}


actions {

create createProject() with (name)

get getProject(id)

update updateProject(id) with (name)

list listProjects()

delete deleteProject(id)

}


@on([create], sendNewProjectEmail)

}


job SendDailySummaryEmail {

@schedule("every weekday at 9am")

}

Job schedules

Permission rules

Custom functions

Event queues

Custom

functions

Permission

rules

Event

queues

Job

schedules

Watch product tour

Design your data model

Your data model is the heart of your business. Describe and collaborate on your data model in the Schema and get a fully-managed serverless Postgres with database migrations handled for you.

Data model as code

Relational data structures

Fully managed migrations

End to end type safety

VS Code extension

Database migrated

Task

Fields

id

id

ID

ID

title

title

Text

Text

complete

complete

Boolean

Boolean

project

project

Project

Project

createdAt

createdAt

Timestamp

Timestamp

updatedAt

updatedAt

Timestamp

Timestamp

Project

Fields

id

id

ID

ID

name

name

Text

Text

tasks

tasks

Task[]

Task[]

createdAt

createdAt

Timestamp

Timestamp

updatedAt

updatedAt

Timestamp

Timestamp

schema.keel

model Task {

fields {

title Text

complete Boolean

project Project

}

}


model Project {

fields {

name Text

tasks Task[]

}

Define your APIs

Define the actions that can be taken on your data and get GraphQL and JSON APIs that just work. The best code is no code at all.

Designed by you, powered by Keel

JSON, GQL and RPC APIs

Generated Typescript client SDK

Generated OpenAPI 3.1 specifications

Create multiple APIs from a single schema

schema.keel

actions {

get getTodo(id)

create createTodo() with (name, project.id)

update updateTodo(id) with (name, project.id)

update completeTodo(id) {

@set(todo.complete = true)

}

list listTodos(project.id?) {

@where(todo.project in ctx.identity.user.projects)

}

delete deleteTodo(id)

write customAction(id) returns (ActionResponse)

}

GQL

JSON

RPC

Extend everywhere,
test everything

Power actions with TypeScript functions to add business logic. Add event subscribers for async workloads. Setup background jobs to run on your schedule or manually. All wrapped up with powerful testing libraries tailored to your schema.

If you can write the code, you can build it with Keel.

Extend any action with hooks and custom functions

Painless event queues and workers

Scheduled and manually triggered jobs

Built-in testing for actions, events and jobs

schema.keel

model Account {

fields {

name Text

email Text

identity Identity

}

@on([create], sendWelcomeEmail)

}


job SendDailySummaryEmail {

@schedule("every weekday at 9am")

}

Secure by default

Easily define row-based or role-based permission rules using Keel’s powerful expression syntax. Then use the built in authentication or seamlessly connect any 3rd party system.

Row- and role-based permissioning

“Deny by default” access control

Connect with OAuth or OIDC authentication providers

Easily model complex permissions

schema.keel

@permission(

actions: [create, get, list],

expression: ctx.identity.account in todo.project.members

)


@permission(

actions: [update, delete],

expression: todo.owner == ctx.identity

)


@permission(

actions: [create, get, list, update, delete],

roles: [Admin]

)

OAuth

OIDC

Run it all locally and deploy with one command

With Keel's CLI, VSCode extension and local console, you get a full local environment designed to create the perfect developer experience.

$ keel run


✅ Schema valid

✅ Database migrated

✅ Functions built

Local development console:

- http://console.keel.so/local


Api endpoints:

- http://localhost:8000/api/graphql (GraphQL)

- http://localhost:8000/api/json (JSON)

- http://localhost:8000/api/rpc (JSON-RPC)

$ keel run


✅ Schema valid

✅ Database migrated

✅ Functions built

Local development console:

- http://console.keel.so/local


Api endpoints:

- http://localhost:8000/api/graphql

- http://localhost:8000/api/json

- http://localhost:8000/api/rpc

$ keel run


✅ Schema valid

✅ Database migrated

✅ Functions built

Local development console:

- http://console.keel.so/local


Api endpoints:

- http://localhost:8000/api/graphql

- http://localhost:8000/api/json

- http://localhost:8000/api/rpc

When you’re ready to deploy just…

$ git push

Ship and grow as a team

From infrastructure designed for explosive growth to the instant generation of tools for operations teams - Keel is built for the needs of scaling teams.

Infrastructure that fits your workflow

Built with version control at the core, Keel handles the provisioning and management of infrastructure based on your Schema. Easily spin up multiple environments connected to branches to create the perfect pipeline that fits your team's workflow.

Infrastructure as Schema

Fully managed serverless infrastructure

Multiple environments with flexible git workflows

Automatic and manual approval deployments

Staging

Fix a bug

Production

Add stable feature

Deploying...

87s3cf

Shiny new feature

Deploy steps

Configuring infrastructure...

Deploying functions

Deploying runtime

Migrating database

Understand exactly what your code, and customers, are doing

Keel is not a magic black box. Every interaction is traced with automatic instrumentation to ensure you have complete visibility of the system. Brought together in a simple, but powerful, interface that lets your whole team debug together.

Detailed tracing of every request

Connect Keel actions, custom code and events

Built on OpenTelemetry standards

Full audit trail for all activity

623ms

32ms

12ms

56ms

14ms

Requests

0

+5% from last period

Accounts

0

+13% from last period

COLLABORATE

What’s a backend without friends?

Whether it’s customer service, marketing, logistics or any other area of business, the Keel schema instantly creates tools that let your entire team interact with your data timely and securely.

Operations

Customer service

Finance

“Keel has been instrumental in the successful launch of Bravely’s new platform. Their comprehensive backend solution, paired with the exceptional support of their fantastic team, enabled us to rapidly deploy a sophisticated and meticulously crafted product in a tightly regulated industry. Without Keel, we’d be months behind our current launch.”

Melissa Ng CEO Bravely.io

Together, we build businesses that thrive

Sign up to the waitlist for early access. We're onboarding new users ever week. If you have a particular project in mind, book a call with us to discuss how Keel could help. We offer a managed migration service to help you get up and running in no time.

ABOUT US

We're lowering the barrier to great tech

Building great software from scratch takes time, expertise, and investment. Off-the-shelf solutions rarely give the long-term support businesses need to succeed, leaving you on the back foot from day one. We built Keel to change that. 

ABOUT US

We're lowering the barrier to great tech

Building great software from scratch takes time, expertise, and investment. Off-the-shelf solutions rarely give the long-term support businesses need to succeed, leaving you on the back foot from day one. We built Keel to change that. 

ABOUT US

We're lowering the barrier to great tech

Building great software from scratch takes time, expertise, and investment. Off-the-shelf solutions rarely give the long-term support businesses need to succeed, leaving you on the back foot from day one. We built Keel to change that. 

ABOUT US

We're lowering the barrier to great tech

Building great software from scratch takes time, expertise, and investment. Off-the-shelf solutions rarely give the long-term support businesses need to succeed, leaving you on the back foot from day one. We built Keel to change that.