C'est quoi Docusaurus?
Meta a plein de projets internes/externes, qu'il faut à chaque fois documenter. C'est déjà compliqué d'écrire de la doc, alors si en plus il faut faire un site sur mesure à chaque fois, ça prend beaucoup de temps.
En 2017 ils ont commencé à copier/coller un template Jekyll pour chaque projet, mais c'est vite devenu difficile à maintenir.
En 2017, ils ont décidé de créer Docusaurus, un générateur de sites statiques en Node.js basé sur React, qui va "cacher" la stack technique du site et permettre de se concentrer sur le contenu: l'écriture des fichiers Markdown. On peut comparer cet outil à Create-React-App, mais pour créer des sites de contenu: docs, blog, landing pages...
La v1 de Docusaurus est vite devenue assez populaire, utilisée par React-Native, Jest, Babel, Prettier...
Vers Docusaurus v2
Suite à la sortie de la v1, Meta s'est vite rendu compte de quelques limites de la v1:
utilise React mais seulement coté serveur (pas d'hydratation ni de navigation Single-Page-Application
le repo était assez monolithique, difficile à maintenir et tester
pas très extensible, il n'y avait pas de système de plugin
le theming était relativement limité, et les sites v1 se ressemblent beaucoup
En 2018, Meta a décidé de re-créer Docusaurus de 0, avec une toute nouvelle architecture:
React utilisé coté client et serveur (comme Next.js, Remix, Gatsby...)
Système de plugin: permet à la communauté de contribuer des features utiles (intégration OpenAPI, moteur de recherche local, support Sass...)
Système de theming beaucoup plus flexible: possible d'overrider n'importe quel composant React du theme
MDX (Markdown + React) pour rendre votre documentation interactive
Docusaurus 2.0 est en alpha/beta depuis 4 ans 🤪, et on vient enfin de sortir la 1ere version stable! On a retardé cette release car c'était pas évident de respecter le Semantic Versioning avant.
Aujourd'hui, Docusaurus sort avec un paquet de features, et il serait difficile de toutes les lister: docs, blog, versioning, theming, dark mode, i18n, a11y, SEO, TypeScript, PWA, Algolia DocSearch, MDX...
Qui utilise déjà Docusaurus 2.0?
Un paquet d'entreprises ont déjà adopté Docusaurus 2.0 malgré le fait qu'il soit en beta. La v2 est déjà bien plus populaire que la v1, et on la presque la moitié des downloads npm de Gatsby!
Notre site showcase contient déjà près de 300 sites.
Et il est loin d'être exhaustif puisque de nombreux sites n'ont pas encore été ajoutés: Figma, Snapchat, Courier, 1Password...
Sans compter les nombreux sites internes d'entreprises comme Microsoft, LinkedIn, Shopify...
Quelques exemples:
Big tech: Microsoft, Snapchat, Shopify, LinkedIn, Meta, SAP, ByteDance, Lacework, Palo Alto Network...
Startups: Supabase, Ionic, Hasura, Figma, Courier, CodeSandbox, StackBlitz, Redis, Algolia, Hashnode...
OSS: React-Native, Redux, React-Navigation, Jest, Testing Library, Gulp, Babel, Lerna, pnpm, Electron, Tauri...
Web3: Iota, Solana, Cardano, Neo, SushiSwap
On a aussi pas mal de sites avec de belles customizations qui respectent vraiment l'image de marque de l'entreprise.
Mon rôle dans tout ça?
Il y a 2 ans, j'étais tranquillement en train de faire ma veille sur Twitter quand je tombe sur ça:
Je me suis dit que c'était une super occasion: travailler pour Facebook en freelance sur un projet open-source, ça n'arrive pas tous les jours. Initialement, cela devait durer 3 mois, mais durera finalement beaucoup plus longtemps: je travaille sur Docusaurus depuis plus de 2 ans maintenant!
J'ai la chance de pouvoir travailler de manière très flexible, avec une grande autonomie, ce qui me permet aussi de faire tourner cette newsletter à coté.
C'est super cool de voir Docusaurus devenir populaire, j'ai vraiment l'impression que mon travail à un réel impact. J'espère vous avoir donné envie de tester cet outil et j'ai hâte de voir les sites que vous allez créer! N'oubliez pas de les envoyer sur notre site showcase!
Aidez nous!
Pour faire du lancement un succès, n'hésitez pas à nous donner un coup de main en visibilité. Un upvote, retweet, ou un commentaire nous aide beaucoup!
Les principales plateformes du lancement: