Operon

Change the product without shipping a release

Operon is the layer between your frontend and your infrastructure. Content, targeting rules, backend flows and analytics stop being things you deploy and become things you edit. One console, one set of projects and environments, three products that share them.

<10msMedian execution latency
99.99%Uptime SLA
40+Global edge regions

Small changes should not cost a release

A price of copy, a country-specific offer, one more tracked button. None of them change your architecture, and all of them queue behind the same pipeline.

Reword a pricing pagePull request, review, build, deployHours to daysEdit in Compose
Show a different offer in SpainFeature flag, release, clean-up ticketDaysOne rule in Compose
Add an endpoint that joins two servicesNew service, CI, infrastructure reviewDays to weeksA flow in Codeblocks
Track a new buttonSDK call, QA, app releaseA release cycleBind it in Analytics
For product and marketing

Compose

A content store with a rule engine attached

Model your content as collections, then decide who sees which version with rules written against real request context. The copy and the condition live together, so shipping a variant is not a code change.

Changing the copy a Spanish visitor sees
Without Operon
Edit codeReviewBuildDeploy
Hours
With Compose
Edit entryPublish
<10ms
Collections

Structured models with typed fields, versioned per environment.

Rule engine

Target on locale, device, cohort or anything you put in context.

Delivery API

One read call per page, answered from the edge.

For backend engineers

Codeblocks

Backend flows composed from small, reusable blocks

Wire single-purpose blocks into a graph and expose the whole thing as one endpoint. A block does one job and is reused across flows, so the glue service you would have written stops being a service you have to run.

Adding an endpoint that joins two upstream services
Without Operon
New serviceCIInfra reviewDeploy
Days
With Codeblocks
Wire blocksPublish
<12ms
Visual flows

Sources, pipes and sinks connected into one endpoint.

Run history

Every execution recorded, with its input and its output.

Reusable blocks

Write a block once, call it from any flow in the workspace.

For product and data

Analytics

Bind events to live interface elements

Open your running application inside the visual inspector, click the element you care about and name the event. No SDK call to write, no release to wait for, and the binding survives because it is stored against the element, not the build.

Tracking a button you forgot to instrument
Without Operon
Add SDK callQAApp release
A cycle
With Analytics
Click elementName event
<5ms
Visual inspector

Point at a live element and attach an event to it.

Trackers

Every bound event in one list, editable without a deploy.

Dashboards

Usage and performance read back in the same console.

One platform underneath all three

The products are separate consoles, not separate accounts. They read the same workspaces, the same projects and the same environments, so a change is scoped the same way wherever you make it.

Workspaces and projects

One registry of projects, and which products each one uses.

Environments

Development, staging, production and anything else you need.

Scoped API keys

Issued per project per environment, revocable on their own.

One SDK

Install once and every product reaches your app through it.

Access you can account for

Everything is scoped through the workspace, so permission is a property of the account rather than a setting on each product.

Roles that mean something

Owner, editor and viewer, enforced on the server for every route.

Keys stored as hashes

A key is shown once when minted. We keep only its hash.

Membership by invitation

Invitations are explicit, expire, and can be revoked before use.

Start with one project

Create a workspace, add a project and turn on the products you need. The rest can wait until you want them.