diff --git a/docs/developpement/decisions/005-StaticCms.md b/docs/developpement/decisions/005-StaticCms.md new file mode 100644 index 0000000..860c849 --- /dev/null +++ b/docs/developpement/decisions/005-StaticCms.md @@ -0,0 +1,99 @@ +# Proposer une interface de backoffice qui gère le stockage via un repo git + +## Décision +* Statut: Accepté +* Décideurs: reminec, Trollune +* Date: 2023-03-19 + + +## Contexte et Description du Problème +* La nécessité de ne pas stocker le contenu dans une bdd, mais en fichiers accessibles à des humains. +* La nécessité d'éditer du contenu via une interface Web plutôt que directement dans la forge logiciel. +* La nécessité d'utiliser une forge logiciel : + * Journalisée + * Décentralisée + * Asynchrone + * Collaborative + * Relecture +* La nécessité de ne pas à avoir installer le projet sur les postes des collaboratrices. + + +## Éléments moteurs de la décision +* Possible expertise de nos voisins 2fleurs. +* Ne pas refaire les formulaire web pour saisir et valider du contenu. +* Ne pas refaire la couche de stockage qui dialogue avec une forge logiciel. +* Découplé le backoffice du moteur qui génère les fichiers statiques. + + +## Options considérées +1. [StaticCms](https://staticcms.org) +2. [Grav](https://getgrav.org) + + +## Décision prise +Nous avons choisi l'option `StaticCms` car il semble répondre précisement à nos impératifs. + + +### Conséquences Positives +* Montée en compétences sur une architecture JAMStack. +* Découple le backoffice de l'API. +* Possibilité de partager la connaissance et les embuches avec notre voisin 2fleurs. + +### Conséquences Négatives +* Incertitudes concernant les possibles. +* Montée en compétence potentiellement consommatrice de temps et d'énergie. +* Potentiellement des embûches à prévoir vu la jeunesse du projet. + + +## Les Pour et Contre des Options + +### StaticCms + +#### Pour +* Découple le backoffice du moteur qui construit les fichiers statique. +* Livre des composant d'interfaces apparement prêt à l'emploi. +* Semble compatible avec la plupart des forges logiciels. + +#### Contre +* Le nom générique n'inspire pas confiance à reminec :) +* Le support de Gitea encore en Beta. +* Le projet semble relativement récent. + + +### Grav + +#### Pour +* Propulsé par Symfony, environnement connu par @reminec +* Projet peut-être plus mature du fait de son ancienneté. +* Plugin pour git (git-sync) + +#### Contre +* Grav ajouterait des galères sur les fichiers générés du à son formatage de YAML. +* Ne respecte pas l'architecture JAM : C'est Grav qui va porter + * la couche 'backoffice' + * ainsi que la transformation du contenu en fichier statique + + +## Liens +### Voir plus loin +#### Patron de conception ADR +* https://adr.github.io + + +## Licenses + +[CC BY-SA 2.0 FR](https://creativecommons.org/licenses/by-sa/2.0/fr/) + +### Auteurices +* Trollune +* reminec 🤪 | 🧪 [ACIDES.org](https://acides.org) 🏴‍☠️🌈 ([Tedomum.net](https://tedomum.net)) + +_Librement traduit depuis adr.github.io_ + +#### Versions +##### v1.0.0 +_Date : 17 mars 2023 | Temps rédaction : 1h_ | Trollune, reminec + +## Remerciements +* [PierreO](https://mastodon.indie.host/@pierreozoux). @ indyHosters - Qui nous a soufflé ce patron de conception. +* [Quentin @ deuxfleurs - Qui a publié et communiqué ses travaux autour de StaticCms](https://quentin.dufour.io/blog/2023-02-28/staticcms-une-autre-approche-aux-cms/).