Miguel Piedrafita

Miguel Piedrafita

DependenCI: Keep your Composer dependencies up-to-date for free!

DependenCI launched its public beta on the 12th of May of 2017 at 3:26 pm. At the time of this writing, it has been visited by more than 2.000 people, and more than 100 users have already tried it. So, how did it all start?

The Idea

The idea came after receiving a pull request from Greenkeeper. For those who don't know, Greenkeeper is a service that monitors your project's npm dependencies and sends a pull request every time a new version is released. I asked myself: ¿Why doesn't a thing like this exist for Composer? and I decided to build one.

The Development

I started developing it reusing the Climb code (an abandoned CLI project that kind of achieved what I wanted). At this point, It was very easy to check outdated dependencies locally. And when I say very easy, I mean it literally took seven lines to check it and return a beautiful table.

The code required to check for outdated dependencies locally

Then, I started modifying the code to use the GitHub API instead of the local composer.json file, and the final implementation took, also, seven lines to check using the GitHub API and queue a pull request.

The code that checks for outdated dependencies using the GitHub API and queues a Pull Request

With a few more tweaks for allowing dependency exclusion and implementing Eloquent models, the backend was ready!

The Frontend

The frontend was created using AdminLTE as a template for the dashboard, and the Pratt landing page as a template for the landing page. I am happy with the result, but I may open-source the frontend or get a partner to help me with that in the near future.

The Launch

Then, the beta time came. I uploaded the landing page with an early-access form and promoted it on Reddit and HackerNews. Two days later, when I decided to launch the public beta, more than 80 users already had filled the early-access form!

I sent the launch email (you can view it here) and got 30 users the next day!

Feedback, Bug Fixes & New Features

The feedback came almost instantly. I received some emails about users having problems with adding repos, identified the problem, and deployed a fix. I also changed the name to remove "Composer" from it (the old name was ComposerCI), as requested by the Composer team. I send another email to all the subscribers telling them about all the changes (you can view it here).

Used to open-source issues, I created a roadmap repository so users could suggest new features, and got some interesting ones. You can find it here, and it also served me to announce what I was working on and as a public changelog.

Conclusion

I created DependenCI to solve a personal need and to learn more things and ended up building a tool that seems to be useful for PHP developers all over the world. In the next weeks, I plan to add more features, like using GitHub Integrations, integrating with GitLab, or improving the frontend (as I said, I will probably welcome another developer to the project, stay tuned!).

DependenCI is currently free for both public and private repositories, and if you sign up before the beta ends, you'll keep that pricing forever!

Also, I would appreciate if you could take a moment to share this post, it really helps me to see you liked this, and I may write more posts like this in the future. Hope my product helps you to grow as a PHP developer, and let's make PHP great (better) again!