The original post: /r/php by /u/ildyria on 2025-01-19 13:38:14.
Hi r/PHP,
Feeling like helping a small community in need or simply wish to sharpen your skills on a pet project? The FOSS Lychee photo gallery is looking for code reviewers (or even better devs 🙂 ).
Lychee
Lychee is a free photo-management tool, which runs on your server or web-space. Installing is a matter of seconds. Upload, manage and share photos like from a native application. Lychee comes with everything you need and all your photos are stored securely.
We aim to provide an alternative to Google Photo, Flickr etc. We follow decently strict coding practices with phpstan, etc. What we are mostly looking for are reviewers with whom to bounce ideas, double check implementations and edge cases. It also goes without saying that dev are more than welcome.
The tech and a bit of history.
In 2018, I took the project under my umbrella. At that time the code was full vanilla PHP and vanilla JS (& JQuery). The focus was getting know with the code base, figuring out what was needed to be able to add more functionalities to the gallery.
In April 2020, I rewrote the full back-end to Laravel, using it mostly as an API end point. The front-end still fully JS baked, but now we supported safer practices.
I started working a migrating the front-end to Livewire since August 2020. This has been a long migration which we finally completed in December 2023. With Livewire we also migrated to AlpineJS & Tailwind, putting us effectively in full TALL stack. While working on Livewire steps, we also added support for multi-users, sub-albums and constantly improving the code quality.
Last June, after testing Livewire for 6 months, I came to the conclusion that it was not for us. See our analysis on it: https://lycheeorg.dev/2024-06-25-performance-problems/.
After 4 months of intense rewriting. We released version 6 of Lychee, with a brand new front-end in Vue3 + TypeScript + PrimeVue. Livewire went directly to the trash.
Since then we have been trying to work on adding more capabilities to Lychee. Version 6.1 added an optional timeline view and version 6.2 added a few maintenance options and the release are now automatically signed with cosign.
In December I have been working in adding a few new functionalitiies, like duplicate finder and more importantly, backend response cache. That last one will divide by 5 some of our server responses time.
The problem
The number of maintainers keeps decreasing over time, people enjoy Lychee but I am effectively alone maintaining it. We follow 4-eyes principle but my other reviewer is not really active and would be more than happy to have some rest. Last year we made a call for help, I got a few answers, but it did not carry through.
Hence this cry for help. If you like photography, if you enjoy running your own web-server photo gallery, if you feel like reviewing a few Pull Requests, please help us!
Have you tried… XXX ?
In order to alleviate the pressure on reviewers I am using stacked PR approaches (pr over pr). Which also means that the amount of code to be reviewed per PR is smaller and more self contained.
Because 4-eyes is quite constraining, to provide bleading-edge buids, I also created an alpha
branch. It contains the “unverified” pull request merged.
That branch is also built nightly into a docker image with the tag `.
Now if you enjoy photography and feel like giving us a hand, please don’t hesitate to reach out.
How many people use Lychee ?
It is hard to establish such number. However we can look at the amount of pulls from docker and so far we have the followings:
- 3.4M Docker pulls of our image.
- 20M Docker pulls on LinuxServer docker image.
Our website: https://lycheeorg.dev/
Demo: https://lychee-demo.fly.dev/
The code: https://github.com/LycheeOrg/Lychee
Discord: https://discord.gg/JMPvuRQcTf