How does PhotoStructure licensing work?

This post is extremely detailed, and shouldn’t be necessary reading for most users. If you’re interested in the nitty-gritty details about PhotoStructure’s licensing, read on.

Several people have asked how PhotoStructure manages licensing:

I have burned rather badly in the past with subscription software that becomes
inoperable when either validation servers go down or the vendor is

Me too! This sort of frustration helped drive the goals I had as I built out licensing.

Licensing goals

  1. As much as possible, make things “just work.” External internet access, for example, shouldn’t be required if a prior license is still valid.

  2. If anything fails, “fail open” by reverting to a lite license. This is one of the reasons why the lite license is so permissive.

  3. As much as possible, don’t expose any system or personal data or metadata: the only personal data shared between your library and PhotoStructure, Inc is your email address.

User licensing experience

Step 1: welcome page

Users running version 1.0.0 (alpha, beta, or later) will first see:

This page is hosted by your local running PhotoStructure server.

Step 2: pick a plan

Clicking Continue will transparently POST several short, lossy one-way hashes of current system metadata to the PhotoStructure licensing server running on, which then redirects to the following page:

  • If you click the “free” button in the “lite” card, you’ll be redirected to your library’s settings page, and your system hashes will be discarded.

  • If you click a link or button in the “plus” card, you’ll be prompted to enter your email address.

Step 3: verify your email

Check your email for a verification code:

Enter the 6 digit code into the following page (spaces don’t matter):

Why do we use verification codes instead of passwords? Because:

  1. We don’t have to deal with pain and suffering caused by insecure passwords. The best way to avoid cybertheft is to not have anything to steal!

  2. Users always get notified when their account is being attempted to be accessed.

Step 4: checkout

Clicking Continue should redirect you to a page hosted by

This page is secured and powered by Stripe, which is PhotoStructure’s payment processor.

By design, PhotoStructure, Inc. doesn’t have access to your card number: it’s stored in Stripe’s secure “vault.”

Note Stripe may submit a small ($1), temporary “authorization hold” to your credit card to verify your payment information when you set up your trial Subscription plan. This is canceled automatically by Stripe.

Step 5: return to your library

Clicking “Start trial” will redirect you back to

When you click “Return to your library,” your browser will redirect back to your library, along with your new license.

What happens when my license expires?

PhotoStructure uses cryptographically signed licenses to locally store your current plan subscription status. These licenses are only valid for the current subscription period, and must be refreshed when your subscription renews or converts from a free trial to a paid subscription. To minimize the hassle of license renewals, PhotoStructure automatically renews expired licenses in the background.

If the current license has expired and the autoRefreshLicense setting is true, PhotoStructure will make one secure POST request to that contains several lossy one-way hashes of current system metadata. PhotoStructure hashes all identifying metadata to only 15 characters to alleviate any privacy concerns. If your plan subscription is active, a new license will be added to your library.

Note that if autoRefreshLicense is disabled, license renewals will require manual intervention: just click “Upgrade” from the main menu or click the “learn about plus” link in the About page, pick your plan, authenticate, and the license will automatically refresh.

How do I upgrade back to PLUS later?

If your subscription has lapsed, you can always renew your license by clicking the first link in the About page:

How can I verify that my license is installed properly?

Just check the top section of the About page:

If you’d rather check with a command line, use the info tool’s --plan switch:

$ ./photostructure info --plan
  "plan": "plus",
  "current_license": {
    "email": "",
    "issued_at": "2021-05-12T21:44:49.803Z",
    "expires": "2021-09-09T21:44:49.803Z",

Where are your subscription terms?

“Sorry, we can’t send you a license”…

If you’re seeing

  • “Sorry, we can’t send your library a license. Please return to your PhotoStructure library and click the “learn more about plus” or “activate” links from your library’s About page”

  • “Please install PhotoStructure and then click the “learn more about plus” or “activate” links from your library’s About page”

this is because you navigated directly to

The link from your About page is “magic:” it includes required information for PhotoStructure to build and sign a license for your library.

If you’re seeing other errors, please contact support: we’ll get things sorted.

Any other questions, comments?

Please reply to this topic or send an email to