Ruby on Rails dans le secteur public français : 33 applications passées au crible (2026)

Ruby on Rails a la réputation d'être le cadre des start-up d'État. Qu'en est-il vraiment ? Nous avons repris l'inventaire officiel des dépôts de code publiés par les organismes publics, puis lu un par un les fichiers Gemfile.lock des applications Ruby qu'il recense, pour savoir sur quelles versions de Rails elles tournent et quelles gems elles utilisent.
- 143dépôts écrits principalement en Ruby dans l'inventaire public
- 13elangage de l'inventaire, loin derrière Python, JavaScript et Java
- 33applications Rails dont le Gemfile.lock a pu être lu
- 9 sur 33sur la série Rails 8.1, la seule encore corrigée pour les bogues
La place de Ruby dans le code public
La Direction interministérielle du numérique (DINUM) publie sur data.gouv.fr un inventaire des codes sources publiés par des organismes publics, sous Licence Ouverte 2.0. La version que nous avons téléchargée le 10 novembre 2026 est datée du 24 septembre 2025 et compte 32 999 dépôts, hébergés sur GitHub et sur plus de 80 forges GitLab, pour la plupart d'universités et d'organismes de recherche.
Le langage principal n'y est renseigné que pour les dépôts de GitHub : 8 312 dépôts sur 9 856. Les 23 143 dépôts des forges GitLab n'ont aucun langage indiqué, si bien que les comparaisons ci-dessous ne portent que sur GitHub. Parmi ces 8 312 dépôts, Ruby arrive en 13e position avec 143 dépôts, soit 1,7 %. Python (1 503), JavaScript (1 320) et Java (1 172) dominent, et PHP, souvent associé au web public, en compte 265.
Les dépôts Ruby se concentrent chez quelques organisations : 49 sur 143 appartiennent au compte betagouv, celui du réseau des start-up d'État, 11 à etalab, 9 à l'AFIMB (information multimodale et billettique) et 6 à codegouvfr. On trouve aussi des universités (Strasbourg, EHESS), des collectivités et des laboratoires.
Des 143 dépôts aux 33 applications
Un dépôt Ruby n'est pas toujours une application Rails : il peut s'agir d'une gem, d'un script ou d'une copie d'un autre projet. Nous avons écarté les 43 dépôts marqués comme copies (forks) et les dépôts archivés, ce qui en laisse 77. Pour chacun, nous avons lu le fichier Gemfile.lock placé à la racine de la branche par défaut, le 10 novembre 2026 : 49 dépôts en ont un, et 33 de ces fichiers embarquent Rails (la gem railties). Ce sont ces 33 applications que nous avons analysées. On y trouve des services très utilisés, comme Démarches simplifiées, RDV Service Public, l'outil d'analyse d'impact de la CNIL (PIA) ou DataPass, mais aussi des démonstrateurs et des API plus anciennes qui ne sont peut-être plus en service : un dépôt resté public ne dit pas si l'application l'est encore.
Les versions de Rails
La politique de maintenance publiée sur rubyonrails.org, consultée le 10 novembre 2026, ne mentionne plus que deux séries : 8.1, corrigée pour les failles de sécurité jusqu'au 10 octobre 2027, et 8.0, dont les correctifs de sécurité étaient annoncés jusqu'au 7 novembre 2026. Toute série plus ancienne ne reçoit plus aucun correctif officiel.
railties dans le Gemfile.lock) des 33 applications analysées. Sources : inventaire code.gouv.fr du 24/09/2025, Gemfile.lock lus le 10/11/2026 ; calculs Gemfile Review.Neuf applications sont sur Rails 8.1, dont six déjà sur la version 8.1.4.1, publiée le 4 novembre 2026 : six jours plus tard, elle était en place dans DataPass, Démarches simplifiées, PIA, RDV Service Public, RDV-Insertion et l'outil d'audit des standards de beta.gouv.fr. Trois applications sont sur la série 8.0. Les 21 autres, près des deux tiers, utilisent une série qui ne reçoit plus de correctifs ; quinze d'entre elles sont même restées sur Rails 6.1 ou antérieur, et trois sur Rails 3.2, une série sortie en 2012. Côté Ruby, sept applications déclarent déjà Ruby 4.0 et cinq Ruby 3.4 ; huit fichiers n'indiquent aucune version.
Ces chiffres ne mesurent pas la sécurité des services en ligne : une application ancienne peut avoir été retirée, isolée ou corrigée à la main. Ils montrent seulement l'écart entre un petit groupe d'équipes qui suit Rails de très près et une longue traîne de projets restés à l'état où ils ont été publiés.
Les gems qui reviennent le plus
Nous avons compté les gems déclarées directement dans le Gemfile (section DEPENDENCIES du fichier verrouillé), sur les 33 applications puis sur les 18 qui utilisent Rails 7.0 ou plus récent.
| Usage | Gem | Sur 33 | Sur 18 (Rails 7+) |
|---|---|---|---|
| Serveur, base | puma / pg | 28 / 26 | 18 / 16 |
| Tests | rspec-rails | 19 | 14 |
| Tests | factory_bot_rails | 15 | 13 |
| Analyse de sécurité | brakeman | 12 | 10 |
| Authentification | devise | 11 | 9 |
| Interface de l'État | dsfr-view-components | 10 | 10 |
| Suivi des erreurs | sentry-rails | 10 | 9 |
| Tâches de fond | sidekiq / good_job / solid_queue | 9 / 4 / 3 | 6 / 4 / 3 |
| Autorisations | pundit | 8 | 7 |
| Pagination | kaminari / pagy | 8 / 3 | 7 / 2 |
| Limitation des requêtes | rack-attack | 8 | 8 |
| Connexion des agents | omniauth-proconnect | 6 | 6 |
| Historique des données | paper_trail | 3 | 3 |
Deux gems sont propres à l'administration française. dsfr-view-components, maintenue par beta.gouv.fr, fournit les composants du Système de design de l'État ; elle est présente dans 10 applications, toutes récentes. omniauth-proconnect branche une application sur ProConnect, l'identification des professionnels proposée par l'État ; six applications l'utilisent. Nous détaillons leur usage, et leurs limites, dans notre guide sur les applications Rails pour l'administration.
Pour l'authentification, Devise est la gem la plus fréquente (11 applications) ; le générateur d'authentification intégré à Rails 8 n'apparaît pas comme une gem et ne peut donc pas être compté ici. Si vous gérez vous-même les mots de passe, notre article sur la recommandation de la CNIL appliquée à Rails donne les réglages à prévoir. Côté tâches de fond, Sidekiq domine encore, mais GoodJob et Solid Queue, qui stockent les tâches dans la base de données plutôt que dans Redis, sont déjà présents dans 7 des 18 applications récentes. L'historique des modifications (PaperTrail) reste rare : trois applications seulement, un sujet qui croise le RGPD, comme nous l'expliquons dans notre article sur la suppression douce et l'historique des versions.
Méthodologie et sources
- Inventaire : fichier
codegouvfr-repositories.csvdu jeu « Inventaire des codes sources de logiciels publiés par des organismes publics » (data.gouv.fr, Licence Ouverte 2.0), version du 24 septembre 2025, téléchargée le 10 novembre 2026. Le champ « langage » est celui que GitHub attribue automatiquement au dépôt (langage majoritaire en volume de code). - Sélection : dépôts de langage Ruby, ni copies (forks) ni archivés selon l'inventaire, soit 77 dépôts.
- Gemfile.lock : fichier lu à la racine de la branche par défaut de chaque dépôt le 10 novembre 2026 ; une application dont le fichier est ailleurs, ou qui ne le publie pas, n'est pas comptée. La version de Rails est celle de la gem
railties. - Gems : dépendances directes listées dans la section
DEPENDENCIES, sans les dépendances indirectes. - Limites : l'inventaire ne couvre que les comptes déclarés par les organismes publics ; une application publiée sous un compte personnel ou privé n'y figure pas. Le dépôt peut différer de la version en production.
Le tableau application par application (dépôt, version de Rails, version de Ruby et présence de quinze gems) est téléchargeable : rails-secteur-public-2026-11.csv (CSV, UTF-8). Réutilisation libre, avec un lien vers cette page.
Mis à jour le 10 novembre 2026. Les versions évoluent vite : une application citée ici a pu être mise à jour depuis.
Guides pratiquesRails pour l'administration : DSFR et ProConnect
Les composants du Système de design de l'État et la connexion ProConnect en Rails : les gems, leurs versions, et qui a le droit de s'en servir.
Guides pratiquesMots de passe et recommandation CNIL
Entropie de 80 ou 50 bits, blocage après 10 échecs, stockage haché et salé : les réglages de Devise et de Rails 8 à revoir.
Guides pratiquesRGPD, suppression douce et historique
Une ligne « supprimée » avec deleted_at reste en base active, et PaperTrail garde une copie de l'enregistrement détruit. Comment purger pour de bon.