Commencer avec wagtail

Share this post:

Depuis l'année dernière, j'ai passé pas mal de mon temps à développer des sites personnalisés avec Wagtail, un CMS super cool basé sur Django. Ça fait maintenant bien deux ou trois ans que j'ai découvert cet outil sur Twitter et que je suis son développement de près.

Pourquoi Wagtail ?

C'est tout simplement l'outil parfait qui correspond exactement à mes attentes. Il me permet de déployer des solutions flexibles rapidement tout en m'offrant une structure de travail. Il y a bien sûr une multitude d'autres outils similaires. Je ne vais pas faire de comparaison de ce CMS par rapport aux autres existants. Je préfère le mettre en avant plutôt que de faire un combat de CMS.

Communauté active et une documentation impeccable

Le projet open source a beaucoup de contributeurs actifs qui sont en charge du développement. Ils ont l'air d'être plutôt réactif lors de la création d'issues et ils ont défini une solide roadmap pour le développement du CMS. Les nouvelles versions et mises à jours sont régulières. La documentation est simple mais détaillée et donc très pratique.

Comme si ce n'était pas assez, Wagtail est basé sur le framework Django, qui est sans aucun doute l'un des meilleurs framework python. Je ne vais pas rentrer dans le détail mais si vous voulez en savoir plus à ce sujet, je vous invite à jeter un œil au site et à la documentation.

Mise en place facile

Créer un nouveau projet ne pouvait pas être plus simple grâce à l'application de démo fournit par l'équipe derrière Wagtail. C'est un simple blog qui est configuré avec Vagrant. Il vous permet de rapidement voir comment il est facile de gérer Wagtail et ses dépendances Python avec une machine virtuelle.

Pour cette partie, je préfère travailler avec virtualenv, que je vous recommande pour vos environnements de production. Si vous préférez utiliser Docker, il y a également une démo, vous verrez comme c'est facile.

De plus, vous aurez accès aux fonctionnalités puissantes de Django, comme les tests unitaires, les migrations de la base de données et autres. Ces outils permettent un développement facile, flexible et robuste.

Super expérience utilisateur

Wagtail embarque Hallo.js, un éditeur web simple et élégant. L'une des choses qui m'importe le plus est de pouvoir fournir à mes clients un back-office avec une interface accessible, élégante et simple d'utilisation. L'éditeur de texte rend l'édition de contenu cool à nouveau. Il se débarrasse de tous les inconvénients causés par les anciens et obsolètes éditeurs Web HTML.

D'un point de vue technique, il est très facile d'ajouter/supprimer/modifier une fonctionnalité grâce au système de plugin. Par ailleurs le projet Hallo.js est open source et est activement maintenu sur Github.

wagtail_article

Fonction de recherche

Wagtail a deux backend de recherche. L'un basé sur la base de données et l'autre est Elasticsearch. C'est un puissant moteur de recherche open source. Il est sans aucun doute l'une des fonctionnalités que je préfère dans ce CMS.

L'intégration d'Elasticsearch est vraiment facile et les résultats en terme de performances sont exceptionnelles. Les développeurs peuvent activer les champs dans lesquels la recherche sera effectuée et définir le niveau de pertinence par modèle/champ. Et si ça ne suffit pas, vous pouvez toujours promouvoir manuellement les résultats de recherche en utilisant la fonction l'Editor Picks.

L'interface d'administration embarque un lot très intéressant de fonctionnalités et de vues qui permettent de gérer rapidement et de façon fluide les pages, les images et les documents de vos sites.

wagtail_image

Architecture modulaire

En tant qu’indépendant, je réalise un grand nombre de customisation et d'adaptation pour mes clients. En ayant ça en tête, je cherche toujours à déployer des outils accessibles, simples d'utilisation et personnalisables. Mais également robustes et correctement construits d'un point de vue technique.

Wagtail répond exactement à cette philosophie en divisant chaque fonctionnalités et composants en une structure modulaire organisée. Les tests unitaires couvrent 96% et l'intégration continue est gérée avec Travis, ce qui permet de s'assurer qu'aucune ligne de code n'est ajoutée sans avoir été testée.

Développer et ajouter des fonctionnalités au CMS est aussi simple que de créer vos propres applications Django et de les connecter à Wagtail. Wagtail permet également aux développeurs de remplacer les fichiers principaux tels que les modèles, les feuilles de style, les fichiers JS et ainsi de suite. Ce qui rend les choses vraiment faciles lors de l'intégration de vos fonctionnalités dans l'interface d'administration du CMS.

Vous pouvez consulter les modules présents sur GitHub.

Conclusion

Wagtail n'est pas parfait, mais je l'adore parce qu'il embarque les fonctionnalités de base et permet de créer un site web sur mesure avec des fondations saines.

Je vais surement publier d'autres articles sur Wagtail, revenez régulièrement ;)