Whenever I start working on new application or a new feature, I wonder if someone from the Laravel Community already developed a package that I can use.
And most of the time, the answer is yes. It's impossible to thanks the community enough for the insane amount of work some people put into building open source packages.
But the issue now is to find a package that actually remains updated, that has enough features and that is easy to use. A generally good indicator is the amount of stars and weekly / monthly downloads.
Searching through Laravel Packages can be a bit tricky. Often you find yourself searching on Github, but you'll find tons of repositories that aren't even packages. Or on Packagist, but it's quite difficult to use/read. And finally there's packalyst, an amazing website that also lists Laravel Packages, but that doesn't allow you to order the results by stars/date/downloads etc. And also I think packalyst is a bit old now. I wanted to build a new, modern website.
First, I started working on a fresh and clean layout. I wanted the website to be beautiful and easy to read.
The first tool I have in mind when I build a website that will use a FullText Search functionnality is Algolia. It's a very powerful service, supported out of the box by Laravel Scout, and it's free! I use it on almost all my projects that have Search. I use Algolia on this website by the way.
However once you reach 10k records, Algolia becomes a paid service, and it is (relatively and understandably) expensive. For LaravelPackages.net I could not use Algolia because I would quickly reach more than 10k records, and it is a free website that won't make any money. So I could not afford Algolia services.
The obvious alternative is Elastic Search, an open-source Search Engine based on Java, that you have to install on your server. It's probably the best open-source Search Engine out there, but has some downsides:
First, it is complicated to install and to configure. That is simply because it is so powerful that you can customize it to fit your needs into details.
And also it is very heavy in memory and CPU consumption. Thus I couldn't install it on my own dedicated server. Instead, I used Laravel Forge and Hetzner to setup a small VPS that only runs Elastic Search.
This VPS costs me 8€ per month is runs nothing else than Elastic Search. This works so well that I could use it for all my projects!
Now that Elastic Search is implemented and the layout done, and all features build, Laravel Packages is ready to be used!
Every day, new packages are added to the database. The goal is to cover more and more packages with time. Hopefully one day every packages will be indexed on the plateforme.
Here are some features I built:
- Package Search with Ordering
- Packages stars and downloads evolution chart
- Ability to add a package to a "Collection"
- Register a package
Package Collection are basically a list of packages. For example you can create a list "Packages I use to build a Blog" and list all the packages you use for that type of project. It helps developers to find quicly a set of compatible packages for a specific type of application.
I will need to actually build the emails of the newsletter, because right now you can subscribe but that's it (lol)