Limits and defaults
The limits RoutingCat holds you to, and the defaults you start with: what you set, see or plan around. Byte limits are decimal, so a KB is 1,000 bytes. Times are UTC.
Pages
| What | Limit |
|---|---|
| Slots on a page | 20 |
| Live variants on a page, all its slots together | 100 |
| The routing data of a page | 500,000 bytes |
| A page’s routing data for browsers | 128,000 bytes, with a warning above 96,000 |
| The routing data of the site, all pages together | 2,000,000 bytes |
| The head partial’s list of your pages, slots and variants | 16,000 bytes |
npx routingcat plan shows each page against its limits, and the build or push refuses a page over one, with a limit message.
A page’s routing data for browsers is what its visitors’ browsers fetch to decide, and push warns above 96,000 bytes. Past 128,000, RoutingCat publishes none for the page, so every visitor gets its defaults, unrouted, until a push brings it under, as an error in doctor and status says. Every page reads the head partial’s list before anything else, so push refuses templates that would take it past its limit.
Declarations
| What | Rule |
|---|---|
| A key: of a page, a slot, a variant, or the site | Lowercase letters, digits, - and _, 1 to 40 characters |
| An event name | 1 to 64 characters, none of them a control character, + or / |
| Events in one objective, where any one counts | At most 32 |
| Objectives and outcomes, all together | A warning above 14 |
| An objective’s window | 24 hours by default; from 1 second to 400 days, and no longer than the visit |
Site settings
Set with npx routingcat set <setting>=<value>, with no address.
| Setting | Default | Range |
|---|---|---|
control_share: the control |
10% | From 0 to 1, as 0.1 or 10%. Below 5%, a warning; lowered below it only with --confirm |
random_control_share: the random slice |
5% | From 0 to 1, as 0.1 or 10% |
episode_window: the visit |
7 days | From 1 second to 400 days, as 7d, and no shorter than an objective’s window |
routing |
on |
on or off |
Slot settings
Declared in routingcat.config.json, under slots by the slot’s address, or set with npx routingcat set <page or slot> <setting>=<value>.
| Setting | Default | Range |
|---|---|---|
fixed_share |
0: no fixed share | From 0 to 1, as 0.1 or 10% |
personalization |
on |
on or off |
floor, cap |
Automatic | From 0 to 1, as 0.1 or 10%, or auto. The floors of a slot’s variants add up to at most 1, and their caps to at least 1 |
The first view’s wait
A view with no routing data at hand, as a visitor’s first usually is, leaves the page’s routed slots blank, their space kept, until the data arrives, for at most wait_ms; past it, they show their defaults. Set it in routingcat.config.json.
| Setting | Default | Range |
|---|---|---|
wait_ms |
1,000 milliseconds | From 0 to 10,000 |
Events
The HTTP events API’s limits are on its page: 100 events and 256,000 bytes a request.
Times
| What | How long |
|---|---|
| A preview link stays valid | 1 hour |
| A replaced key keeps working | 24 hours |
npx routingcat doctor --wait waits at most |
5 minutes |
npx routingcat login waits for your approval |
50 seconds |