Bringing photo prints to Piwigo with Familink
I recently worked on a small but surprisingly useful project: adding a print ordering workflow directly inside Piwigo.
The idea was simple. I already use Piwigo as a private photo gallery, but sharing digital images is not always enough. Sometimes you just want to send real prints. Instead of exporting photos manually and using a third-party service, I wanted a seamless, integrated experience.
The idea
The goal was to turn Piwigo into a lightweight print shop:
-
Browse photos as usual
-
Select images directly from the gallery
-
Add them to a cart
-
Choose formats and quantities
-
Enter a delivery address
-
Send everything for printing
No exports, no uploads elsewhere, no friction.
Why Familink?
I chose Familink as the backend service because it provides a simple API to send printed photos by mail. Moreover, it's based in France ๐.
How it works
The plugin is built around a straightforward architecture:
-
A Piwigo plugin layer that handles the UI (cart, buttons, checkout)
-
A secure bridge that exposes images through temporary URLs
-
A server-side order handler that sends everything to the Familink API
This approach keeps the system simple while ensuring that private images remain protected.
Key features
-
Add photos to a cart directly from the gallery
-
Select print formats (10x15, 15x20)
-
Adjust quantities in a dedicated cart page
-
Fill a minimal shipping form
-
Send orders via API (sandbox or production)
-
Empty the cart or update it dynamically
The plugin integrates into the existing Piwigo interface, so it feels like a natural extension rather than a separate tool.
Development notes
This project was also an opportunity to experiment with a different workflow:
it was developed with the help of ChatGPT, used as a coding assistant for architecture, debugging, and iterative improvements.
This made it possible to move quickly, especially when dealing with:
-
Piwigo plugin structure
-
API integration
-
UI/UX adjustments
-
Debugging edge cases
Whatโs next?
There are several directions for future improvements:
-
Support for photo albums
-
More print formats and options
-
Order history
-
UI refinements
But even in its current state, the plugin already covers the core use case.
Source code
The project is available on GitHub:
๐ https://github.com/silaxe/piwigo-familink
Feel free to explore, use, or adapt it to your own setup. And, of course, any improvement to the code, which I mostly produced using ChatGPT, is more than welcome!