C40
C40 is a network of the world’s megacities committed to addressing climate change. C40 supports cities to collaborate effectively, share knowledge and drive meaningful, measurable and sustainable action on climate change.
We have been developing their corporate platform for many years now, using a bespoke Ruby on Rails content management solution.
Since 2015, we have been supporting C40 in their global commitment to change the world for the better.
Around the world, C40 Cities connects 96 of the world’s greatest cities to take bold climate action, leading the way towards a healthier and more sustainable future. Representing 700+ million citizens and one quarter of the global economy, mayors of the C40 cities are committed to delivering on the most ambitious goals of the Paris Agreement at the local level, as well as to cleaning the air we breathe.
We had previously worked in this project in conjunction with our friends from San Francisco Cylinder Digital, because C40 was headquartered in America. However, since the beginning of last year, C40 moved part of their workforce to Paris, a much more suitable timezone for us, and we took on the entire project, doing both the client management and the development of the platform.
Project tech stack
Ruby on Rails
The most popular development framework based on Ruby. Its main strengths are its reduced time to market, long-term maintainability, and a mature developer community.Bootstrap
Bootstrap is a free and open-source CSS framework directed at responsive, mobile-first front-end web development.PostgreSQL
PostgreSQL, also known as Postgres, is a free and open-source relational database management system emphasizing extensibility and SQL compliance.Heroku
Heroku is a cloud platform as a service supporting several programming languages.The application is a pure Ruby on Rails bespoke CMS solution. Why did the previous provider opt for this kind of solution, we don't know. Our guess is that when they started, none of the existing CMS built on Rails were not a right fit for this project, so they decided to develop their own solution.
The C40 team needed a tailored CMS, suited for a small team of communications & marketing to manage the content and keep it up to date seamlessly and easily. The application, however, has grown over the years, and now it has over 50 models.
The backoffice is a pure Bootstrap application, specially designed for a limited set of users with a limited knowledge of tech.
The application runs on top of a PostgreSQL database and is deployed using Heroku.
Two cool things that we do using Heroku in this project are the following:
First of all, every PR generates a new test environment for its branch, so the client's team and we can access it and test automatically.
Second, the project includes a gem which pulls the database content of the production environment into the development environment through the Heroku API, which is really useful to replicate the environments and work on real data.
We always like to showcase this project as an example of simplicity and "less is more", which is very reflective of our philosophy. Even though we inherited this project from another provider, we like the approach they took in designing it.
We had two main challenges in this project. The first challenge was to adapt to their timezone. For the first two years, they were based in San Francisco (PST), before relocating to Paris (on our timezone). When they started their daily shift, we were almost over, with very little or no overlapping.
We solved this by resolving to work asynchronously and planning ahead for the day: they had to leave the tasks on our shared Trello board, and we would work on them during their night. Thus, when they would wake up the next morning, the tasks were very often already complete.
The second challenge was to inherit this project from a previous provider.
In every project takeover, there's something that gets lost in translation: undocumented parts, decisions taken by team members who left the company years ago, and other nuances.
In this case, their previous provider discontinued the service with little notice, and we had to provide immediate response to them by hitting the ground running.
We devised a very specific workflow to coordinate, which ensures that every task and deliverable is properly documented and linked to the related resources, so all team members can work independently.
We do a weekly virtual standup session - inspired in scrum - with the client's team to sync up, which is the only time in which we overlap.
All in all, we ended up working for over five years in this project. We can't think of many more clients who are so aligned with us in terms of core values, mission, working technologies and methodologies.
We're happy to contribute to an initiative so committed to improving the world. We, as an officeless, paperless and generally austere company, look forward to working many more years with and for such light-hearted initiatives.