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.
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.
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.
Structured models with typed fields, versioned per environment.
Target on locale, device, cohort or anything you put in context.
One read call per page, answered from the edge.
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.
Sources, pipes and sinks connected into one endpoint.
Every execution recorded, with its input and its output.
Write a block once, call it from any flow in the workspace.
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.
Point at a live element and attach an event to it.
Every bound event in one list, editable without a deploy.
Usage and performance read back in the same console.
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.
One registry of projects, and which products each one uses.
Development, staging, production and anything else you need.
Issued per project per environment, revocable on their own.
Install once and every product reaches your app through it.
Everything is scoped through the workspace, so permission is a property of the account rather than a setting on each product.
Owner, editor and viewer, enforced on the server for every route.
A key is shown once when minted. We keep only its hash.
Invitations are explicit, expire, and can be revoked before use.
Create a workspace, add a project and turn on the products you need. The rest can wait until you want them.