# 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/).