A desktop library that indexes folders in place, builds thumbnails, reads EXIF, shows a timeline and map, finds duplicates and stores ratings and tags beside the files is a weekend job. The product, though, is moving originals and smaller copies between phones and computers, merging edits made on two devices, and importing camera rolls through native apps on four platforms. An agent will not rebuild that in one prompt: aim for a desktop-first library and let Syncthing move the files, and expect the phone side to stay manual.
Before you buildMylio's own app is free to use, with the membership adding sync and backup. If you only need one device, try the free app before building anything. If you want phone backup, run Immich instead.
Build me a personal photo library to replace Mylio Photos Plus on one computer. Requirements: - Python 3.12 + FastAPI with Jinja2 templates and HTMX. `uv run photos` serves http://localhost:4900. - The library is the folder tree I already have: LIBRARY_DIR in .env, indexed in place. Never move, rename or modify an original. Thumbnails (320 px and 1600 px WebP) go to ./data/cache/. - Storage: SQLite with FTS5 in ./data/photos.db: files (path, size, mtime, sha256, taken_at, camera, lat, lon, width, height, kind), tags and ratings. Index at startup and watch for changes with `watchfiles`. Support JPEG, PNG, HEIC (`pillow-heif`) and MP4/MOV (poster frame through ffmpeg). - Views: a timeline by day and month from EXIF DateTimeOriginal (fall back to mtime) with virtual scrolling, a folder view, a map of geotagged photos (Leaflet) and search over tags, filename, camera and date range. - Organizing: tags and 1-5 star ratings are written to .xmp sidecars next to the original (dc:subject and xmp:Rating) and read back on index, so another app can use them. Albums live in SQLite only and can be exported as a folder of copies. - Duplicates: exact (sha256) and near (`imagehash` perceptual hash, Hamming distance of 5 or less) shown side by side. Nothing is deleted without a click, and "delete" moves the file to TRASH_DIR. - Phone and second computer: no sync engine. A /upload page takes files from a phone browser into LIBRARY_DIR/Inbox/YYYY-MM/. The README explains pointing Syncthing at LIBRARY_DIR for device sync. - Single user with one password in .env. No accounts, no telemetry, local-first. The only outbound call is for map tiles, and MAP_TILES=off disables it. - Out of scope: face recognition, RAW development, editing, native mobile apps, optimized-copy sync, cloud backup. - README: installing ffmpeg, setting LIBRARY_DIR, binding to the LAN only on request, Syncthing setup, backups, and a warning that HEIC and video decoding depend on codecs installed on the machine.
Opens your agent with the prompt filled in, you press enter. Or copy it and paste it into an empty folder.
The first prompt builds the core. Run these one at a time in the same folder to grow it into your own Mylio Photos Plus.
Add face grouping to the photo library in this folder. Requirements: - A command `photos faces scan` that detects faces with `insightface` (ONNX models downloaded once to ./data/models/) and stores each face's box and embedding in SQLite. - Cluster embeddings with a cosine-distance threshold of 0.5 and show clusters as unnamed people; naming a cluster tags all its photos with that name. - Merge and split controls for clusters; a face marked "not this person" never rejoins it. - Write names to the .xmp sidecar as dc:subject, and never upload anything. - Report photos scanned per minute in the README so I can plan a first scan.
Add an importer for Mylio's saved metadata to the photo library in this folder. Requirements: - A command `photos import-xmp` that reads the .xmp sidecars next to my originals and imports keywords (dc:subject), ratings (xmp:Rating), labels and GPS coordinates into SQLite. - Where a sidecar has face regions, import the names as tags and the boxes as faces. - Print a summary before writing: files with sidecars, new tags, conflicts with existing tags. Running it twice changes nothing the second time. - Do not touch the sidecars. Update the README with what Mylio keeps only inside its own database (albums and Calendar Events) so I know what must be rebuilt by hand.
Add verified backups to the photo library in this folder. Requirements: - A command `photos backup /Volumes/Backup/photos` that copies new and changed files from LIBRARY_DIR with rsync-style rules and keeps the folder structure. - After copying, verify each file by sha256 against the database and print any mismatch or missing file; exit with a non-zero code if there is one. - Keep a log of the last 10 runs in SQLite and show the age of the last good backup on the home page, in red after 7 days. - Never delete anything on the backup target. Update the README with a cron line.
People pay to stop thinking about where their photos live. Phones, laptops and drives hold one library, originals stay on disks they own, and the membership handles sync and backup without a cloud account. A setup session comes with the plan, which matters to people who want it working, not a server to maintain.
Estimate · Runs on the computer that holds the photos; Syncthing is free. A small always-on box is optional. The build is token usage on your agent plan.
Checked 2026-10-19 against Mylio Photos Plus's docs: 1, 2, 3, 4, 5, 6, 7
| Plan | Monthly | Annual, per month | What you get |
|---|---|---|---|
| Mylio Photos (free app) | $0 | $0 | Browse and organize a library with the free app. The support site says the paid membership adds syncing to more devices and automatic backup; the free app's device limits are not stated on the pages we read. |
| Individual | $25/user | $20/user | Unlimited photos, videos and documents, sync across Windows, macOS, iOS and Android, a private library, advanced search, face recognition and a personalized setup session. |
| Duo | $40 | $32 | Everything in Individual for 2 people, with family sharing and combined libraries. |
| Family | $50 | $40 | Everything in Individual for 5 people, with family sharing; the first month of sharing is free. |
The Mylio Photos app is free to use; the paid membership adds syncing to more devices and automatic backup.
Kinda. The core is a weekend build with the prompt on this page, but real gaps remain: Native apps that import your camera roll on iPhone and Android, Syncing originals and smaller copies between devices, with each device holding only what fits.
About $25 a month on the Individual plan per seat, $300 a year (checked 2026-10-19).
Native apps that import your camera roll on iPhone and Android; Syncing originals and smaller copies between devices, with each device holding only what fits; Vault drives and encrypted offsite backup; Offline face recognition and AI search; Family sharing and combined libraries on Duo and Family. If any of those matter to you, keep paying.
Yes: Immich (open source), PhotoPrism (open source), LibrePhotos (open source).