Skip to main content
Today, building a typical backend means connecting many separate systems: API frameworks, a task queue, a cron scheduler, an event bus, a pub/sub layer, a state store, a WebSocket server, and an observability pipeline. Each system brings its own setup, its own deployment, and its own failure modes. Balancing infrastructure and business logic becomes increasingly difficult with every new system. The result of balancing these many necessary systems are delayed delivery, difficulty debugging, transient issues, increased expenses, siloed domain and systems knowledge, and difficulty with onboarding new developers and AI agents. The main benefit of iii is that it transforms a backend from behaving like a series of separate concerns, domains, and services into a single application-level interface across services. iii (pronounced “three eye”) does this by creating a single integration point for all backend systems which results in a stack that is easier to change and which keeps all historical knowledge in one place (ie. a single config). The result is faster onboarding of new developers and AI agents, and simpler debugging across systems, removal of cost centers with reduced switching costs, and faster delivery of backend features.

How iii achieves this

iii unifies any backend stack with a single engine and three primitives: Function, Trigger, and Worker. This results in the ability to:
  • Write Functions in any language: Use TypeScript, Python, or Rust. Mix them freely. Everything is just a Function.
  • Handle any event with Triggers: A function call, an HTTP request, a cron schedule, a queue message, a state change, a stream event. They all work the same way: a Trigger fires, iii invokes your Function.
  • Always stay in sync with Workers: When a new function is registered with iii every other part of the stack can use it. Workers can dynamically unregister Functions too, allowing rolling upgrades without manual registry or config updates. No service registry, and no config files. iii always knows what the entire system can do.
React simplified the frontend with Component and Context. iii does the same for the backend with Function, Trigger, and Worker. One mental model for every backend system.

Getting Started

The best way to understand iii is to try it:

1. Install iii

Install and then update the iii-cli to get everything installed.
curl -fsSL https://install.iii.dev/iii-cli/main/install.sh | sh
iii-cli update

2. Verify installation

Check that iii has installed correctly with the following command. It should return a version number.
iii --version

Next Steps

Quickstart

Follow the Quickstart and explore a live iii application.

Concepts

Understand Functions and Triggers from a conceptual point of view.

How to use Functions & Triggers

Learn how to register functions, trigger them, and bind them to events.