🎊 Version 0.9: 💯💯💯-file edition #
This version includes improvements for very large libraries, new features, new security enhancements, updates to several major dependencies, and many other bugfixes and improvements, both visible and behind the scenes.
All of these changes were driven by beta users’ feedback. 🙏🏾 Thank you!
Released October 19th, 2020.
🍜 This really will be our last beta version #
We’ve provided free access to our beta builds over the past year in exchange for your feedback, and we really appreciate the thought and guidance our early users have shared with us.
If this is the first version of PhotoStructure you’re trying out, please share your feedback and ideas with us! We’d love to hear from you: [email protected]
There will be free, “lite,” and paid, “plus,” subscription tiers.
Personal annual subscriptions will be $5/month, or $42/year.
PhotoStructure development is entirely subscriber-supported.
What do I get with a “plus” subscription? #
PhotoStructure’s more advanced “curators” are unlocked with an active plus subscription. This includes the curator in charge of automatic organization.
In the future, plus will also unlock face detection and other advanced taggers.
But it seems like most of the product is available for free? #
Yup, that’s true, for now. PhotoStructure is a young product and my to-do list is embarrassingly long.
My hope is that the unique features already in PhotoStructure (marked with 🌟) make it worth using at the free, “lite” tier, and as more features are added, a “plus” subscription makes sense to more of PhotoStructure’s users.
What happens if I allow my “plus” subscription to lapse? #
The following is a solemn promise, similar to our open-source clause:
Your PhotoStructure library will always open and be browsable, regardless of your subscription status.
In other words, PhotoStructure won’t hold your own library “hostage” for a paid subscription. The free, “lite” tier will always be able to open any PhotoStructure library.
The advanced “curators” will be disabled without a paid subscription.
For new assets, you won’t enjoy automatic organization, or have those assets tagged with advanced curators.
For prior assets, imported while you had an active subscription, the “prior work” will be retained:
- Any tags from these curators will be retained
- Any external work (like automatic organization) will be retained.
Basically, you paid for their work, so that work won’t be undone.
What about “perpetual” licenses? #
Several people have asked about this, and I’ve considered many different licensing models over the past year.
In my experience, “perpetual” licenses are rarely actually perpetual. They’re a license to use a specific version that doesn’t get updated (even if security issues arise).
This model of licensing gives software vendors a perverse incentive to only release new features in “big-bang,” new version releases, rather than incrementally improving the product continually.
I can only support one version of PhotoStructure: the latest-and-greatest. If I fix a bug, add a new feature, or address a security issue, I want all my users to enjoy those changes as soon as possible, preferably automatically.
🎆 New goodness in v0.9 #
🚅 Faster galleries #
The code to fetch, render, and display thumbnails was optimized, especially for very large libraries.
The number of thumbnails to show per “tag sample” is now dynamic, based on library size, browser screen size and thumbnail mode (small, medium, or large).
Scrolling through decades and decades of your photos is quick, and dare I say, delightful! 🎉
📱 Enhanced mobile support #
We spent some quality time testing on an OG iPhone SE, and fixed several issues:
- Header buttons are hidden on smaller screens
- Titles automatically uses ellipses on overflow
- Tags in asset streams are shortened to just
- When viewing asset info, the image contents are now shown below the panel
🗂️ Scan path improvements #
- We’ve updated the “Where are your photos and videos?” section in settings:
The scanning options are now just “automatic” or “manual.”
The “manual” option now supports one or more paths for PhotoStructure to scan.
Click “Add My Pictures directory” to scan that folder.
PhotoStructure for Desktop users have an “Add” button to browse and add local directories. You can click it multiple times to add additional paths.
PhotoStructure processes paths in the order you specify in this list. If you’re in “automatic” mode, PhotoStructure will then process the mounted volumes.
PhotoStructure for Docker users: it’s still up to you to bind-mount any volumes you want imported into your library, but if you want to specify a scanning order, you now can do so if you wish.
⏭️ Sync improvements #
We’ve improved how PhotoStructure supports processing very large libraries.
The following algorithm is now used to determine which volume to scan:
PhotoStructure looks for directories that haven’t been completed within the last month. The first directory from this list is processed, using the order of
If all directories have been completed within the last month, the most- recently processed directory is continued to be worked on, as long as it wasn’t completed less than
syncIntervalHoursago (which defaults to 48 hours). If no such directory exists, the next directory, in the order of
scanPaths, is picked to process.
New processing step to handle deleted and excluded files #
Regardless of the sync algorithm that you choose, the following steps are taken to process a directory hierarchy:
Directories are scanned for photos and videos
Those files are imported or synchronized with into your library
Any files that are no longer present in the filesystem are deleted from your library database.
Any files found to be in NoMedia directories are marked as “excluded” in your library database.
Steps 3. and 4. were added in version 0.9.
🔎 New “pause panning” mode #
When viewing an asset, you can zoom into the image by clicking in the middle of
the screen, or tapping
In version 0.9 you can now “pause panning,” so you can move the mouse and retain
the current zoom and pan position. Toggle this mode by tapping either
Once paused, you can navigate to different images but remain zoomed into the same relative location. Tap the left or right cursor key to compare next and previous assets, or open the asset info panel, and compare image variants of the same image to compare duplicates.
We found this mode to be helpful in finding the best smile from a set of portraits!
🛡️ Security improvements #
PhotoStructure’s UI now uses a strict Content Security Policy.
We’re now using Electron’s
contextBridgefor the render process, and pass all Electronegativity security audits.
🏷️ Prettier tags #
Other improvements #
✨ During library rebuilds, assets are now excluded from your library if any variant that was already imported is found to be in a NoMedia directory.
If you want to keep assets that have variations found in other directories, set the
excludeNoMediaAssetsOnRebuildlibrary setting to
falseto retain prior behavior.
✨ UNC paths (
\\server\share\path\to\file.jpg) are now supported both for libraries and for scan paths, but please note that free space cannot be monitored for these devices. We still recommended that you map your network drive to a drive letter, so PhotoStructure can monitor and pause imports if the volume gets too full.
✨ Library metrics were added to the About page.
✨ Tags are now sorted and stored case-insensitively.
✨ Much better random sampling (prior versions were chronologically biased)
✨ As directories are scanned, files that have been deleted will be removed from the library as well.
✨ A new
hiddenHomeTagslibrary setting supports hiding root tags from the “home” view. It defaults to hiding the “Type” root, which is still available via the navigation menu. It’s case-insensitive, and applied server-side. (Thanks for the suggestion, Daniel!)
✨ PhotoStructure for Desktops now supports common native-application keyboard shortcuts, including Quit (
command+ qon macOS) and Home ( command+ Homeon macOS, alt+ homeon Linux and Windows).
✨ All UI widgets that have keyboard shortcuts now say what their shortcut is in their tooltip.
📥 Please share with us! #
If you find anything odd or confusing or buggy, please email us.
📖 For more information #
See our release notes for a detailed list of changes in version 0.9.0.