If your are like me you most probably have created some pet projects to help you learn new skills, try new technologies, create that product that you need or just keep your brain entertained with some new hot stuff... I think it's also called procrastination.

But if you haven't yet created any pet project then I really encourage you to do it. I personally have learnt a lot and that has helped me take my team into the next level. Man... that weekend learning about Kubernetes really paid off!

Truth is, like many others projects at some point yours will also become outdated, obsolete and most probably abandoned.
So why not give it another chance?

Open source your project!

Some of the benefits of open sourcing your projects:

  • Help others learn from your experience
  • Learn how to receive feedback on your past work
  • Get other point of views and different opinions
  • Become a mentor
  • Learn how to build and foster a community
  • Give the community real-world examples of real applications

How to open source a project

Steps to open source a project

  1. Choose the project

    Choose the project you want to open source.

  2. Remove sensitive data

    It is important to remove all sensitive data like passwords, credentials, keys... because once the project is published it will be available to anyone on the Internet.

  3. Find the right license

    Having the right license for the project it is really important as it will dictate how other can modify and distribute your work. A good place to start is https://choosealicense.com/licenses/mit/.

  4. Publish it to a repository hosting service

    Time to make the work public in a repository hosting service like GitHub or Bitbucket.

  5. Share it with the world

    Make some noise and let others know about you and your project. Twitter, Facebook, Medium, Hacker News...

  6. Build a community

    Time to start building a community around your project so you can get other people to collaborate with you.

Why I think is a good idea?

There are a lot of technical books on how to write good code and how to refactor legacy code, however I find the code examples on some of those books too pre-fabricated and not aligned with what a real project might look like. Especially when several pieces need to work together e.g: caching, background jobs, services, API calls... all in one application.

I personally believe that is a good idea to show other developers not only how to write awesome code but to show them how bad code can look like, how to detect code smells, why it is not a good idea to take certain decisions at certain point of the project lifetime or simply just to learn how to refactor legacy code and apply design patterns to different architectures. All of that in a real production-ready application.

I have open sourced nofity.com a pet project that helped me learn Ruby on Rails, https://github.com/ainformatico/nofity.

Feel free to share and contribute!