The fact that Cozy is a platform, like GNU/Linux, Windows, or iOS is one of the things that make it really special: its main purpose is to run applications. In order to be able to develop such applications, independent developers must be given the tools to create them without wasting time. In this regard, developer documentation is crucial.
We already had such a documentation, but we wanted to improve it by an order of magnitude. We’re doing this by treating the documentation the same way we treat any of our applications, following the same development process, bringing to it the same level of focus and quality. In a word, we want to make the documentation part of the product and not a second class citizen.
We started by gathering feedback from developers (whether they succeeded in creating an application or not), to improve our knowledge on what could be improved with the previous version. We realized there is no such thing as a “Cozy application”, but rather multiple ways to create a service that interact with our data:
- a Node.js application
- a connector
- an external application (e.g. a mobile application)
We want to develop a specific documentation for each type of applications, but we had to start with the most common one, which is why the new documentation focuses on creating a Node.js application for Cozy. It aims at realizing a simple Node.js application (HTTP API), and to show in details how interacting with the data.
So here are the results of our work:
- Installing the development environment
- Hello World! Architecture of a Node.js application for Cozy
- Interacting with Cozy’s data layer, the Data System
- Packaging an application to install it
As usual with Cozy, all the sources are available on this Github repository where anyone (that means you too!) can contribute.
On a side note, we are fully aware that developing an application from scratch in an unfamiliar environment can be overwhelming. That’s why we set up a mentoring program.
Now it’s your turn: what if you start writing your first Cozy application, that you will be able to install on your personal Cloud? We know you have tons of ideas!