Persistence & open infrastructure

The URL is the program. The core rendering runtime and content-addressed URL persistence are free and open source, forever. framejs.app adds optional, durable, account-backed persistence on top.

How long each URL lasts

URLPersistence
framejs.io/#?js=…Forever — no server copy; you hold the link.
framejs.io/j/<sha256>Free content-addressed snapshot, kept ~30 days, then expires.
framejs.app/j/<uuid>Durable, guaranteed while your account is active (free tier included). Old versions age out on a human-friendly schedule.
framejs.app/j/<uuid>?v=<sha256>A published, immutable version (Pro). Permanently public and citable — kept long-term ("human-permanent"), and it keeps resolving even if the frame is later made private or deleted.

How data ages out

  • Free content-addressed URLs expire after ~30 days.
  • Anonymous (logged-out) Frames live 90 days — sign in and claim one to keep it.
  • Frame version history is pruned after 12 months; the current and published (?v=) versions are kept.
  • Published versions are permanent: once you publish one, that exact snapshot stays public and citable forever — like a DOI — even if you later make the frame private or delete it.
  • Deleting a Frame is recoverable for 30 days before permanent removal.

Open source & FAIR

The rendering runtime is MIT-licensed and will stay open source. We align framejs with the FAIR data principles — Findable, Accessible, Interoperable, Reusable — so what you make stays reachable and reusable.