Share a project as a link, and keep the tab light no matter how many projects you have.
🔗 Share as link
Share any project from the project menu. Whoever opens the link gets their own independent local copy — editing or deleting it never touches yours.
- Short links
app.shotluma.com/s/<id>, payload compressed and images re-encoded as WebP, stored opaquely with a 90-day TTL - Personalized unfurls: a 1200×630 preview rendered from your live artboards, so the link previews the actual screens
- Offline fallback to a self-contained
#share=link when the share API is unreachable - Share payloads are treated as untrusted input: markup and rich text are re-sanitized on import, unsafe image sources dropped, decompressed size capped
🧠 Disk-backed images, lazy workspaces
Image bytes no longer live as base64 inside project documents. With many projects the tab used to grow past 2–3 GB; now startup memory peaks at the largest single project instead of the sum of all of them.
- Content-addressed Blob asset store — identical images deduplicate across projects and on duplicate
- Existing projects migrate transparently on open; never-opened projects stay untouched
- The project list loads one document at a time, only the active project is fully retained
- Deleting a project sweeps the Blobs nothing else references
🤖 OpenCode Zen and Go
Both OpenCode gateways are selectable providers, sharing one API key. Text-only models stay usable: screenshots and slide previews are described by a cheap vision model on the same gateway first, exposed in the picker as Vision fallback.
🐛 Fixes
- Uploaded screenshots show up in devices on HTML screens again after the Blob storage switch
Full Changelog: v0.4.0...v0.5.0