Vibecode Pixieset

track this build5 phases, 15 steps, beginner friendly
KINDA · weekend project
price $8/moyou'd save $96/yrbuild time multi-daycategory 📷 photo editingreplaced by 0 people

The core loop is buildable, but a dependable replacement becomes a real weekend or multi-day project. For Pixieset, publish a simple password-protected client gallery from user-owned storage. The hard boundary is gallery hosting, proofing, downloads, store, mobile apps, and photographer workflow, plus image pipeline quality, models, and workflow polish.

the project pack5 files · written for this build, step by step
README.md
# Pixieset · indie build

A catalogue of your local photographs that publishes a password-protected gallery to storage you own: generated previews at sensible sizes, client favouriting for proofing, download permissions per gallery, expiry dates, and originals that never leave your disk unless you decide they do.

Estimated effort: **multi-day**. Work `BUILD_PLAN.md` top to bottom · every phase ends in a check that has to pass before the next one starts.

## Stack

| Part | Choice | Why |
| --- | --- | --- |
| Catalogue | Python 3.12 with SQLite, reading a local library | the originals stay where they are; the catalogue is an index over them |
| Previews | libvips through pyvips | several times faster and far lighter on memory than the alternatives when generating thousands of derivatives |
| Gallery | A static site generated per gallery, uploaded to object storage | no server to keep running for a gallery a client opens twice |
| Access | Signed URLs plus a gallery password, checked before any image URL exists | a static gallery still needs a real gate, and the gate has to be in front of the images rather than the page |
| Storage | S3-compatible object storage behind a content delivery network | photographs are large and clients open galleries from phones on poor connections |

## Before you start

Have every one of these ready. The plan assumes them from step one.

- [ ] **Python 3.12 or newer** · free
  - Why: Runs the catalogue, derivative generation and publishing.
  - Get it: python.org or your package manager, then a virtual environment.
  - Verify: python3 --version prints 3.12 or higher
- [ ] **libvips** · free
  - Why: Generating thousands of derivatives with a memory-hungry library will exhaust a laptop. libvips is substantially faster and lighter for exactly this workload.
  - Get it: brew install vips, or your package manager, then pip install pyvips.
  - Verify: python -c "import pyvips; print(pyvips.version(0))" runs
- [ ] **An S3-compatible bucket with a delivery network** · storage is cheap; egress varies enormously by provider
  - Why: Galleries are opened from phones on poor connections, and photographs are large. Egress rate is the cost that matters.
  - Get it: Create a private bucket and credentials scoped to it, and put a delivery network in front. Compare egress pricing before choosing.
  - Verify: A test object uploads, is refused when requested directly, and is served through the network with a signature
- [ ] **A real photo library with at least ten thousand images** · free
  - Why: Indexing time, derivative generation time and gallery weight are all meaningless at a hundred images and decisive at ten thousand.
  - Get it: Use your own library. If it is smaller, duplicate it to test scale before trusting the performance numbers.
  - Verify: The library is available and its size is recorded
- [ ] **A metadata inspection tool** · free
  - Why: Phase 2's claim that location metadata is stripped must be verified with a tool rather than assumed, because publishing a client's location is a real harm.
  - Get it: brew install exiftool, or your package manager.
  - Verify: It reports metadata for a source image and finds none in a derivative
- [ ] **A second location for original backups** · varies with library size; this is usually a photographer's largest storage cost
  - Why: Originals are the irreplaceable asset and the catalogue does not contain them.
  - Get it: An external drive plus an offsite copy, or object storage. Decide before Phase 6, and prefer two locations to one.
  - Verify: A restore of one original has been performed

## Quick start

```sh
pip install pyvips
```

Then copy `.env.example` to `.env` and fill in the values it documents.

## Honest limits

This build deliberately does not replace:

- Raw processing quality, which is the real craft here.
- Print store and fulfilment.
- Client mobile applications.
- Library sync across your own machines.
- gallery hosting, proofing, downloads, store, mobile apps, and photographer workflow
- proprietary raw-processing quality
- cloud sync and sharing
- large AI models
- camera and print ecosystem

If one of those is essential to you, that is the reason to keep paying for Pixieset, and the README should say so rather than pretend.

$ choose a build depth, inspect the files, then open the complete pack in your agent

why people still pay

People still pay for Pixieset because photographers pay because image quality, catalog safety, and fast handling of huge libraries matter more than cloning sliders. The recurring cost buys raw codecs, color management, metadata, previews, face models, GPU support, storage, backups, sync, and export fidelity, not just the visible interface.

what you lose

xgallery hosting, proofing, downloads, store, mobile apps, and photographer workflow

xproprietary raw-processing quality

xcloud sync and sharing

xlarge AI models

xcamera and print ecosystem

share on X ↗"I just replaced Pixieset ($8/mo) with one prompt"
the escape hatch

Don't feel like building it? These folks already made it free.

LycheeA clean self-hosted gallery with password-protected albums, downloads, metadata, and Docker deployment; no built-in storefront.4.3kjul 2026open source↗PPiwigoPrivate users and albums, passworded access, downloads, themes, and storage you own; less glossy, vastly less hostage-like.3.8kmay 2026open source↗

no votes, no pay-to-list · just what's real

the numbers

Pixieset pricing

planmonthlyannual (per mo)what you get
free$0/workspace$0/workspace3 GB storage; unlimited galleries; up to 3 mobile gallery apps; 15% store commission.
basic$10/workspace$8/workspace10 GB storage; 30 minutes HD video; 100 email sends per month; unlimited mobile gallery apps; 0% Pixieset store commission.
plus$20/workspace$16/workspace100 GB storage; 500 email sends per month; unlimited galleries and mobile apps; 0% Pixieset store commission.
pro$30/workspace$24/workspace1 TB storage; RAW-file support; unlimited galleries and mobile apps; 0% Pixieset store commission.
ultimate$50/workspace$40/workspaceUnlimited standard photo storage; 1,000 GB RAW-file cap; 10,000 email sends per month; 0% Pixieset store commission.

free tier3 GB storage, unlimited galleries, up to 3 mobile gallery apps and a 15% store commission

billingmonthly + annual (-20%)

hidden costsThe Free store takes 15% of sales; extra video storage is $5/month per additional hour; Photo Editor is a separate $12/month add-on.

verified 2026-08-14 · source ↗

questions
Vibecode Pixieset

Kinda. The core of Pixieset is buildable in a weekend with the prompt on this page, but there are real gaps: gallery hosting, proofing, downloads, store, mobile apps, and photographer workflow, proprietary raw-processing quality. Read the honest list above before committing.

How much does Pixieset cost?

Pixieset costs about $8/month (Basic, checked 2026-07-31), which is $96 per year.

What do I lose by replacing Pixieset?

Honestly: gallery hosting, proofing, downloads, store, mobile apps, and photographer workflow; proprietary raw-processing quality; cloud sync and sharing; large AI models; camera and print ecosystem. If any of those are load-bearing for you, keep paying.

Is there an open-source alternative to Pixieset?

Yes: Lychee (A clean self-hosted gallery with password-protected albums, downloads, metadata, and Docker deployment; no built-in storefront.) Piwigo (Private users and albums, passworded access, downloads, themes, and storage you own; less glossy, vastly less hostage-like.) The prompt is for when you want it exactly your way.