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
| URL | Persistence |
|---|---|
| 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.