I am happy to introduce the new application I built: bestof.js.org.
bestof.js.org is a place where front-end engineers and node.js developers can find the best components to build amazing web applications.
Now browsers are no longer just document "renderers". Developers create single page applications that deliver rich user experience.
Browsers can do things like:
The open source community is very active, new interesting projects are released almost everyday on Github.
There are so many open-source projects to follow that it is difficult to stay up-to-date about the latest tendencies.
I used to take notes about the interesting projects I found but I was tired of searching through my notes and my bookmarks.
I thought that a tool was needed to help us follow what is happening in this everyday changing world.
This is why bestof.js.org was born!
Checking the number of stars on Github is a good way to check project popularity but it does not tell you when the stars have been added.
bestof.js.org takes "snapshot" of Github stars every day, for more than 300 projects, to detect the trends over the last weeks.
A project can have been popular a while ago, collecting a big number of stars... but a new contender may have made it obsolete since that time.
Now with bestof.js.org you can see which projects are hot in more than 50 categories (including MV* frameworks, React components, node.js CMS, CSS tools...).
The application homepage displays 2 types of ranking:
The project focuses on speed providing 2 search features:
In both cases, results are displayed instantly.
I tried to create a decoupled architecture, as flexible as possible, taking advantages of micro-services concept and some free cloud services.
As a result, there are 5 repositories on Github:
Cloud services I use:
It is not easy to find the right architecture since the start.
First I thought about a more classic architecture, with a back-end listening for user requests and serving data. So the first version was a Single-Page-Application connected to a web application running on Heroku.
Later I realized that data displayed by the web application is almost "static", it only changes every morning when I take snapshots from Github. So all I needed was to build application data every morning using a Continuous Integration server.
The last piece of the puzzle was to build a "micro-service" that retrieves readme data from Github, when a user opens a project in the application. It has been done using webtask.io.
It takes time to build an application on one's spare time but it is a great experience to release an open-source project!
If you like the application, please star the project on Github.
We are all made of stars !
Thank you for your support!