Rules anyone can read, even agents

Context Aware Rule Engine Builder

Unifying rule authoring across 10+ dashboards serving 500+ enterprises

Role

Design + Frontend Code + Visual System

Stack

React · TypeScript · Vite · Blend Design System

Juspay promises no-code multiple times.

Payment routing, priority logics, fraud screening, 3DS authentication, loyalty rewards and more. Multiple products and multiple pages, one promise: build the logic yourself, without an engineer. That promise is the product. It's why merchants like Amazon, IndiGo and Swiggy don't need a deployment to change how payments route on a Friday afternoon. The rule builder is where the promise is kept or broken.

Overhead shot of a desk covered in whiteboard-marker sketches and notes mapping out the rule builder's architecture, with a laptop in the middle
Four floating cards labelled Smart Routing, 3DS, Fraud & Risk Management, and Offers, each with a short quote about building rules without writing code
Multiple dashboards and their issues

We started where everyone starts.

IF / ELSE IF / ELSE maps one-to-one onto how the engine actually evaluates a rule. It's cheap to build, it's what every rule builder ships, and three of the four modules already had it. There was no argument for starting anywhere else. It's also engineer grammar, handed to an operations persona who has never written a conditional in their life. That mismatch didn't show up as complaints. It showed up as merchants quietly not using the feature.

Screenshot of the classic IF/ELSE IF/ELSE rule builder interface
if-else rule builder
Screenshot of the maker-checker approval flow for rule changes
Maker-checker flows

So we drew the rule instead of writing it.

If the problem is that structure can't be seen, put it on a canvas. Sequence becomes spatial. Branching becomes a fork you can point at. Outcomes become objects rather than text at the end of a line. Much of it worked. The single biggest comprehension win came from something small: labelling the entry node “Every payment that comes in” did more for understanding than any amount of relabelling IF/ELSE ever did.

Screenshot of the node-based visual rule canvas
Node-based configuration approach
Two node builder panels: a conditional node checking the merchant sub-group, next to the same node with a branch being connected to a navigation arrow
Two node builder panels: an Add Node menu with condition and action options, next to an action node splitting traffic between Airtel, Razorpay and PhonePe

The notation was never the problem.

Both previous attempts asked the same question: what is the best way for a merchant to express formal logic? Node builder asked whether they should be expressing it at all. Merchants don't think in conditions. They think in intent - route premium customers to Stripe on weekends. So the system authors from intent, and the merchant's job becomes verification.

Screenshot of the classic rule canvas view
Screenshot of the visual rule canvas view

But we didn't remove the classics completely

The three generations look like a sequence of replacements. They aren't. All three still ship, and which one you land in is determined by where you came from - the route carries the context, and the context picks the surface.

Screenshot of the intent-based rule canvas view
Bengaluru, India--:--
You made it to the bottom. Respect.