Autosave
Every field, every keystroke, debounced to a save call every few hundred ms. The Save changes button at the top rarely does anything new; it exists mostly for the reassurance of a green check.Draft recovery
If the browser tab crashes or you close it in the middle of typing, the editor stashes your unsaved state in localStorage. Next time you open the experiment, a Draft recovery banner offers to restore your unsaved edits.- Restore, merge the stashed state with the server draft.
- Discard, throw away the stashed edits.
Save-in-flight guard
If you close the tab while a save is still in flight, the browser warns you first: “Changes you made may not be saved.” Do not lose work to a stray Cmd+W.Publish outbox
Publishing an experiment writes a fresh config to Cloudflare KV. If that write fails on the network, a transient error, a Cloudflare blip, the publish is not lost. It goes into an outbox and the worker retries in the background until it succeeds. What you see on your side:- Publish click returns immediately.
- If the KV write is still pending after a moment, the experiment detail page shows a small “Saved, but publishing…” banner.
- The banner stays until the write completes. If it takes longer than a few minutes, it means we need to look at the queue, please tell us.
Reset data on a running experiment
If you edit a running experiment in a way that would invalidate its data (change targeting, change variants, add/remove a goal), the save gets a409 data_reset_required from the server. The editor
opens a dialog:
- Reset data and save. Start a new epoch. Old data is preserved but the results page starts fresh.
- Keep data and save. Merge with the existing epoch. Only available for safe changes (rename, description edit).
What is not autosaved
- Draft variant code inside the editor pane while you are typing. Debounced to a save every second or so; if the tab crashes in the middle of an unsaved edit inside the code pane, that edit is what the draft-recovery banner offers to restore.
- The active state of a modal. Clones you started but did not save, the “Are you sure?” dialogs, the schedule picker’s in-progress date. Those live only in the current tab.