Skip to content

Custom Backgrounds

Your images, as note and app backgrounds. Upload a picture once; Glassy generates the renditions, dedupes by content hash, and — since beta.40 — syncs both the rows and the image files to your paired appliance.


Uploading

Settings → Backgrounds (or the note background picker) accepts common image formats. Every upload runs an atomic pipeline:

  1. The original is validated and content-hashed — an identical re-upload returns the existing entry instead of storing a duplicate.
  2. Three renditions are generated: thumbnail, mobile, and desktop (WebP), with EXIF orientation applied so phone photos are not sideways.
  3. Only after every rendition succeeds do the files move into place — a mid-pipeline failure never leaves a selectable-but-broken background.

Files live under your instance's persistent volume (uploads/backgrounds/<you>/{thumbs,mobile,desktop}/), so they survive container rebuilds.

Availability

Surface Custom backgrounds
Cloud Available within your plan's storage limits
Self-hosted appliance Unlocked, no metering

Sync (beta.40+)

Custom backgrounds are a synced type:

  • Rows (name, hash, dimensions, size) sync like any other content type — captured by database triggers, delivered through the outbox.
  • Image files transfer with the Cloud Sync media step: your appliance fetches any rendition it is missing from the origin, best-effort, retrying each cycle.
  • Deleting a background removes its row and its files on the instance that owns them.

Troubleshooting

Symptom Cause / fix
Upload fails on a large image Check the instance's storage cap (Settings → Storage); free-tier cloud accounts are metered
Background missing on the appliance after sync Open Settings → Cloud Sync: the amber media missing count shows pending renditions; they retry every cycle
Same image uploaded twice shows once By design — content-hash dedup returns the existing entry