Your photos.
On your walls.

A self-hosted home for your digital photo frames. Connect your photo library, choose what belongs on each frame, and let Framewrk keep them updated automatically.

Runs on your computer or NAS. Set your rules once.

Choose the photos.
We’ll fit the frames.

Connect a library for automatic updates. Set the size and orientation for each frame once. Send something straight from your phone whenever you like.

01

Start with your photos.

Connect PhotoPrism, Immich, or both. Choose favorites, albums, or recent photos. The iOS app can also send photos directly, without a library.

02

Give each frame a role.

Family favorites in the kitchen. Travel photos in the hallway. Set a source, image size, and portrait or landscape rule for each frame.

03

Let Framewrk keep them fresh.

Framewrk checks your library on a schedule, resizes new photos, and sends them to the right frames automatically.

Works with

PhotoPrism Immich Aura Nixplay

Every frame.
All right here.

Connect your accounts, choose your rules, and see what has been sent. Everything is set up in your browser.

From your phone.
To your frames.

Some photos shouldn’t have to wait for the next library sync. Pick photos in Framewrk, or share them from Photos and other apps. Choose your frames and send.

Your phone uploads each photo once. Your Framewrk server handles resizing, frame orientation rules, and delivery. Recent confirms when the server has received it.

Set up phone sharing

Found a problem? Use Send Beta Feedback in TestFlight. Include your app build, server version, device, OS, and steps to reproduce. Feedback guide

A small server.
A fuller house.

One Docker container on your computer or NAS. One folder for its data. Connect your accounts in the console, then make it your own.

Quick start / Docker Compose
mkdir framewrk && cd framewrk
curl -O https://raw.githubusercontent.com/smichalczyk/framewrk/main/compose.yaml
docker compose up -d
docker compose logs

Find the admin password in the log, then open http://your-host:8770 to get started.

Make room on your NAS.

Framewrk runs on Linux, macOS, Windows, and popular NAS platforms. Images are available for amd64 and arm64.

Find your install guide

Connect a frame account first. Add a photo library for scheduled sync, or use the iOS app over HTTPS for direct sends.

Before you
hang it up.

Do I need a photo library?

PhotoPrism or Immich is needed for scheduled library sync. You can also send photos directly from the Framewrk iOS app without either library. You’ll need a running Framewrk server and a supported frame account.

Which frames does it support?

Framewrk supports Aura frames and Nixplay albums attached to physical frames. For Nixplay, the console shows which frames play each album, including albums shared by multiple frames.

What happens when I change a rule?

Library sync applies the new selection and orientation rules on the next run. Both Aura and Nixplay support removing synced photos that no longer qualify. Nixplay removes those photos from the destination album on every frame playing it, leaving the album and other photos intact. Direct sends follow orientation rules when received and before delivery, and remain independent of library selection.

Does Framewrk keep my uploaded photos?

Full images are released when all destinations finish or skip. Images that still need a retry expire after seven days; previews expire after 90 days. The pending upload queue is limited to 512 MiB or 1,000 photos. Delivery records remain for history and duplicate detection.

Is it free?

The Framewrk server is free to use on your own hardware. See the license for the full terms. The iOS app is currently in beta.

Great photos.
Everywhere you look.

Find a home for Framewrk