Monica v3 arrive avant la fin de 2026. Reconstruite de zéro. Toujours open source. Découvrir ce qui arrive
Monica

Blog

Notes sur la construction de Monica, sur la confidentialité des données personnelles et sur la petite mécanique du fait de rester en contact.

Page 3 sur 4

3 min de lecture
Monica en 2018
Regis Freyd

Quand on travaille chaque jour sur quelque chose, on prend rarement le temps de regarder l'ensemble. Je ne veux pas perdre de vue ce que j'aimerais que Monica accomplisse, alors voici ce que j'aimerais faire en 2018. Cet article n'est pas une feuille de route à proprement parler. Voyez-le comme ma liste de souhaits personnelle.

  • Lancer l'application mobile. Le travail a déjà commencé et nous approchons d'une v1 qui devrait sortir dans les prochaines semaines. La première version sera en lecture seule, la v2 permettra de modifier les données. Le code de l'application mobile est déjà sur GitHub et est bien sûr 100 % open source.
  • La prise en charge de GraphQL : nous avons déjà une API REST que la v1 de l'application mobile utilisera. Si nous voulons vraiment une excellente application mobile, nous devons nous assurer que toutes les requêtes vers l'API sont efficaces, et GraphQL est la meilleure solution pour cela.
  • La prise en charge de CardDAV et CalDAV. Je crois que c'est ce qui fera briller Monica sur la durée. Ces deux protocoles vous permettront de synchroniser vos contacts et vos entrées d'agenda avec vos applications de messagerie et de calendrier existantes, sur mobile comme sur ordinateur. Monica deviendrait la source centrale de vos données sociales.
  • Plus d'attention aux rappels, avec la possibilité d'être prévenu avant qu'un événement ne survienne.
  • Fournir des statistiques sur votre vie sociale : combien de fois vous êtes sorti dans un mois donné, qui vous voyez le plus, où vous traînez le plus, etc. Plus vous alimentez Monica, plus vous en tirerez d'enseignements.
  • Une vue calendrier qui affiche les rappels, les événements à venir, etc.
  • La notion de fiches d'activité « riches » : si vous indiquez par exemple que vous êtes allé au restaurant, pouvoir préciser où c'était (avec un placement automatique sur une carte), ce que vous avez mangé, combien de temps cela a duré, etc. Chaque type d'activité aurait ses informations propres à remplir.
  • Le journal devrait devenir l'endroit où votre vie se documente toute seule. Ce sera formidable une fois les fiches d'activité riches en place.
  • Stabiliser la plateforme, ajouter beaucoup de tests pour être sûr de ne rien casser en avançant.
  • Si j'ai le temps, mais seulement si : rendre l'application plus jolie. Je pense toutefois qu'il est plus important d'avoir une application fonctionnelle que belle.
  • Enfin, et ce n'est pas le moindre : ajouter d'autres façons d'importer des données. Ce sera une vraie plaie car, curieusement, la plupart des réseaux sociaux et des systèmes ne sont pas open source et ne vous donnent pas les données qu'ils ont sur vous.

J'espère accomplir tous les points ci-dessus cette année. Je sais aussi que les choses changent constamment pour toutes sortes de raisons, alors prenez cela avec des pincettes.

2 min de lecture
Ne soyez pas plus malin que moi
Regis Freyd

La plupart des sites exploitent aujourd'hui toutes les données qu'ils collectent. Amazon me recommande d'autres articles susceptibles de me plaire à partir de ce que j'ai acheté ou consulté. Twitter, Instagram et Facebook essaient de me suggérer de nouveaux amis ou des contenus qui pourraient m'intéresser.

Autant il est logique qu'un site marchand utilise tout ce qu'il sait de moi pour m'aider à mieux acheter, autant je trouve extrêmement dérangeant que les réseaux sociaux le fassent.

Tout ce qui touche au social est bien trop personnel pour que des entreprises s'en mêlent. Elles n'ont pas toutes les cartes en main pour déterminer l'effet que ces recommandations auront sur moi. De plus, elles croient savoir ce que nous allons vouloir, mais d'après mon expérience elles se trompent très souvent.

La tendance actuelle est d'aider les utilisateurs en faisant tout le travail à leur place, y compris celui qu'ils ne voulaient pas voir le site faire.

Sur Twitter, je ne veux pas savoir quels contenus d'autres utilisateurs ont aimés.

Sur Facebook, je ne veux pas qu'on me suggère d'avoir plus d'amis. Les amis que j'ai me suffisent, et si je ne suis pas ami avec d'autres personnes, c'est probablement pour une raison.

Je ne veux pas que cela arrive sur Monica. Je pense qu'il faut proposer un outil qui fait uniquement ce que ses utilisateurs veulent qu'il fasse.

Cela ne veut pas dire qu'il ne faut pas proposer de fonctionnalités qui aident les utilisateurs en analysant leurs données. Mais ces fonctionnalités ne devraient jamais être une surprise. Et elles ne devraient jamais donner le sentiment que le site en sait trop sur ses utilisateurs.

5 min de lecture
Rétrospective de l'année
Regis Freyd

Je m'appelle Regis Freyd et je développe Monica depuis un an et demi. Monica est un logiciel open source de gestion des relations personnelles et reste aujourd'hui un projet parallèle, car il ne génère pas assez de revenus pour que je puisse y travailler à plein temps. Le parcours de 2017 a été plutôt formidable, et c'est de cela que je veux parler aujourd'hui.

Comment Monica est devenue populaire

Monica a été construite à l'origine en juin 2016. J'y ai travaillé par intermittence pendant quelques mois, puis je l'ai soumise à Reddit. Peu de gens s'y sont intéressés, encore moins se sont inscrits (une douzaine de personnes), alors j'ai arrêté d'y travailler et je me suis concentré sur ma carrière. En mai 2017, après avoir changé de travail, j'ai eu envie de revenir à quelque chose que j'aime beaucoup : les projets parallèles. Chaque jour après le travail, je bossais donc sur Monica. J'ai tenu un mois, j'ai ouvert le code sur GitHub, et je me suis découragé de nouveau. J'ai appelé un ami, je lui ai dit que je travaillais sur un projet depuis un an et que je voulais le supprimer parce que personne ne s'y intéressait. J'ai dit que je supprimerais tout le dépôt le lundi (nous étions dimanche). Je suis allé me coucher et, le matin, avant de supprimer le projet, j'ai voulu tenter une dernière chose : le publier sur Hacker News. Comme aucun de mes projets précédents n'avait jamais suscité le moindre intérêt sur HN, je n'avais aucun espoir. J'ai posté le lien et je suis parti deux heures.

Quand je suis revenu m'assurer que personne ne s'en souciait, j'ai vu que j'étais en page 2 de Hacker News. J'étais sidéré. J'avais une trentaine de votes et quelques commentaires. Je n'y croyais pas. Les gens semblaient aimer le projet et l'idée derrière. Ils appréciaient aussi son caractère open source. Puis tout s'est emballé.

En moins d'une heure, Monica a atteint la première page de Hacker News. Quelques minutes plus tard, j'étais 3e, puis 2e. Et enfin 1er. Et je suis resté numéro 1 pendant deux jours d'affilée, avec près de 1100 votes et des centaines de commentaires.

Nous sommes passés de 10 utilisateurs à 5600 en quelques heures.

Le lendemain, nous atteignions 7000 utilisateurs. Monica est devenue le dépôt le plus populaire de GitHub, passant de 0 à 1700 étoiles en une heure.

Puis les emails ont commencé à arriver. J'ai passé les trois jours suivants à répondre à des centaines de messages d'utilisateurs disant qu'ils attendaient un outil pareil depuis des années. Quelques fonds d'investissement m'ont contacté pour discuter. En tout, j'ai parlé à 4 investisseurs de New York et de San Francisco. J'ai vite compris qu'ils n'avaient pas du tout la même vision que moi du produit et voulaient y mettre de la publicité et d'autres façons « intelligentes » d'alimenter Monica en données. C'était tellement contraire à mes valeurs que la discussion s'est arrêtée là.

Aujourd'hui, Monica compte environ 10 300 utilisateurs et plus de 90 000 contacts. Le dépôt GitHub a 3788 étoiles et 409 forks. Nous avons reçu des centaines de pull requests, et la communauté a ouvert plus de 300 tickets. Il est clair que le projet est devenu populaire et qu'il suscite un véritable intérêt. Les images Docker ont été téléchargées plus de 13 000 fois. Il est presque impossible aujourd'hui de savoir combien d'instances de Monica tournent dans la nature, mais j'imagine quelques centaines. J'ai environ 45 clients payants, même si, pour être honnête, il n'y a pour l'instant presque aucun avantage à prendre un compte payant : les gens qui le font le font surtout pour soutenir le développement.

J'ai beaucoup hésité avant d'ouvrir le code de Monica. Ma plus grande peur était que l'on critique mon code, que l'on voie à quel point il était mauvais. Je n'avais aucun test unitaire. J'avais pris des raccourcis pour atteindre mes objectifs, et le code était loin d'être bon. À ma grande surprise, une seule personne a mentionné la qualité du code. Personne d'autre n'en a même parlé. Les gens étaient simplement reconnaissants que l'outil existe et soit ouvert. Le secret, c'est de ne pas avoir peur de partager son travail par crainte d'être jugé.

Et maintenant ?

  • La croissance initiale a ralenti. Environ 10 à 20 utilisateurs s'inscrivent chaque jour. Gardez à l'esprit que je n'ai fait aucun marketing, à part cette unique publication sur Hacker News. Le chiffre est modeste, mais je trouve assez incroyable d'avoir autant d'inscriptions.
  • Je reçois beaucoup de demandes de fonctionnalités. J'en suis très reconnaissant, mais je ne peux pas tout faire. D'une part parce que c'est trop de travail, d'autre part parce que je veux me concentrer sur des fonctionnalités que les gens accepteront de payer. C'est le seul moyen de rendre ce projet viable à long terme. N'oubliez pas que je travaille dessus le soir et le week-end, mais à 20 ou 30 heures par semaine, il sera de plus en plus difficile de tenir ce rythme.
  • Letterbox est une immense source d'inspiration pour moi en matière de modèle économique, et je copierai probablement leur offre Pro.
  • L'une des choses que j'aimerais faire est de livrer une application mobile en 2018. Je crois que c'est ce que les gens veulent le plus, et c'est pour cela que j'ai publié une API il y a deux mois. J'ai beaucoup de travail devant moi, et la première étape sera d'apprendre à développer une véritable application mobile native.
  • Je pense que Monica peut devenir la seule source de vérité sur vos contacts et votre agenda. C'est la direction pour 2018, ainsi qu'un bel endroit où consigner vos ressentis.
1 min de lecture
Ajouter une date sans connaître l'année
Regis Freyd

Une date de naissance se compose d'un jour, d'un mois et d'une année. Dans un monde idéal, du moins, car en pratique vous ignorez le plus souvent l'année de naissance. S'il s'agit de l'anniversaire d'une amie chère qui refuse de vous donner son âge, vous ne connaîtrez que le jour et le mois pour le fêter chaque année.

C'est pourquoi nous avons ajouté la possibilité de renseigner une date sans en connaître l'année.

Ce changement s'applique aux dates de naissance, aux dates de première rencontre et aux dates de décès. Les rappels liés à ces dates fonctionnent comme avant.

image

Cette fonctionnalité était l'une des plus demandées dans notre suivi des tickets. Nous espérons qu'elle vous aidera à enregistrer davantage d'informations sur vos amis et les membres de votre famille.

1 min de lecture
Les notes favorites arrivent
Regis Freyd

Les notes peuvent maintenant être mises en favori. Les favoris sont un excellent moyen de garder sous la main les notes qui vous intéressent.

image

Quand une note est en favori, elle apparaît dans un nouvel onglet du tableau de bord, appelé Notes importantes.

image

Cette version apporte aussi quelques petits plus :

  • Certaines actions de l'interface affichent désormais des notifications dynamiques lors de l'ajout, de la modification ou de la suppression de données.
  • Il est désormais possible de changer le prénom et le nom du propriétaire du compte.

Ces changements sont dans la version 1.3.0, déjà en production, et comme toujours vous pouvez l'installer sur un serveur qui vous appartient.

Bonne découverte !

1 min de lecture
Une meilleure façon de gérer les tâches
Regis Freyd

Ajouter et gérer des tâches n'a jamais été aussi simple dans Monica.

Nous nous sommes appuyés sur le travail de la v1.1 pour permettre la gestion des tâches directement depuis la fiche du contact, au lieu d'ouvrir un nouvel écran pour saisir une tâche ou d'attendre un rechargement de page à chaque suppression.

Autre changement important : les tâches utilisent maintenant des cases à cocher. Enfin. Nous voulions le faire depuis longtemps.

image

Ces changements sont dans la version 1.2.0, déjà en production, et comme toujours vous pouvez l'installer sur un serveur qui vous appartient.

Bonne découverte !

2 min de lecture
Les champs de contact multiples arrivent
Regis Freyd

Certaines personnes ont une adresse postale et un compte Twitter. D'autres ont plusieurs adresses, pas de Twitter du tout et un compte Quora. Il est difficile de prévoir tous les cas de figure, mais nous voulons laisser chacun organiser ses contacts comme il l'entend.

Une adresse postale, un compte Twitter... nous appelons toutes ces façons de joindre quelqu'un un champ de contact.

À partir de maintenant, vous pouvez ajouter autant de champs de contact que vous voulez par contact. Auparavant, vous n'aviez droit qu'à 5 champs prédéfinis.

image

Chaque champ de contact a un type : cela peut être un email, un compte Facebook, un numéro de fax. Chaque compte est livré avec 6 types de champs génériques :

  • Email
  • Numéro de téléphone
  • Facebook
  • Twitter
  • Whatsapp
  • Telegram

Vous pouvez ajouter ou supprimer des types de champs de contact sur votre compte à votre guise, et les nommer comme vous le souhaitez, dans le nouvel onglet Personnalisation des réglages.

Chaque type de champ de contact peut aussi être associé à un protocole. Un protocole indique au navigateur ce qu'il doit faire quand vous cliquez sur un champ de contact. Pour un numéro de téléphone, par exemple, le protocole tel: demandera au navigateur de lancer le logiciel que vous utilisez sur votre ordinateur pour passer des appels.

image

L'API a été mise à jour pour prendre en charge ces deux nouveaux concepts (les champs de contact et les types de champs de contact).

Nous avons aussi légèrement réorganisé la barre latérale de la fiche d'un contact. Les informations sur les conjoints et les enfants sont maintenant en haut, car je pense qu'elles comptent bien plus que l'adresse du contact, par exemple.

Ces changements sont dans la version 1.1.0, déjà en production, et comme toujours vous pouvez l'installer sur un serveur qui vous appartient.

Bonne découverte !

4 min de lecture
Monica 1.0.0 avec l'API, les rencontres et les contacts décédés
Regis Freyd

Monica est enfin prête pour la v1.0.0.

Chez Monica, nous essayons de suivre l'approche SemVer. Changer de version majeure signale des changements majeurs dans l'API. C'est pourquoi je suis vraiment heureux d'annoncer la sortie de la v1.0.0. Elle ajoute beaucoup de fonctionnalités et servira de socle à toutes les belles choses que je prévois de livrer dans les mois à venir. Parlons d'abord des fonctionnalités, puis des changements techniques introduits dans cette version.

L'API

Monica a enfin une API. Tout n'est pas encore accessible, mais la plupart des données concernant les contacts le sont. Une version future apportera aussi les réglages et les données du compte. Mon objectif est que tout soit disponible via l'API. Nous prenons en charge OAuth 2.0 et les jetons personnels. En coulisses, Laravel Passport gère tout ce qui touche à OAuth.

Rien n'aide autant les développeurs à se lancer dans un projet qu'une bonne documentation. C'est pourquoi nous publions également un nouveau portail de documentation qui se veut le plus exhaustif possible. Sur chaque page, nous indiquons la date de dernière mise à jour, pour que vous sachiez à quel point elle est fraîche.

API

Ce sera maintenant aux développeurs de faire preuve de créativité avec les données de Monica. De notre côté, nous travaillons sur la première application mobile officielle de Monica, pour Apple comme pour Android, mais vous en saurez plus d'ici la fin de l'année.

Comment vous avez rencontré quelqu'un

Monica a pour but d'aider chacun à se souvenir d'informations importantes sur les personnes qui comptent, en privé et pour vos yeux seulement. Quand on a beaucoup de contacts, il est parfois difficile de se rappeler comment et où on les a rencontrés. Vous pouvez désormais indiquer comment vous avez rencontré quelqu'un, ou si un autre contact vous a présentés. Vous pouvez même demander à être rappelé de l'anniversaire de cette rencontre.

rencontres

Marquer un contact comme décédé

La vie est parfois injuste et les gens meurent. Nous avons ajouté la possibilité de marquer un contact comme décédé et d'indiquer une date facultative pour ce triste événement. Vous pouvez aussi choisir d'être rappelé de cette date. Quand un contact est marqué comme décédé, un petit ⚰ apparaît à côté de son nom dans toute l'application.

marquer un contact comme décédé

Un écran d'ajout de contact plus rapide

Notre objectif est de vous aider à faire ce que vous voulez le plus vite possible. Nous avons donc ajouté un petit bouton sur l'écran d'ajout de contact pour enregistrer le contact en cours et en ajouter un autre dans la foulée. Cela vous fera gagner de précieuses secondes.

De gros changements en coulisses

Pour la v1.0.0, nous avons mis le code à niveau vers Laravel 5.5, afin de profiter de l'excellente fonctionnalité Resources introduite dans cette version pour notre API.

Grâce à @mauricew, nous avons aussi remplacé l'ancien système de build front-end basé sur Gulp et Bower par mix, le système de build livré par défaut avec Laravel. Nous avons pu supprimer beaucoup de dépendances, nettoyer le code et, surtout, garantir qu'il n'y aura plus de conflits sur les fichiers CSS et JS dans nos futures pull requests.

Pour finir

La version 1.0.0 est déjà en production et, comme toujours, vous pouvez l'installer sur un serveur qui vous appartient.

La v1.0.0 représente littéralement des milliers de nouvelles lignes de code. C'est le fruit d'une communauté en bonne santé. Sur un plan personnel, je me sens très chanceux que Monica aide autant de monde. Vos retours continus m'aident énormément à travailler aussi dur que possible sur ce produit. Les mois qui viennent seront très chargés : beaucoup de nouvelles fonctionnalités, une application mobile et d'autres surprises. L'avenir sera radieux pour notre communauté.

Bonne découverte !

2 min de lecture
Point d'étape, septembre 2017
Regis Freyd

J'ai été un peu moins actif côté communication ces 40 derniers jours. Je suis aussi plus lent à répondre aux tickets et à intégrer les pull requests. Cette situation ne me plaît pas, mais il me sera difficile de la changer dans le mois qui vient. Cela ira mieux ensuite.

Qu'est-ce que je fabrique en ce moment

Je travaille autant que possible sur le projet. Chaque heure libre dont je dispose est investie dans Monica. Pour rassurer toutes les personnes qui m'écrivent au sujet de mon engagement et du risque de voir le projet mourir : je suis toujours aussi motivé qu'avant et cela reste une priorité pour moi.

En ce moment, je travaille cependant sur l'API et je m'assure qu'elle fonctionne comme elle le devrait. Je construis aussi la documentation autour, car cette documentation doit être excellente pour que les gens utilisent l'API. Pour ces raisons, et aussi parce que cela reste un projet parallèle tant que je n'aurai pas trouvé le moyen d'en faire mon métier à plein temps, je ne veux pas être distrait par les retours, les bugs ou les nouvelles fonctionnalités pour l'instant. Dès que l'API sera terminée, je reviendrai vers la communauté. Malheureusement, je n'ai tout simplement pas le temps de faire tout ce que j'aimerais faire, et je dois me concentrer avec beaucoup de fermeté si je veux avancer.

La suite

Dans les prochains jours, une première version de l'API sera publiée, avec de nouvelles méthodes ajoutées ensuite.

Une fois l'API terminée, nous devrons soigner la notion d'activités partagées avec vos contacts. Nous devrions aussi rendre le tableau de bord plus utile et transformer le journal pour qu'il devienne vraiment utile. Il faudra également implémenter le protocole CardDAV, même si je ne sais pas encore à quel point il s'intégrera bien dans la pile actuelle.

Je suis convaincu que ce projet a un potentiel énorme. Si vous êtes déjà utilisateur, je cherche toujours des retours et des témoignages. Merci pour votre aide.

2 min de lecture
Monica 0.6.3 avec une meilleure gestion des contacts et le Markdown
Regis Freyd

La fonctionnalité la plus demandée sur Monica (depuis la précédente) était la possibilité de désigner un contact existant comme conjoint ou comme enfant. Avec la 0.6.3, c'est désormais possible.

Comment cela fonctionne

Quand vous ajoutez un conjoint ou un enfant, vous avez accès à deux nouvelles choses :

  • Vous pouvez créer soit un contact partiel, soit un vrai contact au moment d'ajouter cette personne. Un contact partiel correspond à l'ancien fonctionnement : ces contacts n'apparaissent pas dans la liste des contacts et vous ne pouvez pas leur ajouter de rappels ou de notes spécifiques. Un « vrai » contact crée une véritable fiche pour cette personne, à laquelle vous pourrez ajouter ses propres enfants ou conjoints.

créer un contact complet

  • Au lieu de créer un nouveau contact, vous pouvez simplement relier un contact existant comme enfant ou conjoint de ce contact.

créer un contact complet

Ce changement est le plus important qu'ait connu le code jusqu'ici, et celui qui a demandé le plus de temps. Pour celles et ceux qui hébergent Monica eux-mêmes, soyez prudents lors de la mise à jour de votre instance : sauvegardez bien la base de données avant de mettre à niveau.

Autres changements importants de cette version

  • Pour les adeptes de la polygamie, vous pouvez avoir plusieurs conjoints par contact.
  • Nouvelles traductions : italien, allemand. Merci à la communauté.
  • Prise en charge du Markdown dans les notes et les appels enregistrés. Vous pouvez ainsi utiliser des listes, par exemple.
  • Nous prenons désormais en charge toutes les devises du monde.
  • Beaucoup de corrections de bugs, dont des correctifs de sécurité.
  • Nous avons commencé à utiliser Tachyons comme nouveau framework CSS. Il remplacera progressivement Bootstrap.

Pour finir

La version 0.6.3 est déjà en production et, comme toujours, vous pouvez l'installer sur un serveur qui vous appartient.

Bonne découverte !