Image and video decision

SmugMug

A consolation build is possible, but the paid product's decisive value sits outside a solo rebuild. For SmugMug, publish a self-hosted client gallery from user-owned photo storage. The hard boundary is image hosting, global delivery, print commerce, client proofing, and support, plus image pipeline quality, models, and workflow polish.

Visit website
Subscription$15/month ✓ verified
Initial build40 hours
Monthly upkeep6 hours + $0
EvidenceAn open-source build exists

Open-source builds that already do this

Every project below is open source and already does this job today. Fork one, self-host it, or take the parts you need — the build prompt further down assumes an empty file, and this is the shortcut past that. Licences differ; check the one on each card before you ship.

What a replacement has to do

  • Catalog local photos from user-owned storage, generate previews, apply non-destructive adjustments, and publish selected images to a self-hosted client gallery.

What it still won’t have

  • image hosting, global delivery, print commerce, client proofing, and support
  • proprietary raw-processing quality
  • cloud sync and sharing
  • large AI models
  • camera and print ecosystem

What remains hard

  • Infrastructure at scale
  • Proprietary models
  • Execution quality
Read the build prompt

First-year cost

The build hours below are a category default, not an estimate for this product. Change them to your own numbers and the comparison follows.

Keep paying

Paying ischeaper in year one.

On cash alone, building overtakes the subscription at 1 seat.

Paid seatsseats

Money you would actually spend

Keep paying

Subscription price × seats × 12

Build it

AI build APIs + hosting

Time you would spend

What you would spend

What we assumed

The verdict above measures whether you could build it. This one is only about money.

Runnable build prompt

Not run yet
Build a closest honest personal substitute for SmugMug in an empty repository.
Use Tauri 2, React, TypeScript, Rust image libraries, SQLite, and local filesystem access; do not offer alternative stacks.
The core loop is: catalog local photos from user-owned storage, generate previews, apply non-destructive adjustments, and publish selected images to a self-hosted client gallery.
Make the first run work locally with one documented command.
Store all user data locally by default and make export straightforward.
Put secrets in .env, ship .env.example, and never commit credentials.
Index selected folders without moving or rewriting originals and store only catalog data in SQLite.
Generate thumbnails and previews, read EXIF, detect duplicates by hash, and monitor file changes.
Provide timeline, folders, albums, ratings, flags, tags, search, and side-by-side compare.
Store edits as reversible parameters for crop, rotate, exposure, contrast, white balance, and saturation.
Render exports to a new folder with explicit color space, quality, size, and metadata choices.
Add catalog backup, missing-file repair, integrity scan, and a clear original-safety guarantee.
Include clear empty, loading, success, and recoverable error states.
Add input validation, safe filenames, and graceful handling of unavailable APIs.
Write focused tests for the core transformation and one end-to-end happy path.
Create a README with setup, architecture, permissions, data location, and backup steps.
Do not add accounts, billing, telemetry, analytics, or a hosted control plane.
Do not claim to reproduce proprietary data, network liquidity, regulated access, or frontier infrastructure.
Deliberately leave out a proprietary raw-rendering engine.
Deliberately leave out hosted cross-device photo sync and client galleries.
Deliberately leave out frontier culling, retouching, and generative models.
Finish by running the tests and listing the exact commands used.
How we checkedno sources · evidence score 22