undeleted.sh

keep the plan. burn the secret.

Two small tools. You decide what lasts. Publish a document that stays up until you delete it. Send a secret that's gone once it's read.

plan.undeleted.sh

plan.

POST Markdown or HTML. Get a URL back.

$ curl plan.undeleted.sh/publish \
    -H "Authorization: Bearer $PLAN_API_KEY" \
    -H "X-Plan-Expires: 7d" \
    --data-binary @plan.md

→ https://plan.undeleted.sh/p/L7qx2Km9NvPd
  • Nothing overwrites. Every save is a new revision, so v2 is still there after you ship v5.
  • Private until you share. Turn on a public URL or a signed share link, and pick when it expires.
  • Yours to keep. It's Markdown or HTML, and Mermaid diagrams render in the page. Download the source anytime.
  • Scriptable. REST, MCP and webhooks let a script or an agent publish for you. It's free.
Open plan
otp.undeleted.sh

otp.

A secret link that deletes itself after it's read.

https://otp.undeleted.sh/s/Xk3mQ9vT2pLd#f9a2c07e51b8d4a6

path  → sent to the server
#key → stays in your browser, never sent

views left: 1   expires: 24h   locked: PIN
  • Encrypted in your browser. The server stores only ciphertext. A database dump reveals nothing.
  • You set the lifespan. It expires after 1 hour, 1 day, 3 days or 7 days. Allow 1, 3, 5 or 10 views, or leave them unlimited.
  • Optional lock. Add a password or a random 6-digit PIN. Five wrong guesses destroy the secret.
  • Generators included. Password, PIN, API token, JWT, key pair and UUID, all generated in your browser.
Open otp

side by side.

Same domain, opposite lifespans.

planstays otpburns
Keeps Markdown or HTMLevery revision, until you delete it Ciphertext onlyuntil it's read or expires
Lifespan Until you delete it, or1h24h7d30d 1h1d3d7dor13510∞views
Access privatepublicsigned link Anyone with the whole linkplus an optional password or PIN
Account Needed to publish None
Cost Free Free