Drag

Laravel Nova : créer un back-office Laravel complet (présentation)

Laravel Nova : créer un back-office Laravel complet (partie 1)

Écrit par : Thibault Chazottes

Laravel Nova en quelques mots

Laravel Nova est un produit officiel Laravel, maintenu par l’équipe du framework — au même titre que Laravel Cloud, Forge ou d’autres outils de l’écosystème. C’est un produit payant (licence par projet), mais le rapport temps gagné / coût est souvent très favorable.

Concrètement, Nova sert à produire des backends pour vos applications : interfaces d’administration complètes, sans repartir de zéro à chaque projet.

Vous connaissez peut-être des alternatives comme Filament, Backpack ou, plus anciennement, Voyager. Nova se positionne sur le même créneau, avec une approche très orientée productivité et une interface soignée.

Le site officiel : nova.laravel.com — nous sommes actuellement sur la version 6.


À quoi sert Nova ?

Pour vos clients, vous avez presque toujours besoin d’un espace d’administration pour :

  • gérer une liste d’utilisateurs et leurs rôles

  • naviguer entre différentes données via un menu

  • créer, modifier et supprimer des enregistrements (CRUD)

  • rechercher dans la base de données

  • filtrer (clients en retard de paiement, statuts, dates, etc.)

  • déclencher des actions (export, envoi d’email, traitements groupés…)

  • afficher des statistiques ou des graphiques quand c’est pertinent

C’est du classique. Et c’est précisément ce que Nova génère très rapidement, à partir de vos modèles Laravel.


Mon retour d’expérience (depuis 2018)

J’utilise Nova pour tous mes clients depuis 2018. Le déclic est arrivé à la Laracon EU d’Amsterdam : Taylor Otwell présente Nova en live et, en moins d’une heure, montre un CRUD complet avec filtres, actions et une interface très propre.

À ce moment-là, je travaillais sur un SaaS assez conséquent (gestion de boutique informatique, réparations, travaux…) : deux mois de développement sur un back-office maison — routes, contrôleurs, formulaires, validations, le classique Laravel.

On a décidé de repartir sur Nova. Résultat : en 3 à 4 heures, on avait l’équivalent de ces deux mois de boulot.

Pourquoi un tel écart ? Parce qu’avec Nova, on ne code plus toute la couche admin à la main : on définit une ressource (un fichier par modèle), on y déclare les champs, et l’interface se génère automatiquement.


Installation : une simple librairie Composer

Un des premiers arguments en faveur de Nova : l’installation est simple.

Comme pour Statamic ou tout autre package Laravel, vous partez de votre repo, vous installez via Composer, Nova crée ses fichiers de configuration — et c’est parti. Pas de stack parallèle, pas de framework à côté : Nova vit dans votre application Laravel.


L’interface Nova : toujours la même logique

Peu importe le projet, l’interface suit la même structure :

  • une barre supérieure avec recherche globale dans toute la base

  • une sidebar à gauche avec les liens vers vos ressources

  • pour chaque ressource : une liste avec recherche locale, sélection multiple, filtres, actions et boutons voir / modifier / supprimer

  • des onglets et des champs personnalisables sur la fiche détail

  • éventuellement des graphiques sur le tableau de bord

Modèle vs ressource

Dans Laravel, on parle de modèles Eloquent. Dans Nova, on parle de ressources : chaque modèle que vous voulez administrer est lié à une ressource Nova, un fichier PHP où vous définissez les champs, leur affichage, les règles de validation, les relations, etc.

Une fois la ressource en place, Nova génère la liste, les formulaires de création/édition et la vue détail — toujours avec le même format, quelle que soit la donnée.


Nova vs Filament : honnêteté avant tout

Nova est extrêmement puissant et je le recommande sans hésiter à mes clients. Mais il faut aussi être lucide sur ses limites.

Nova est assez fermé dans sa structure : menu en haut, sidebar à gauche, mise en page imposée. On peut créer des champs personnalisés, mais on reste dans ce cadre.

Filament (arrivé un peu plus tard, vers 2020) propose souvent plus de fluidité côté back-office et une personnalisation plus poussée de l’interface. En contrepartie, il demande en général plus de temps de développement.

Ma proposition aux clients est simple :

  • Nova coûte 99 $ par projet (licence site) — un investissement minime

  • l’interface est fixe mais propre et professionnelle

  • on gagne un nombre de jours considérable sur le développement

  • le prix final du projet reste très optimisé

Chaque outil a ses forces. Nova brille sur la vélocité et la fiabilité d’un back-office standard, bien ficelé, livré vite.


Ce que cette playlist va couvrir

Dans les prochains épisodes, on va construire un projet concret ensemble et explorer les fonctionnalités une par une :

  • créer des ressources

  • définir des champs et des relations

  • ajouter des filtres

  • mettre en place des actions

  • aller plus loin sur le tableau de bord, les permissions, etc.

L’objectif : à la fin de la série, avoir un petit projet Nova complet, prêt à servir de base pour vos propres applications.

Si vous avez des sujets Nova que vous aimeriez voir abordés, n’hésitez pas à les proposer en commentaire sur YouTube — je les intègre au fil de la playlist.


Démo vidéo

Voici la vidéo de présentation complète :


Conclusion

Laravel Nova est une excellente solution si vous :

  • développez déjà en Laravel

  • devez livrer un back-office propre à vos clients

  • voulez éviter de recoder du CRUD à chaque projet

  • cherchez un outil officiel, maintenu et stable

Depuis 2018, c’est mon choix par défaut — et mes clients sont conquis.

Dans les prochains articles, on passera à la pratique : installation, première ressource, champs, filtres et actions, étape par étape.