{
 "url": "https://11d.im/journal/strapi-astro/",
 "published": "Wed Aug 04 2021 01:42:49 GMT+0200 (Central European Summer Time)",
 "updated": "Tue Oct 08 2024 00:09:56 GMT+0200 (Central European Summer Time)",
 "author": {
  "name": "tk",
  "url": "https://11d.im"
 },
 "content": "<section>\n<p><a href=\"https://11d.im/journal/10-jours-six-photos/\">\u00c9pisode pr\u00e9c\u00e9dent</a> : Quelques notes sur <a href=\"https://six.photos\">six.photos</a> : un brouillon de site pour partager des photos avec mes proches (et de mes proches).</p>\n</section>\n<section>\n<div class=\"section-link\">\n<a class=\"no-tufte-underline\" href=\"https://11d.im/journal/strapi-astro/#strapi\"></a><h2 id=\"strapi\" tabindex=\"-1\"><a href=\"https://strapi.io\">Strapi</a></h2>\n</div>\n<ul>\n<li>Installer Strapi et l'int\u00e9grer \u00e0 mon \"architecture\" a \u00e9t\u00e9 plus rapide que pr\u00e9vu. Je misais pas mal sur ma premi\u00e8re semaine de cong\u00e9 mais \u00e0 la fin du week-end, c'\u00e9tait d\u00e9j\u00e0 pli\u00e9.</li>\n<li>Comme j'avais l'immense flemme de prendre un vps et de le g\u00e9rer, je suis parti sur du <a href=\"https://heroku.com\">heroku</a> malgr\u00e9 les gros warnings \u00e0 base de logo Salesforce partout puis d'AWS par-ci, par l\u00e0 dans les URLs. J'avais pas vraiment suivi l'actualit\u00e9 de cette plateforme, j'en \u00e9tais rest\u00e9 \u00e0 un truc formidable pour les d\u00e9veloppeurs qui n'ont pas envie de faire de l'ops.\n<ul>\n<li><a href=\"https://strapi.io/documentation/developer-docs/latest/setup-deployment-guides/deployment/hosting-guides/heroku.html\">Le tutoriel</a> est plut\u00f4t bien fait. Il couvre notamment l'instanciation d'une base de donn\u00e9es PostgreSQL.</li>\n<li>Il manque peut \u00eatre quelque chose sur la persistance des fichiers ou le raccord avec une solution d'object storage. Le plugin <a href=\"https://github.com/team-appforge/strapi-provider-upload-scaleway\">strapi-provider-upload-scaleway</a> fonctionne parfaitement et simplement.</li>\n<li>J'\u00e9tais un peu en mode netlify et sans r\u00e9fl\u00e9chir, j'ai pris un dyno (une abstraction de serveur sur lequel sera copi\u00e9 le code) et il \u00e9tait aux US donc c'\u00e9tait tr\u00e8s lent. En migrant vers des serveurs dans la r\u00e9gion EU, c'\u00e9tait fluide. <code>heroku fork --from sourceapp --to targetapp --region eu</code> (<a href=\"https://devcenter.heroku.com/articles/app-migration\">plus d'information</a>)</li>\n<li>J'ai \u00e9galement upgrad\u00e9 pour un dyno <strong>hobby dev</strong>. Ce qui revient moins cher que le VPS minimal pour faire tourner strapi.</li>\n<li>C'est \u00e9galement l'occasion de se rendre compte que le <strong>serverless</strong> n'est pas si sans server que \u00e7a mais que c'est juste bien abstrait.</li>\n<li>Scaleway propose \u00e9galement la gestion de serveurs postgresql mais la partie serverless demande quand m\u00eame un certain effort de devops que je vais m'\u00e9pargner pour l'instant. Cela ne devrait pas \u00eatre tr\u00e8s compliqu\u00e9 de migrer, l'ayant d\u00e9j\u00e0 fait pour avoir un environnement de d\u00e9veloppement iso avec l'environnement de production.</li>\n<li>L'alternative, et le end game originel, est de pouvoir tout h\u00e9berger moi-m\u00eame en recyclant un vieux laptop Lenovo que je laisserai tourner en permanence dans la cave. N'ayant pas encore la fibre et une bande passante au final limit\u00e9, \u00e7a reste un horizon relativement lointain.</li>\n</ul>\n</li>\n<li>L'interface de Strapi est plut\u00f4t honn\u00eate et facile \u00e0 customiser progressivement.</li>\n<li>La gestion des utilisateurs est rationnelle mais pas vraiment intuitive. Les end-users et les auteurs/\u00e9diteurs/admin sont dans deux trucs diff\u00e9rents mais g\u00e9rer dans le m\u00eame module. On s'y fait.</li>\n<li>Le code est model\u00e9 sur une base Model <s>View</s> Controller qui fait quand m\u00eame un peu chelou en 2021.</li>\n<li>Avoir un contr\u00f4le total sur la mod\u00e9lisation des r\u00e9ponses de l'API est quand m\u00eame un sacr\u00e9 bol d'air frais apr\u00e8s avoir \u00e9t\u00e9 contraint par les API des plateformes.</li>\n</ul>\n</section>\n<section>\n<div class=\"section-link\">\n<a class=\"no-tufte-underline\" href=\"https://11d.im/journal/strapi-astro/#strapi-%2B-astro\"></a><h2 id=\"strapi-%2B-astro\" tabindex=\"-1\">Strapi + Astro</h2>\n</div>\n<ul>\n<li>Je suis pass\u00e9 de 30 secondes \u00e0 20 secondes de build \u270c\ufe0f. Je pense que je commencerai \u00e0 r\u00e9fl\u00e9chir \u00e0 une alternative quand j'approcherai d'1 minute de build. J'ai encore pas mal de marge.</li>\n<li>Le code a \u00e9galement perdu une 50aine de ligne tellement l'API REST d'airtable n'est quand m\u00eame avant tout adapt\u00e9 qu'\u00e0 l'affiche de leur propre front/client.\n<ul>\n<li>J'ai pu \u00e9vacuer tous les morceaux d'interface pour l'upload et la gestion des photos.</li>\n</ul>\n</li>\n<li>Je suis vraiment satisfait de cet assemblage.\n<ul>\n<li>Je n'ai pas vraiment de probl\u00e8me de performance \u00e0 me soucier.</li>\n<li>Le CMS n'est utilis\u00e9 que lorsque quelqu'un vient \u00e9diter le site \u00e0 la suite de quoi le site est enti\u00e8rement reconstruit et autonome en terme d'affichage.</li>\n<li>Je n'ai pas de serveur \u00e0 int\u00e9grer dans une charge cognitive. Facturation, s\u00e9curit\u00e9, etc.</li>\n<li>En l'\u00e9tat, si je ne touche plus \u00e0 rien, ce ne sont que des fichiers html qui s'afficheront quoi qu'il arrive.</li>\n<li>Simon Wilson a fait <a href=\"https://simonwillison.net/2021/Jul/28/baked-data/\">un super article sur l'architecture Baked Data</a> qui est une bonne piste pour un avenir encore lointain.</li>\n</ul>\n</li>\n<li>Je peux donc maintenant passer du temps \u00e0 faire de la photographie, voir avec quelques proches s'ils ne veulent pas mettre leur photo sur ce site et r\u00e9fl\u00e9chir \u00e0 la prochaine \u00e9tape.</li>\n<li>Je suis \u00e9galement heureux d'utiliser mon propre site et d'y partager des photos depuis une dizaine de jours. C'est vraiment un plaisir d'avoir un espace de partage qui soit totalement en dehors du cadre de facebook, twitter, instagram, etc.</li>\n</ul>\n</section>",
 "content-plain": "\u00c9pisode pr\u00e9c\u00e9dent : Quelques notes sur six.photos : un brouillon de site pour partager des photos avec mes proches (et de mes proches).\n Strapi Installer Strapi et l'int\u00e9grer \u00e0 mon \"architecture\" a \u00e9t\u00e9 plus rapide que pr\u00e9vu. Je misais pas mal sur ma premi\u00e8re semaine de cong\u00e9 mais \u00e0 la fin du week-end, c'\u00e9tait d\u00e9j\u00e0 pli\u00e9. Comme j'avais l'immense flemme de prendre un vps et de le g\u00e9rer, je suis parti sur du heroku malgr\u00e9 les gros warnings \u00e0 base de logo Salesforce partout puis d'AWS par-ci, par l\u00e0 dans les URLs. J'avais pas vraiment suivi l'actualit\u00e9 de cette plateforme, j'en \u00e9tais rest\u00e9 \u00e0 un truc formidable pour les d\u00e9veloppeurs qui n'ont pas envie de faire de l'ops.  Le tutoriel est plut\u00f4t bien fait. Il couvre notamment l'instanciation d'une base de donn\u00e9es PostgreSQL. Il manque peut \u00eatre quelque chose sur la persistance des fichiers ou le raccord avec une solution d'object storage. Le plugin strapi-provider-upload-scaleway fonctionne parfaitement et simplement. J'\u00e9tais un peu en mode netlify et sans r\u00e9fl\u00e9chir, j'ai pris un dyno (une abstraction de serveur sur lequel sera copi\u00e9 le code) et il \u00e9tait aux US donc c'\u00e9tait tr\u00e8s lent. En migrant vers des serveurs dans la r\u00e9gion EU, c'\u00e9tait fluide. heroku fork --from sourceapp --to targetapp --region eu (plus d'information) J'ai \u00e9galement upgrad\u00e9 pour un dyno hobby dev. Ce qui revient moins cher que le VPS minimal pour faire tourner strapi. C'est \u00e9galement l'occasion de se rendre compte que le serverless n'est pas si sans server que \u00e7a mais que c'est juste bien abstrait. Scaleway propose \u00e9galement la gestion de serveurs postgresql mais la partie serverless demande quand m\u00eame un certain effort de devops que je vais m'\u00e9pargner pour l'instant. Cela ne devrait pas \u00eatre tr\u00e8s compliqu\u00e9 de migrer, l'ayant d\u00e9j\u00e0 fait pour avoir un environnement de d\u00e9veloppement iso avec l'environnement de production. L'alternative, et le end game originel, est de pouvoir tout h\u00e9berger moi-m\u00eame en recyclant un vieux laptop Lenovo que je laisserai tourner en permanence dans la cave. N'ayant pas encore la fibre et une bande passante au final limit\u00e9, \u00e7a reste un horizon relativement lointain. L'interface de Strapi est plut\u00f4t honn\u00eate et facile \u00e0 customiser progressivement. La gestion des utilisateurs est rationnelle mais pas vraiment intuitive. Les end-users et les auteurs/\u00e9diteurs/admin sont dans deux trucs diff\u00e9rents mais g\u00e9rer dans le m\u00eame module. On s'y fait. Le code est model\u00e9 sur une base Model View Controller qui fait quand m\u00eame un peu chelou en 2021. Avoir un contr\u00f4le total sur la mod\u00e9lisation des r\u00e9ponses de l'API est quand m\u00eame un sacr\u00e9 bol d'air frais apr\u00e8s avoir \u00e9t\u00e9 contraint par les API des plateformes. Strapi + Astro Je suis pass\u00e9 de 30 secondes \u00e0 20 secondes de build \u270c\ufe0f. Je pense que je commencerai \u00e0 r\u00e9fl\u00e9chir \u00e0 une alternative quand j'approcherai d'1 minute de build. J'ai encore pas mal de marge. Le code a \u00e9galement perdu une 50aine de ligne tellement l'API REST d'airtable n'est quand m\u00eame avant tout adapt\u00e9 qu'\u00e0 l'affiche de leur propre front/client.  J'ai pu \u00e9vacuer tous les morceaux d'interface pour l'upload et la gestion des photos. Je suis vraiment satisfait de cet assemblage.  Je n'ai pas vraiment de probl\u00e8me de performance \u00e0 me soucier. Le CMS n'est utilis\u00e9 que lorsque quelqu'un vient \u00e9diter le site \u00e0 la suite de quoi le site est enti\u00e8rement reconstruit et autonome en terme d'affichage. Je n'ai pas de serveur \u00e0 int\u00e9grer dans une charge cognitive. Facturation, s\u00e9curit\u00e9, etc. En l'\u00e9tat, si je ne touche plus \u00e0 rien, ce ne sont que des fichiers html qui s'afficheront quoi qu'il arrive. Simon Wilson a fait un super article sur l'architecture Baked Data qui est une bonne piste pour un avenir encore lointain. Je peux donc maintenant passer du temps \u00e0 faire de la photographie, voir avec quelques proches s'ils ne veulent pas mettre leur photo sur ce site et r\u00e9fl\u00e9chir \u00e0 la prochaine \u00e9tape. Je suis \u00e9galement heureux d'utiliser mon propre site et d'y partager des photos depuis une dizaine de jours. C'est vraiment un plaisir d'avoir un espace de partage qui soit totalement en dehors du cadre de facebook, twitter, instagram, etc.",
 "syndication": [],
 "type": "entry",
 "name": "Strapi + astro"
}