Skip to main content
Big news! Interval has been acquired by Meter. Learn more →


Interval allows you to build internal apps in your backend codebase with zero frontend code.

If you're a developer who wants to offer your non-technical teammates tools for things like managing accounts, moderating content, and editing database records, Interval is for you.


Looking for a crash course in Interval? We recommend following our Getting started tutorial which walks you through each step of building and deploying a fully functional customer refund app.

How Interval works

Interval apps are defined as actions in your codebase and can be accessed through your team's Interval web dashboard.

Here's an app with a single "Hello, world" action:

import path from "path";
import { Interval } from "@interval/sdk";

const interval = new Interval({
apiKey: "<YOUR API KEY>",
routesDirectory: path.resolve(__dirname, "routes"),

import { Action, io } from "@interval/sdk";

export default new Action(async () => {
const name = await io.input.text("Your name");
return `Hello, ${name}`;

Interval is a hybrid architecture under which business logic and secrets live within your infrastructure and the rendering of interfaces for your tools is handled by Interval.

The code that defines an action runs in your codebase and on your infrastructure. When you make a call to an I/O method (like io.input.text in the above example), the SDK sends a message back to Interval to render the appropriate UI for the person running your action. When a response is received by the SDK, it's parsed, sanitized, and returned to your function as a soundly typed value.

Architecture diagram

Was this section useful?
On this page