Repository navigation
Features
What Albm can do, grouped by the job you are doing.
Most extras are off by default per gallery. Live upload, bib/face search, forensic watermark, event page, and similar options stay off until you turn them on for that gallery. Enable only what you need.
- Featured and More Work grids, searchable by title, tags, and year
- Client galleries can join the Featured Work grid too, but only after the client opts in from their own gallery page — never automatically
- Editable hero, about, contact, and footer from admin
- Portfolio lightbox with optional anonymous likes
- Approved client testimonials on the homepage (moderated — off until you approve one)
- Per-gallery SEO overrides (title, description,
noindex)
- A real booking-inquiry form on the public contact page (honeypot + rate-limited, no CAPTCHA)
- Inquiries land in an admin inbox (new/read/archived, reply via mailto)
- Optional email notifications when a new inquiry comes in — configure SMTP in Settings → Email, or leave it unset and just check the inbox (nothing requires it)
- Clients: an optional cross-gallery client record (name, email, phone, notes, tags) you can link a gallery to after creating it, or create straight from an inquiry with one click — so a repeat client's history isn't scattered across separate galleries
- Private galleries at unguessable URLs, or set a custom memorable slug at creation or later; renaming redirects the old URL instead of breaking it
- Optional password, PIN, and expiry
- Switch a gallery between Client and Portfolio at any time from Settings
- Sections, tags, favorites, moderated comments, and selection limits
- Named selection lists — clients can create and delete their own (photos stay, only the list goes)
- Magic-link "Save my selections" (copyable link + QR; no email server required)
- Post-delivery testimonial prompt (client-facing, submissions stay pending until you approve)
See Client Galleries for the workflow.
- Single photo, full-gallery ZIP, or favorites-only ZIP when downloads are enabled
- Optional Web / Print / Original sizes; GPS stripped on download by default
- Visible watermark; optional invisible forensic mark (default off)
- Live upload while a shoot is in progress (opt-in per gallery)
- Bib-number search and selfie face match for attendees (opt-in; face match stays in memory)
- Public event page with venue QR (opt-in)
- Live event wall / kiosk mode — a fullscreen, auto-rotating public display of the newest uploads for a TV or tablet at the venue; respects the gallery's password/PIN
- A Maintenance page: finds
readyphotos missing a derivative and regenerates it in one click, plus per-volume storage usage - Optional soft storage quota per gallery — warns, never blocks an upload
- Passkey login, recovery codes, audit log, session revoke
- Audit log covers section create/rename/delete and bulk photo moves, not just admin/security events
- Safe upgrades (DB backed up before each migration)
- Optional gallery collaborators
- Upload tokens for Lightroom / Capture One (upload and replace/delete) — see Publish API
- A bundled Lightroom Classic Publish Service plugin — map a collection to a gallery and Publish, with full add/modify/delete sync
Shipped — portfolio, client proofing, passkeys, downloads/watermarks, events (live/bib/face/kiosk), collaborators, publish API + Lightroom plugin, testimonials, per-gallery SEO, contact/inquiry funnel, optional SMTP email, Clients (CRM), Docker + GHCR.
Later (when needed): client email automation (gallery-ready/expiry reminders), object-storage backend, multi-photographer / studio mode.
Out of scope for now: automated off-site backups, payments/e-commerce, print lab fulfillment.