Laravel Jetstream et InertiaJS : un retour d'expérience
2 min read

Laravel Jetstream et InertiaJS : un retour d'expérience

Laravel Jetstream et InertiaJS : un retour d'expérience

Je viens de terminer un projet créé avec Laravel Jetstream et Inertia. J'en profite pour faire un article sur les technologies, leurs avantages et inconvénients!

C'est quoi Laravel Jetstream ?

C'est un starter kit officiel pour Laravel. Il intègre la connexion, l'inscription, la récupération de mot de passe, la validation d'emails...

Jetstream s'occupe également de l'authentification 2FA, la révocation de sessions, la création de clefs d'API et optionnellement la gestion d'équipes.

Tout cela, Jetstream l'enrobe dans une interface magnifique réalisée avec Tailwind CSS et plein de composants prêts à l'emploi. 2 possibilités : une implémentation avec Livewire et une avec InertiaJS.

Présentation d'Inertia

InertiaJS permet de créer des SPA en réduisant la complexité qui les accompagnent et en utilisant le plus possible les capacités des frameworks back-end. Ça marche avec Vue, React ou Svelte pour le front-end et Laravel ou Rails pour le back-end.

L'idée est simple : pas de routeur côté client et pas d'API pour communiquer. On crée des contrôleurs et on passe des données à nos vues, comme avec Blade. Sauf que là, c'est VueJS qui récupère directement les données comme des props, sans rien avoir de plus à coder.

Quand vous cliquez sur un lien ou envoyez un formulaire, Inertia récupère les données à passer au nouveau composant VueJS et fait le changement dans la page. L'expérience utilisateur est la même qu'avec une SPA traditionnelle et celle du développeur est grandement facilité.

Avantages et inconvénients

Les + de Jetstream :

  • fini de développer les routes et les vues communes à tous les projets avec des utilisateurs
  • un stack technique à jour et clef en main
  • des composants déjà développés et notamment un système d'affichage de modals

Les - de Jetstream :

  • comme tous les packages, il faut suivre les mises à jours de Jetstream. Ce point est facilité par la présence d'un fichier UPGRADE.md dans le repo
  • Jetstream ne supporte plus Vue2 depuis le 16/02

Les + d'InertiaJS :

  • gain de temps et réduction des boilerplates
  • utilisation d'un framework front-end existant donc réutilisation de connaissances
  • conservation d'une grande partie du code si vous migrez vers une application mobile avec Cordova ou Capacitor

Les - d'inertiaJS :

  • l'autocompletion des routes n'existe pas encore comme elles passent côté client avec Ziggy
  • les routes d'autres packages comme Laravel Cashier ne sont pas prévues pour InertiaJS. Il faut revoir les intégrations pour utiliser Inertia.location()

Vous aimez mes articles? Inscrivez-vous pour être alerté des nouveautés.