CubeSats have emerged as powerful tools for a new class of space missions that is recognized by academia and the space industry, but they still strive to reach the same reliability of bigger satellites. CubeSats serves many objectives, they are mainly used to educate students through hands-on design and manufacturing experience. The QB50 project aimed to use the CubeSat concept to further facilitate access to space for future generations, to carry out novel science, to demonstrate new space technologies, and train young engineers. The project, coordinated by the von Karman Institute for Fluid Dynamics in Belgium, invited universities to contribute to the mission with their own CubeSats. After six years, the project is coming to a successful conclusion. This paper collects several years of experiences and lessons learned during the implementation of the project. This is a synthesis of the heritage accumulated by coordinating a number of CubeSats forming the first ever University built constellation. These lessons can be used not only as a reference for the implementation of future CubeSat constellations but also as a simple collection of guidelines for the design, testing and review of future CubeSat projects.