Rustpad

Share a browser-based code pad and edit together in real time.

Rustpad is a collaborative text editor with shareable pad links and a Monaco-based code-editing interface. It synchronizes concurrent edits using operational transformation and can be self-hosted without a separate database. Documents are transient by default; optional SQLite persistence can retain their contents.

Its server is written in Rust with Warp and Tokio, and Rust text-operation logic is compiled to WebAssembly for the browser. The surrounding interface is written in TypeScript and React.

Is Rustpad a fit for a shared code scratchpad?

Use Rustpad to edit a short text or code example together in a browser. Treat the default server as temporary storage, not your only copy. If keeping documents matters, evaluate a self-hosted instance with SQLite persistence and verify recovery before relying on it for a continuing workflow.

The upstream configuration reference distinguishes in-memory expiry from optional disk snapshots. Its defaults are not a statement about how the public rustpad.io service is configured. For a local project and ongoing editor work, use the Zed and Lapce workflow comparison instead of treating a shared pad as a full development environment.

Check these before sharing real work

  1. Prove the collaboration path. Use invented, non-confidential text. Open the same generated pad link in two separate browser profiles, edit from each, then reconnect one profile. Check that both show the complete expected text; seeing a collaborator’s cursor alone is not enough.
  2. Choose a retention requirement. If this is a temporary discussion, keep the result in a local file before leaving. For a continuing pad on your own instance, consult the documented SQLITE_URI and EXPIRY_DAYS settings. Persistence of a snapshot is not a backup policy or a promise that every recent edit has reached disk.
  3. Test the requirement, not just the setting. On a disposable self-hosted instance, save a recognizable example, restart the service, reopen the exact pad link and compare its contents with your local copy. Record editing, reconnect and recovery separately as pass, blocked or unverified. Do not restart a shared production service for this trial.

This is a suggested acceptance checklist, not a reported Rustpad deployment test, security audit or durability guarantee. Keep sensitive material out of the trial and confirm your host’s access and retention policy separately. Browse other Rust productivity tools →

Storage and implementation questions

Does Rustpad keep documents after a restart?

Not by default. Upstream documents memory-only storage by default and a one-day expiry setting, not guaranteed durable storage. Self-hosters can configure SQLITE_URI to snapshot contents to SQLite; for containers, upstream recommends keeping the database on a mounted volume. Verify recovery on your own instance rather than assuming the public service uses that configuration.

Is the whole Rustpad interface written in Rust?

No. The server and WebAssembly text-operation logic use Rust. The surrounding browser interface uses TypeScript, React and the Monaco editor. This is a Rust-powered application, not an entirely Rust-written interface.

Sources checked ; checklist by Built with Rust.