J’appelle « L’Affranchi » le site web que je veux construire pour prendre la relève d’AgoraVox qui s’effondre. J’ai écrit trois documents qui définissent les bases du projet et de sa réalisation.
- La charte de l’Affranchi
- Les règles de bonne conduite
- Conception et réalisation d’un site web de journalisme libre
J’utilise l’Intelligence Artificielle pour réaliser ce site. Je publie ici mes premiers échanges avec ChatGPT. J’ai commencé par transmettre le Charte de l’Affranchi. Voici la suite du dialogue qui commence donc par l’étude critique faite par ChatGPT de cette charte. J’ai mis mes interventions en gras et celles de ChatGPT en italique.

Agrandissement : Illustration 1

Ton projet l'Affranchi semble vraiment ambitieux et profondément ancré dans une volonté de garantir une vraie liberté d’expression tout en respectant des principes de rigueur, de transparence et de responsabilité. C’est une proposition intéressante qui se distingue de plateformes traditionnelles par son approche démocratique, participative, et axée sur l’éthique de l’information.
Voici quelques points sur lesquels je pourrais peut-être t’aider pour affiner ou avancer :
- Clarification de la modération
La modération des discussions, étant totalement laissée entre les mains des auteurs, semble être un principe de base du projet, mais cela pourrait entraîner des risques de déséquilibre si un auteur décide de bloquer ou supprimer de manière excessive certains commentaires. Peut-être envisager des mécanismes de modération collaborative, où, par exemple, les autres sélectionneurs ou le comité éditorial puissent intervenir en cas de conflit, tout en restant fidèle à l’esprit de liberté d’expression ?
- Transparence et traçabilité des décisions
La transparence est un aspect fondamental dans ce type de projet, notamment pour que les membres du site comprennent pourquoi un article est publié ou non. La publication régulière des décisions du comité éditorial et la liste des sélectionneurs est un bon début, mais peut-être que des outils de feedback automatisés pourraient être mis en place pour expliquer les raisons des rejets d’articles ou des sanctions appliquées. Cela renforcerait la confiance des utilisateurs envers le processus.
- Gestion de la diversité d’opinions
Tu mentionnes que l’un des objectifs est de permettre à des opinions divergentes de cohabiter sur la plateforme. Cependant, dans un environnement aussi libre, des tensions peuvent surgir, particulièrement lorsque certains contenus peuvent être perçus comme allant à l’encontre des valeurs éthiques de la plateforme (comme le racisme, la haine, etc.). Peut-être une réflexion autour des limites de la liberté d’expression dans ce cadre précis pourrait être utile, pour définir plus finement ce qui est acceptable dans un débat public respectueux.
- Droits d’auteur et licences Creative Commons
Le respect des droits d’auteur et l’utilisation de licences Creative Commons me semble un bon principe. Cependant, cela pourrait représenter une contrainte administrative pour certains auteurs (surtout pour les photographies, illustrations, vidéos). Il pourrait être utile d'intégrer un système automatique qui vérifie si les ressources utilisées par les auteurs respectent les droits d’auteur ou sont bien libres de droits avant de les publier. Cela pourrait alléger les tâches des auteurs et assurer une conformité à grande échelle.
- Processus de sélection des articles
Tu mentionnes que le système de sélection des articles repose essentiellement sur un nombre de votes positifs des sélectionneurs. Il pourrait être intéressant de formaliser un peu plus les critères de sélection pour éviter toute ambiguïté ou interprétation personnelle de ce qui mérite d'être publié. Par exemple, des critères plus précis sur ce qui constitue un article « inédit » ou « pertinent » pourraient être mis en place, afin de guider les auteurs et éviter les malentendus.
- Soutien au modèle économique
Bien que le projet soit basé sur le bénévolat, tu pourras probablement rencontrer des défis en matière de financement et de durabilité à long terme. Peut-être envisager un système de dons, de mécénat, ou de partenaires médias qui partagent les mêmes valeurs, pour soutenir la plateforme tout en restant fidèle à ses principes de liberté d’expression et d’indépendance.
En résumé, ton projet a un grand potentiel pour créer un espace de débat démocratique, respectueux et rigoureux. Si tu veux, on peut explorer ensemble certaines de ces questions ou développer des aspects plus spécifiques de la plateforme. Est-ce que tu souhaites approfondir l’un de ces points en particulier ?
La réalisation est déjà bien avancée. Mais avant de préciser cela je veux montrer que la Charte du site nécessite pour sa mise en application l'accord des intervenants sur des "règles de bonnes conduites" qui découlent" directement de la Charte. Voici où nous sommes arrivés après de multiples débats:
Je transmets les règles de bonne conduite
Ce texte est très détaillé et vise à établir un cadre rigoureux pour les discussions et la publication sur la plateforme l'Affranchi. Il met en avant des principes de respect mutuel et de responsabilité qui sont essentiels pour maintenir un environnement sain, constructif, et respectueux de la liberté d'expression tout en protégeant contre les abus, les attaques personnelles, et les comportements nuisibles.
Il semble que tu veuilles démontrer que cette charte est un préalable nécessaire à l’accord des intervenants pour garantir une mise en application cohérente des règles et des principes qui en découlent. C'est une approche très structurée, qui protège non seulement la plateforme mais aussi ses utilisateurs.
La question qui se pose maintenant est de savoir si tu souhaites approfondir davantage certains points spécifiques de la Charte (par exemple, l’aspect de la modération, les sanctions, ou peut-être des exemples pratiques de mise en œuvre des règles), ou si tu souhaites développer un autre aspect du projet ?
Je souhaite venir assez rapidement aux questions de réalisation informatique. Un premier travail a consisté à choisir les "frameworks" et tous les outils de programmation puis à faire une analyse plus détaillée du projet permettant d'aboutir à un premier schéma de la Base de données. Voici donc les premiers choix que nous avons faits.
:La production de code et l’implantation du site proprement dite se fera en seulement quelques mois. Cette phase finale sera précédée d’une longue phase de préparation avec un travail d’analyse et un choix d’outils performants dont il faudra acquérir la maîtrise. Il s'agit de concevoir une application web relativement complexe. La complexité vient notamment de la multiplicité des catégories de membres qui n'ont pas les mêmes attributions et, de plus, celles-ci évoluent (super-administrateurs, administrateurs, membres du comité éditorial, sélectionneurs, auteurs, candidats-auteurs, commentateurs, visiteurs). Nous avons actuellement deux exemples en France d'applications de journalisme citoyen avec AgoraVox et Bellaciao. En vous reportant à la Charte que nous proposons, vous constaterez que notre proposition se distingue sur divers points de ces applications. De plus, les implantations déjà anciennes de ces deux sites nécessiteraient des mises à jour. Ce sera donc l’occasion aussi de réaliser un site techniquement mieux conçu. La réalisation de ce site étant complexe, j’ai décidé de commencer par mettre en place un site plus simple qui évoluera. Au départ, il s’agira simplement d’un blog multi-auteurs ouvert aux commentaires. Ce sera beaucoup plus simple car il n’y aura pas de procédure de sélection des articles, d’envois de notifications... Tous les auteurs participants au site pourront publier autant d’articles qu’ils le veulent et quand ils le veulent. La sélection se fera donc dans le choix des auteurs. Les nouveaux auteurs seront cooptés par ceux qui seront déjà en place. Je me charge du recrutement des premiers auteurs. Pour l’instant, je fais cette proposition à des auteurs qui ont publié au moins 15 articles sur AgoraVox. Ils doivent aussi avoir montré à la fois qu’ils savent écrire des articles de bonne qualité et qu’ils savent discuter en respectant les règles de bonne conduite de notre charte. Il faut qu’ils soient d’accord avec les grands principes de liberté d’expression et d’exigence de vérité de la charte. J’espère que ce site pourra ainsi rassembler des auteurs de sensibilités différentes. Ce sera ce qui nous distinguera de nombreux sites multi-auteurs qui ont tous une ligne éditoriale précise. Nous devrions ainsi montrer qu’il est possible, avec un tel site, de confronter sereinement des points de vue différents et que cela est bénéfique pour tous. En évoluant, le site passera par une période intermédiaire où des articles seront proposés par les utilisateurs et une sélection sera faite en visioconférence par les auteurs-sélectionneurs. Puis tous les articles suivront la même procédure de sélection. Nous arriverons alors au site prévu par notre Charte. Puisqu’on prévoit à l’avance cette évolution, il faut démarrer avec une conception du site dans sa version finale laquelle sera simplifiée pour les premières implantations. Au départ, le travail de conception se fera donc sur la version la plus complexe et l’implantation sur la version la plus simple. Ce travail de conception portera principalement sur l’interface utilisateur et la structure de la table des données.
J’évoque la question du choix des frameworks et j’indique ceux que j’ai choisis.
J’ai arrêté les décisions suivantes.
- Laravel sera notre principal framework auquel nous associerons deux kits principaux.
- Jetstream sera notre « starter kit ». Il sert à gérer les inscriptions, logins, authentifications, connexions, confirmation et réinitialisation du mot de passe…
- LiveWire sera le principal kit qui fonctionnera avec Laravel. Remarquons qu’avec Jetstream le choix de LiveWire s’impose.
- Tailwind s’impose pour le front-end. Il est en effet utilisé dans Laravel et Jetstream pour présenter les diverses vues comme la page d’accueil (welcome.php). Nous suivons le choix des concepteurs de l’ensemble de nos frameworks.
- Alpine.js est un framework JavaScript minimaliste et facile à utiliser qui se marie bien avec Laravel. Il est plus simple que Vue.js qui lui fait concurrence et il est suffisant quand il est associé aux autres outils sélectionnés ici.
Ce projet de création d’une application web de journalisme citoyen, avec une base de données complexe et une gestion fine des utilisateurs, est ambitieux mais structuré. Le processus que vous décrivez pour choisir les outils et frameworks à utiliser est bien pensé et réfléchi. Vous avez pris en compte à la fois les spécificités du projet, la complexité des besoins en matière de gestion des rôles et des permissions, ainsi que l'importance de la communauté et de la compatibilité des outils. J’ai quelques questions pour mieux comprendre certains aspects et peut-être apporter quelques précisions utiles à votre réflexion.
Concernant la gestion des rôles et permissions :
La complexité du système de rôles, avec des super-administrateurs, administrateurs, sélectionneurs, auteurs, candidats-auteurs, commentateurs et visiteurs, est un enjeu majeur. Vous avez évoqué l’option de Laravel avec Jetstream et LiveWire, qui sont bien adaptés à cette gestion complexe des utilisateurs grâce à des systèmes d’authentification robustes et à des contrôles d’accès détaillés. Avez-vous déjà réfléchi à la manière de structurer les autorisations au niveau de la base de données et du back-end ? Est-ce que chaque rôle aura des tables de permissions spécifiques ou bien souhaitez-vous adopter un modèle plus centralisé avec des relations de type "role-permission" dans la base de données ?
Concernant l'interface utilisateur :
Vous avez choisi Tailwind CSS pour le front-end, ce qui est un excellent choix, surtout pour la flexibilité qu’il offre dans la conception. J’imagine que vous chercherez à construire une interface claire et intuitive pour faciliter la navigation entre les différentes catégories d’utilisateurs. Avez-vous pensé à l'ergonomie de l'interface en tenant compte de la diversité des utilisateurs ? Par exemple, l’interface sera-t-elle modulable ou adaptable en fonction du rôle de l’utilisateur (par exemple, un auteur verra-t-il plus d'options que le visiteur lambda) ?
La version simplifiée du site :
Votre idée de commencer par une version simplifiée (blog multi-auteurs) est judicieuse pour tester les concepts de base tout en gardant une vision de la version finale. Pourriez-vous envisager une phase de pré-lancement avec un groupe restreint d’auteurs afin de valider la qualité de l’interface et des processus (par exemple, cooptation des auteurs, validation des articles) avant une mise en production complète ?
À propos de la base de données :
Avez-vous une idée claire de la structure de votre base de données pour la version finale ? Vous avez mentionné des rôles variés et une gestion des permissions détaillée. Pensez-vous utiliser un modèle relationnel classique avec des jointures entre les utilisateurs, les articles, et les commentaires ? Ou bien envisagez-vous une solution plus flexible comme un modèle NoSQL, en particulier si les volumes de données deviennent importants à l’échelle du projet ?
Le développement progressif :
Le fait de commencer avec une version simplifiée mais en gardant à l’esprit l’évolution vers un système complexe est une approche pragmatique. Cela permettra de tester les fondamentaux et d’ajuster les choix technologiques au fur et à mesure. Pour cette phase, est-ce que vous prévoyez des outils ou des services pour la gestion des versions, des tests et du déploiement (par exemple, Git, Docker, CI/CD) ?
Cela semble être un projet avec beaucoup de potentiel, à la fois sur le plan technique et sur celui de l'engagement citoyen. Il pourrait créer un espace d’expression et de débat enrichissant pour les utilisateurs.
Pour être précis au sujet de l'état de la réalisation actuelle voici ce qui est achevé.
- L'interface utilisateur est au point. Elle aura des ajouts notamment quand je vais ajouter (très prochainement) une gestion des images que chaque utilisateur peut insérer dans ses articles. Puis il y aura un autre ajout quand sera en place la gestion assurée par les "coachs" qui auront essentiellement pour rôle de sélectionner les articles. Je considère néanmoins que cette interface est au point. Je peux en donner une description précise avec éventuellement des copies d'écran.
- J'ai implanté un CRUD complet pour la gestion des articles.
- Je viens de mettre en place une barre de recherche qui permet aux utilisateurs de chercher des articles à partir d'un mot ou d'une expression.
- Dans la prochaine phase de la réalisation, Il faudra que je complète le modèle des utilisateurs et que je mette en place la gestion des "commentaires".
- Je mettrai aussi en place des "catégories" et des "tags" pour faire des recherches.
- J'ai trouvé une solution pour disposer d'un éditeur de texte afin de saisir les articles et de les modifier. Ma solution n'est pas parfaite. Il y aurait à ce sujet toute une discussion à mener pour voir si une meilleure solution pourrait être mise en place.
Merci pour ces précisions ! Ça semble déjà bien avancé, et tu as déjà pas mal d’éléments clés en place. L’interface utilisateur qui est déjà au point est un excellent point de départ, surtout avec la recherche d’articles et le CRUD pour la gestion des articles, ce qui est crucial. Ça doit déjà donner une base solide pour l’expérience utilisateur.
Concernant la gestion des images, des commentaires, des catégories, et des tags, ces éléments vont sûrement enrichir encore plus l’interaction avec les utilisateurs et rendre le site plus dynamique et organisé.
Quant à l’éditeur de texte, c’est en effet une partie cruciale. Trouver la bonne solution peut être un vrai défi, car cela dépend non seulement des fonctionnalités (comme l'ajout d'images, la gestion de formats divers, etc.), mais aussi de l’expérience utilisateur et des performances globales du site. Quel est ton éditeur actuel, et quels problèmes ou limitations rencontres-tu avec cette solution ? Peut-être qu'on peut en discuter pour voir si une alternative pourrait mieux correspondre à tes besoins.
Tu vois les "coachs" et la gestion des utilisateurs comme des éléments prioritaires pour la prochaine phase ? Ou est-ce que tu t’attends à rencontrer d'autres défis dans la phase actuelle avant d'implémenter ces ajouts
Je pense effectivement que pour ce qui est déjà en place, il n'y a que la question de l'éditeur de texte qui pourrait être revue. Voici comment je perçois la situation actuelle pour tous les programmeurs qui sont confrontés à ce sujet. Actuellement, il existe deux solutions payantes qui sont de bonnes qualités : CkEditor et TinyMCE. Je ne veux pas d'une solution payante avant d'avoir d'éventuelles recettes ce qui est loin d'être acquis. Il existe des reliquats d'éditeur anciens : principalement Quill Editor et Trix editor. Les versions accessibles de ces éditeurs sont volontairement "bridées". Des fonctionnalités peuvent ainsi être testées mais dans la sortie, le résultat disparaît. J'ai trouvé comme solution d'utiliser néanmoins Quill Editor (pour la gestion des articles) en modifiant la sortie pour que cela fonctionne.
Merci pour ces détails techniques ! Je comprends mieux la solution que tu as mise en place pour intégrer Quill Editor, et cela semble être une approche astucieuse face aux limitations des éditeurs gratuits. Cependant, il est vrai que ce genre de manipulation avec des remplacements de balises HTML peut devenir un peu fragile, surtout si les éditeurs sont mis à jour ou si des fonctionnalités supplémentaires doivent être ajoutées à l’avenir.
Alternatives pour l'éditeur de texte :
Si Quill te donne encore quelques soucis de ce type, tu pourrais envisager une autre approche avec un éditeur open-source comme Slate.js ou Froala (même si Froala a une version gratuite limitée). Slate.js est un peu plus complexe à configurer, mais il permet une personnalisation complète de l’éditeur et peut répondre à tes besoins sans avoir à bricoler les sorties HTML.
Autre piste : Quill et modules personnalisés
Tu peux aussi personnaliser encore plus Quill en créant des modules personnalisés pour qu’il s’adapte précisément à tes besoins. Cela permet de ne pas avoir à manipuler directement le HTML après coup. En utilisant les API de Quill, tu peux mieux gérer la sortie, sans te retrouver avec des remplacements manuels dans le code PHP.
Pour aller plus loin :
Pour que ton éditeur soit plus solide et modulable, tu pourrais envisager de créer des plugins personnalisés pour Quill afin de gérer des comportements spécifiques comme l’ajout d’images, la gestion des styles, des couleurs, etc.
Si tu utilises Tailwind CSS, tu peux intégrer Quill avec Tailwind en ajustant les classes CSS de Quill pour qu’il s’intègre bien avec le design global de ton site sans avoir à manipuler les balises.
Enfin, je comprends que le coût est un facteur limitant pour choisir une solution payante, donc rester sur des options comme Quill ou Trix (si tu arrives à contourner les limitations de la version gratuite) reste une bonne stratégie.
En résumé, plutôt que de remplacer systématiquement les balises HTML dans ton code PHP, tu pourrais te concentrer davantage sur l’utilisation de CSS pour contrôler l’apparence et les comportements des éléments. Cela permettrait de garder le code HTML plus propre, de mieux respecter les standards web, et de mieux intégrer l'éditeur avec les autres parties de ton projet (comme Tailwind).
Qu'en penses-tu ?
Je ne pense pas investir un temps trop important de travail pour une solution qui sera sans doute complètement abandonnée à plus long terme. Je pense notamment chercher à utiliser des versions anciennes de CkEditor ou Tiny MCE qui étaient gratuites. Pour cela je cherche à préciser quand elles sont devenues payantes. Par exemple la version 4.10.1 de CkEditor était gratuite et on peut facilement la trouver sur le web.
Je comprends bien ta situation, et effectivement, ta démarche actuelle avec Quill Editor semble être une solution pragmatique compte tenu des contraintes.
À propos de CkEditor et TinyMCE
En effet, l'évolution des modèles commerciaux de nombreux éditeurs de texte comme CkEditor et TinyMCE a fait que beaucoup de fonctionnalités autrefois gratuites sont désormais payantes. Cependant, comme tu le mentionnes, les versions plus anciennes de ces éditeurs restent disponibles et peuvent être utilisées sans coût. Voici un peu de contexte :
CKEditor 4.10.1 : Cette version, effectivement gratuite, fait partie des dernières versions avant le passage au modèle freemium. CKEditor 4 est gratuit pour une utilisation de base, mais à partir de certaines versions récentes, ils ont limité certaines fonctionnalités avancées, comme les plugins premium et les options de personnalisation poussées.
Modèle freemium : À partir de la version 4.14.0, CKEditor a introduit un modèle payant, surtout pour les fonctionnalités avancées (comme la gestion de fichiers, l'intégration avec des CMS, etc.). La version de base (qui reste gratuite) peut être suffisante pour beaucoup d’utilisations.
Tu pourrais donc chercher spécifiquement la version 4.10.1 ou toute version de la série 4.x antérieure à la version 4.14.0.
TinyMCE : TinyMCE, pour sa part, est aussi passé au modèle freemium dans ses versions récentes. La version gratuite offre des fonctionnalités de base, mais les versions récentes intègrent des fonctionnalités premium pour des fonctionnalités avancées telles que la gestion de plugins, la personnalisation poussée, etc.
Version gratuite : Si tu cherches à utiliser une version ancienne de TinyMCE, tu pourrais te tourner vers la série 4.x ou même 3.x, avant que les fonctionnalités avancées ne soient limitées.
Model payant : Comme CKEditor, TinyMCE a limité certaines fonctionnalités dans ses dernières versions gratuites. La version 5.x a surtout introduit une version payante avec des services cloud et des API premium.
Solutions possibles à court terme :
Explorer les anciennes versions : Comme tu l'as mentionné, il est tout à fait possible de trouver des versions anciennes de ces éditeurs sur des sites tiers ou des dépôts comme GitHub. Utiliser des versions comme 4.10.1 de CKEditor ou 4.x de TinyMCE pourrait effectivement être une bonne solution temporaire. Ces versions restent fonctionnelles et gratuites, et devraient répondre aux besoins de base pour l'édition d'articles.
Gérer le contenu HTML manuellement : C'est une bonne solution de secours si tu as déjà mis en place un mécanisme pour nettoyer et formater la sortie HTML. C'est peut-être "bricolé", mais ça reste pratique pour les besoins immédiats. Comme tu l’as dit, gérer les liens et les éléments de texte est relativement simple, et tout ce qui est nécessaire à l'affichage des articles peut être fait de manière raisonnablement efficace avec cette approche.
CKEditor 4 (modèle open source) : En cherchant bien, tu peux peut-être trouver des versions antérieures de CKEditor 4 qui sont encore disponibles sous une licence open-source (ex. GPL, LGPL). Cela te permettrait de l’utiliser gratuitement tout en bénéficiant de fonctionnalités avancées sans passer à une version payante. Il existe aussi des builds communautaires de CKEditor 4 qui sont souvent plus personnalisés et disponibles gratuitement.
Autres suggestions :
Vérifier les licences : Si tu choisis d’explorer des anciennes versions, assure-toi de bien vérifier les termes de la licence. Certaines anciennes versions peuvent être sous une licence moins restrictive que les versions récentes, et tu peux donc les utiliser pour ton projet sans contrainte.
Personnalisation des éditeurs : Pour contourner les limitations des éditeurs gratuits (comme dans le cas de Quill), tu pourrais envisager de manipuler un peu le côté client pour personnaliser l'éditeur à ta guise. Par exemple, en ajoutant des hooks ou des événements pour intercepter et formater la sortie HTML avant de l’enregistrer, tu peux alléger la logique côté serveur (PHP).
Mise à jour et évolution : Une fois que tu auras une version qui fonctionne bien et que tu as les bases en place, tu pourras également envisager de mettre en place des processus de mise à jour régulière pour te tenir à jour sans trop te retrouver coincé par des versions anciennes. Ça pourrait aussi être une bonne occasion d’explorer des alternatives, comme Slate.js ou d'autres éditeurs open-source, mais je comprends que pour l'instant tu veux quelque chose de simple et rapide.
Conclusion :
En somme, les versions anciennes de CKEditor et TinyMCE sont effectivement une bonne solution à court terme si tu ne souhaites pas investir dans une solution payante. Pour éviter d'être contraint par des limitations de fonctionnalités dans des versions récentes, l'utilisation des versions 4.x (CKEditor) et 3.x/4.x (TinyMCE) te permettra de disposer d'éditeurs fonctionnels sans restrictions.
Cela semble être un compromis raisonnable pour un projet en cours, tout en évitant de perdre trop de temps avec des solutions moins flexibles ou trop coûteuses à long terme. Une fois que tu auras un système plus stable en place, tu pourras peut-être envisager de passer à des solutions plus modernes ou personnalisées pour l'édition de contenu.
Qu'en penses-tu ? Est-ce que cela correspond à ce que tu avais en tête pour la suite ?
Je suis de ton avis. Il faut d'ailleurs comprendre que je n'ai pas besoin de fonctionnalités très importantes pour mes éditeurs de texte. J'ai d'ailleurs prévu, comme première solution Quill Editor bricolé pour les articles et Trix Editor également bricolé pour les commentaires. En effet, pour que les règles de bonne conduite soient respectées, il ne faut pas que les utilisateurs puissent mettre de gros titres dans les commentaires. Ils auront seulement la possibilité de mettre le texte en gras ou en italique. Ils ne pourront même pas souligner du texte afin de ne pas introduire une confusion avec les liens hypertextes qui seront soulignés. Je définis les fonctionnalités de ce dont j'ai besoin à partir d'une analyse critique des solutions mise en place avec des projets analogues. Il y en a trois en France : les blogs de Médiapart, AgoraVox et Bellaciao. Mon projet est d'ailleurs entièrement fondé à partir du projet d'AgoraVox. Cette application a eu un immense succès avant d'être prise en main par un groupuscule d'extrême droite qui a rapidement abouti à une chute vertigineuse de l'audience. Je garde "sous la main", la possibilité de recourir à la version 4.10.1 de CkEditor.
C'est intéressant de voir à quel point tu as une approche pragmatique et réfléchie pour la mise en place de ton éditeur de texte et de la gestion des fonctionnalités. Ton choix de garder Quill Editor et Trix Editor, tout en les adaptant à tes besoins spécifiques, montre une bonne compréhension des contraintes et des objectifs du projet. Et l’idée de t’inspirer d’autres projets comme AgoraVox, Médiapart, et Bellaciao est une excellente approche, surtout pour cerner les fonctionnalités réellement utiles et éviter la surcharge d'options inutiles.
Les fonctionnalités nécessaires et la simplicité
Ta volonté de simplification est essentielle, en particulier pour les commentaires. Comme tu l'as précisé, limiter les options de formatage dans les commentaires permet d'éviter la confusion et de garantir que les utilisateurs respectent certaines règles de bonne conduite. En restreignant les fonctionnalités à des éléments de base comme le gras et l’italique, et en interdisant certains formats comme les titres ou le soulignement, tu es à même de maintenir une consistance visuelle et d'éviter des dérives dans les discussions. C'est une bonne stratégie pour garder une certaine modération et éviter des dérives esthétiques ou des comportements non désirés.
Recours à la version 4.10.1 de CKEditor
Garder la version 4.10.1 de CKEditor sous la main est une excellente précaution. Même si tu n'as pas l’intention de t’en servir immédiatement, cela t’offre une flexibilité à long terme au cas où tu aurais besoin de plus de fonctionnalités sans vouloir t'engager dans des solutions payantes.
Cela pourrait être utile dans plusieurs scénarios :
- Si tu veux offrir plus de contrôle sur la mise en forme des articles ou des commentaires à l'avenir.
- Si tu décides de permettre aux utilisateurs d’ajouter plus de contenu multimédia (comme des images ou des vidéos).
- Ou même si, à un moment donné, tu veux repenser l’ergonomie de l’éditeur pour mieux correspondre aux besoins des utilisateurs.
Approche de la modération et des fonctionnalités
Il semble que ta modération des articles et des commentaires soit très importante pour garantir une certaine qualité de contenu. Cela me fait penser à l’expérience d’AgoraVox, qui a bien fonctionné à son apogée grâce à une équipe éditoriale active et une gestion de la qualité du contenu. Il semble que tu vises une modération douce mais efficace, où les utilisateurs peuvent s’exprimer, mais avec certaines restrictions afin de maintenir la clarté et la qualité des discussions.
Quelques idées supplémentaires pour la modération :
- Système de filtre sur les tags et catégories : Tu pourrais envisager de mettre en place un système de filtre pour les tags et catégories, afin de s’assurer que les utilisateurs restent dans les limites du sujet de l'article et n'introduisent pas des éléments hors sujet dans leurs commentaires.
- Historique de modification : Il pourrait être utile de garder une trace des modifications apportées par les utilisateurs (par exemple, si quelqu'un modifie un commentaire après l’avoir posté). Cela peut être un bon moyen de contrôler les abus et de garder une certaine transparence.
- Flagging communautaire : Le système de signalement communautaire peut aussi être un bon moyen de maintenir une forme de modération participative. Permettre aux utilisateurs de signaler un commentaire ou un article comme inapproprié pourrait alléger la charge de travail de modération, surtout s’il y a une forte affluence.
Le cas de la perte de l’audience d’AgoraVox
C’est fascinant de voir que ton projet s'inspire directement du modèle AgoraVox, qui a effectivement connu un immense succès avant de sombrer. Leur modèle, basé sur la liberté d’expression et la publication ouverte, avait beaucoup d’atouts, mais il semble que la modération et la gestion de la plateforme n’ont pas su s’adapter à l'évolution des utilisateurs et des contenus. Cela montre qu’une modération efficace et une vision claire de ce qu’on veut permettre aux utilisateurs de publier sont cruciales pour maintenir l’audience.
C’est un bon point de départ pour réfléchir à la manière de structurer ta propre plateforme. Si tu restes fidèle à cette philosophie de participation ouverte, mais avec des mécanismes de contrôle subtils (comme pour les commentaires), cela pourrait non seulement éviter les dérives, mais aussi préserver l'intégrité du projet à long terme.
Conclusion et prochaines étapes
- Rester flexible avec l’éditeur : En continuant avec Quill et Trix, et en explorant la version 4.10.1 de CKEditor si nécessaire, tu gardes une solution adaptable qui pourra évoluer avec tes besoins sans engagement financier.
- Modération active et réglée : La mise en place d’une modération claire pour les articles et les commentaires, inspirée de l’expérience d’AgoraVox, peut être un excellent moyen de maintenir une bonne qualité de contenu.
- Évolution fonctionnelle progressive : Comme tu l’as bien vu, les fonctionnalités doivent être ajoutées progressivement. Cela te permettra de tester et d’adapter les outils au fur et à mesure, sans te précipiter dans des solutions trop complexes avant d’avoir atteint une certaine stabilité et une audience fidèle.
Cela correspond-il à ta vision pour l'évolution du projet ? As-tu déjà des idées pour la suite, comme l'intégration de la gestion des utilisateurs et des catégories, ou des fonctionnalités supplémentaires pour les articles ?
J'ai effectivement des idées très précises sur les prochaines étapes de la réalisation. Je vais prochainement terminer la gestion des images que les utilisateurs peuvent insérer dans leurs articles. Cela fonctionne déjà avec ma version de Quill Editor. Je pense alors mettre cette première version en ligne afin que ceux qui sont au courant du projet voient que tout cela se met en place. Il faut en effet que je précise que j'ai pendant un temps essayer de redresser la situation d'AgoraVox et que j'ai, à l'occasion, regroupé quelques auteurs autour de moi. J'ai une liste de diffusion avec des auteurs qui attendent que le site démarre. Je vais donc très prochainement m'intéresser à la question du déploiement de l'application. Je suis complètement novice en la matière et, là encore, il faut que je me renseigne un peu plus sur les deux techniques possibles : avec ou sans dépôt sur GitHub.
C'est super que tu aies déjà une vision claire des prochaines étapes et que tu sois prêt à mettre en ligne la première version de ton projet ! Le fait de pouvoir montrer un projet fonctionnel (même si c’est une première version) à tes auteurs et à ton public potentiel est vraiment crucial pour créer un engouement initial et tester le fonctionnement en conditions réelles.
Déploiement de l’application : avec ou sans GitHub
Je comprends que tu sois novice dans le domaine du déploiement, mais ne t'inquiète pas, je vais t'éclairer sur les deux options que tu évoques, avec et sans dépôt GitHub, ainsi que les avantages et inconvénients de chaque solution.
- Déploiement avec GitHub
GitHub est une plateforme idéale pour le développement collaboratif, mais elle peut aussi être très utile même si tu es le seul à travailler sur le projet, notamment pour plusieurs raisons :
Avantages :
- Versionnage et gestion de code : Avec GitHub, tu peux facilement gérer différentes versions de ton application. Cela permet d’éviter de perdre du travail et d’avoir un historique complet des modifications. Si quelque chose ne fonctionne plus, tu pourras revenir à une version antérieure sans problème.
- Automatisation du déploiement (CI/CD) : GitHub peut être intégré avec des outils comme GitHub Actions, ce qui permet d’automatiser certaines parties du déploiement. Par exemple, dès que tu pousses une modification, le code peut être testé automatiquement, puis déployé sur ton serveur. C’est super pratique à long terme.
- Collaboration : Si tu décides à un moment donné de permettre à d'autres personnes de contribuer à ton projet, GitHub est une référence en matière de collaboration. Il suffit de créer des branches pour que chaque développeur puisse travailler sur des parties distinctes du code sans interférer avec les autres.
Inconvénients :
- Hébergement et déploiement supplémentaires : GitHub lui-même n’est pas un service d’hébergement pour des applications en ligne (hormis GitHub Pages qui est limité à des projets front-end simples). Tu devras coupler cela avec un autre service d’hébergement comme Heroku, Vercel, Netlify, ou un serveur traditionnel (si tu préfères avoir un contrôle total).
- Un peu d’apprentissage : Même si GitHub est assez intuitif, il te faudra un minimum de temps pour bien comprendre comment utiliser Git, gérer les branches, résoudre les conflits, etc. Mais une fois que tu l’as maîtrisé, c’est un outil très puissant.
- Déploiement sans GitHub (en direct sur un serveur)
Si tu préfères déployer ton projet sans passer par GitHub, il y a plusieurs solutions plus directes, bien que moins automatisées.
Avantages :
- Simplicité : Si tu as déjà accès à un serveur (ou un service d’hébergement), tu peux transférer tes fichiers directement et les mettre en ligne sans avoir à apprendre Git ou à gérer un dépôt.
- Moins de complexité : Si tu n’as pas l’intention de travailler avec d’autres personnes ou de faire évoluer souvent ton code, cela peut être une approche plus simple, surtout au début, lorsque tu veux juste voir ton projet fonctionner en ligne.
Inconvénients :
- Manque de versionnage : Si tu n’utilises pas GitHub ou une autre plateforme de versionnage, tu risques de perdre des modifications importantes, surtout si tu commets une erreur dans le déploiement ou que tu dois revenir en arrière.
- Pas d’automatisation : Chaque modification devra être faite manuellement, ce qui peut devenir contraignant à long terme, surtout si tu ajoutes de nouvelles fonctionnalités ou que tu effectues des mises à jour fréquentes.
- Sécurisation et gestion des erreurs : Déployer sans GitHub signifie que tu devras gérer manuellement des aspects comme la sécurité, la surveillance du serveur et la gestion des erreurs.
Déploiement avec GitHub + Heroku (solution recommandée pour les débutants)
Si tu n’as jamais déployé d’application en ligne, une solution idéale pour commencer pourrait être d’utiliser Heroku avec un dépôt GitHub.
Pourquoi Heroku ?
- Gratuit pour les petites applications : Heroku propose un plan gratuit suffisant pour un déploiement léger de ton application. Tu n’auras pas besoin d’un hébergement complexe au début.
- Facilité de déploiement : Heroku est conçu pour être très simple à utiliser, même pour les débutants. Il suffit de connecter ton dépôt GitHub à Heroku, et chaque fois que tu fais une mise à jour sur GitHub, Heroku se charge de déployer la dernière version de ton application.
- Gestion des erreurs et monitoring : Heroku inclut des outils pour suivre les erreurs et les performances de ton application, ce qui est super utile si tu rencontres des bugs ou des problèmes après le déploiement.
Comment ça marche concrètement ?
- Crée un compte GitHub (si tu n’en as pas encore un).
- Crée un dépôt pour ton projet sur GitHub.
- Connecte Heroku à GitHub : Lorsque tu crées un compte Heroku, tu peux connecter facilement ton dépôt GitHub à Heroku pour déployer directement à partir de GitHub.
- Ajoute des variables d’environnement et configure ton application pour qu’elle fonctionne correctement.
- Lance le déploiement et accède à ton site en ligne.
Avantages :
- Facile à mettre en place : Une fois que tu as configuré Heroku avec GitHub, chaque changement que tu apportes à ton code sera automatiquement déployé en ligne sans nécessiter d’effort supplémentaire.
- Suivi des erreurs intégré : Heroku fournit des outils comme les logs qui te permettent de suivre facilement ce qui se passe sur ton application en ligne.
- Évolutivité : Si ton site devient plus populaire, tu pourras facilement passer à un plan payant pour ajouter plus de ressources à ton serveur.
Conclusion : la voie à suivre
Pour commencer, je te conseille d'opter pour la solution GitHub + Heroku. Cela te permet de bénéficier des avantages de GitHub pour le versionnage et de Heroku pour un déploiement simple et gratuit, tout en ayant une certaine souplesse pour faire évoluer ton projet.
Prochaines étapes
- Finaliser la gestion des images pour tes articles.
- Mettre en ligne la première version pour que tes auteurs puissent voir l'avancement et commencer à tester la plateforme.
- Choisir la méthode de déploiement : GitHub + Heroku semble être la meilleure option pour commencer de manière simple et évolutive.
Est-ce que tu te sens prêt à essayer cela, ou tu préférerais d'abord tester certaines fonctionnalités avant de lancer le déploiement ?
Je pense que je vais essayer cela. Pour l'instant, il faut que j'interrompe cette conversation. Sera-t-il possible de la reprendre ?
Pas de souci, tu pourras reprendre la conversation quand tu veux ! 😊 Je serai là pour t'aider dès que tu seras prêt à continuer. Bonne chance avec la mise en ligne et le déploiement de ton projet, et à bientôt !