Product design

Replit: before returning to a checkpoint, decide what goes back with it

Replit brings conversation, app development and publishing together. Checkpoints help users return to earlier project files and context after a problematic change, with an explicit choice about restoring development data too.

Form your own approach first, then explore the reasoning to check trade-offs and validation you may have missed. There is no single right answer.

01
DESIGN QUESTIONIntermediate

How should recovery confirm what changes and what stays?

Scenario

Design a recovery-confirmation flow for your own AI registration-page builder. A user asks to return to the last working version, but the product has four objects: project files, AI conversation context, a development database and a production database. Propose your own design; you need not copy Replit’s interface.

Known conditions and constraints

  1. Checkpoint A was created at 9:00: the form collected only names, with 10 development test records. Current checkpoint B adds a required email field, with 12 development records. The live app still uses a separate production database containing 200 real registrations.
  2. Choosing A restores project files and conversation context together. The development database keeps its current 12 records by default; only an explicit choice restores A’s 10. This flow cannot change the 200 production records or retract emails already sent.
  3. User One wants to remove the email form change while keeping newer test records. User Two wants to reproduce the complete 9:00 development state. Help them make different choices; a select-all default must not conceal the distinction.
  4. A recovery request has four states: preparing, executing, completed awaiting inspection, and definitely failed. Preserve the confirmed scope and distinguish a submitted request from completed recovery. Assume the backend returns a definite success or failure; unknown results after network timeouts are outside scope.

Work through this example

User One selects A without including the development database and sees the old form after completion. Let them confirm which stage the conversation belongs to, whether the 12 test records should remain, and whether the 200 production records are affected. Then change the goal to User Two’s and explain the differences in confirmation and inspection.

Deliverables

Sketch the scope-confirmation screen and four request states. Write the primary-button, database-option, result-summary and failure-message copy. Compare the two expected results in a table. Propose two observation tasks to test whether users mistake development rollback for production recovery; describe the study without inventing success rates.

Explore the reasoning
  1. Start with goals, then technical objects. Explain “restore the old form and keep current test data” and “also restore old test data.” Separately list project/conversation, development-database and production-database results rather than expecting a date to communicate scope.
  2. Explain the default and what is lost. Unchecked preserves 12 development records; checked restores A’s 10, excluding the two later records from this development state. The 200 production records stay unchanged. Update the confirmation summary with the choice, not just a checkbox color.
  3. Carry confirmed scope through every state. Preparing permits cancellation or adjustment; executing preserves the current target and scope; only definite success leads to inspection. On failure, explain non-completion and show actual state according to backend guarantees, without a false all-restored message.
  4. Inspect against the original goal. User One checks the old form, A-stage conversation and 12 development records; User Two checks the old form, A-stage conversation and 10 records. Both must distinguish production. A page opening does not prove submission works; try a test submission too.
  5. Observe understanding through both goals. Have users perform both tasks and describe what changes and what stays. Record database misselection, mistaken production effects and execution mistaken for completion. Revise copy and information order from those observations.