Agence de développement Laravel

L'agence Webup est une agence de développement Laravel, experte dans la création d'applications web sur-mesure et évolutives. Nous maîtrisons la TALL stack (Tailwind, Alpine.js, Laravel, Livewire) pour offrir des solutions performantes adaptées à chaque projet.

Nos développeurs Laravel mettent leur savoir-faire au service de vos besoins, de la conception au déploiement. Faites appel à notre expertise pour des applications robustes, sécurisées, et prêtes à évoluer avec votre entreprise.

Logos de l'agence Webup et de Laravel

Qu’est-ce que Laravel ?

Laravel est un framework PHP. C’est plus précisément le framework open-source le plus populaire dans le monde aujourd’hui, bien qu’il ne soit pas encore très répandu en France.

Vous avez peut-être entendu parler d’autres frameworks, tels que CakePHP, CodeIgniter ou encore Symfony dont il est un descendant direct.

Pour faire simple, il s’agit à la fois d’un cadre de programmation et d’une boîte à outils qui contient tout ce qu’il faut pour qu’un développeur web puisse démarrer un projet rapidement et efficacement, à condition de savoir manier ces outils bien entendu.

C’est pour cela qu’il est conseillé de travailler avec des spécialistes Laravel, et dans ce domaine, les développeurs de l’Agence Webup sont de véritables virtuoses !

Vous avez un projet en tête ?
Illustration représentant deux programmeurs

La Tall Stack

Utilisateurs de la TALL stack depuis plus de deux ans, nous avons constaté ses nombreux avantages pour la création d'applications web modernes, performantes et faciles à maintenir, quelle que soit la taille du projet initial. La TALL stack, une combinaison puissante de technologies modernes composée de Tailwind CSS, Alpine.js, Livewire et Laravel qui dévoilent tout leur potentiel lorsqu'elles sont utilisées ensemble.

Si Tailwind peut rebuter dans un premier temps de par sa syntaxe basée sur des classes utilitaires, le framework se révèle redoutable pour le prototypage rapide et la maintenance facilitée sur le long terme.

Il en va de même pour Alpine, un framework minimaliste JavaScript que nous avions commencé à utiliser en parallèle de Vue.js pour finalement l’utiliser exclusivement sur chacun de nos projets. Celui-ci nous permet de créer des composants légers et réactifs, parfaits pour des interactions simples mais efficaces avec un minimum d’empreinte côté frontend.

Pour une expérience utilisateur interactive sans se plonger dans le JavaScript complexe, nous utilisons Livewire. Ce framework facilite la création de composants dynamiques en PHP, directement au sein des templates Blade. Les données se mettent à jour en temps réel, sans rechargement de page.

Enfin, notre pilier central, Laravel, un framework PHP reconnu pour sa simplicité et sa puissance. Laravel permet de construire des applications robustes, sécurisées et évolutives. Avec ses fonctionnalités avancées comme l'authentification, les migrations et l'ORM Eloquent, le développement devient un vrai plaisir.

Capture d'écran du CMS Laravel

La gestion de contenu intuitive avec Statamic

Statamic est une solution idéale pour celles et ceux qui cherchent à combiner développement sur mesure et gestion de contenu performante. Contrairement à des CMS traditionnels, Statamic ne fait pas de compromis sur la flexibilité ou les performances. Ainsi, nous l’intégrons directement dans nos projets et lui déléguons l’ensemble de la gestion de contenu de nos sites.

Statamic s’intègre très bien dans des projets Laravel existants et peut fonctionner en mode “flat file” mais aussi sur un modèle relationnel plus classique. Celà permet de créer facilement des pages entièrement administrables qui conservent une expérience utilisateur ainsi qu’un design travaillé et une intégration axée autour du SEO, des performances et de l’accessibilité.

Représentation d'un site de vente en ligne

Développement d'ecommerces et ERP sur mesure

Forts de 10 ans d’expérience dans le secteur du e-commerce, nous accompagnons des clients de toutes tailles sur le développement de sites e-commerce sur mesure en Laravel ainsi que sur la connexion de toute sortes d’ERP, qu’ils soient propres à un secteur d’activité ou généralistes. Ainsi selon les cas, nous venons développer des modules spécifiques sur Laravel en renfort d’une solution ERP existante ou nous proposons des API pour permettre une communication bidirectionnelle entre l’ERP et notre modèle de données.

Dans certains cas, nous pouvons même remplacer complètement l’ERP par une solution personnalisée. Ainsi, nous pouvons proposer en développement sur mesure de prendre en charge la gestion du stock, du catalogue, des clients, de la facturation, de la logistique avec la gestion des commandes et transporteurs, l’impression des étiquettes ou encore l’implémentation des taxes. Nous pouvons aussi développer des interfaces dédiées aux points de vente avec la prise en charge des interfaces tactiles et des lecteurs de codes barres.

Illustration représentant un développeur web au travail

Développement de packages sur mesure

La création de packages fait partie de l’ADN de l’agence. Au travers des années, nous avons su participer à l’écosystème Laravel et JavaScript en proposant, le plus souvent sous licence libre et open-source, des solutions adéquates aux problématiques récurrentes.

Un package peut prendre différentes formes. Il peut représenter une intégration avec un service tiers, et fournir une couche d’abstraction pour gérer les interactions entre une application web et des services ou prestataires externes. Une intégration avec un prestataire de paiement ou bien un fournisseur de mails sont des exemples types. Il pourra aussi fournir des implémentations de systèmes nécessaires au fonctionnement spécifique d’une application web, comme un panier e-commerce, un système de fil d’ariane, ou des algorithmes et structures de données dédiés à des domaines particuliers. De plus, un package peut être un moyen de distribuer des composants d’interface stylisés, qui pourront être réutilisés dans différents contextes.

Un package permet également de respecter certaines contraintes qui peuvent émerger de votre environnement. Peut-être avez vous la charge de plusieurs applications Laravel ou PHP existantes, et avez besoin d’un développement spécifique qui doit être mis en place sur l’ensemble de vos projets. En fonction de vos contraintes légales et de vos besoins, un package pourrait répondre à vos attentes. En effet, c’est un mécanisme efficace pour développer une solution sans nécessiter un accès au code source de vos projets. Par exemple, un module de panier e-commerce peut être développé sur la base d’un cahier des charges et de scénarios définis.

Quelques exemples de nos contributions open-source

Laravel-Sendinblue

laravel-sendinblue

webup/laravel-sendinblue est un driver de transport mail qui permettait l’envoi de mails transactionnels via l’API de SendInBlue (maintenant Brevo).

Ce package fut largement utilisé, avec plus de 450 000 installations, entre 2016 et 2023, période durant laquelle le support SendInBlue n’était pas pris en charge par Laravel.

laravel-tools

laravel-tools

webup/laravel-tools fournit des utilitaires pour implémenter rapidement des breadcrumbs et des messages flash.

Avec près de 3000 installations, il est également installé sur la majorité de nos réalisations.

laravel-form

laravel-form

webup/laravel-form proposait des raccourcis pour générer des champs de formulaire, à une époque où les x-components Laravel n’existaient pas.

Il reste fiable et utilisé sur une large proportion de nos réalisations, en plus de cumuler presque 6000 installations.

dropmic

Dropmic

dropmic - avec plus de 13 000 installations, ce package est une implémentation de dropdowns en javascript pur, et qui était notre solution avant le passage sur la nouvelle TALL-stack (qui court-circuite le besoin de package dédié pour ce genre de composant).

Helium

helium (helium-admin sur npmjs.com) est un template d’admin que nous avons développé afin de fluidifier la mise en place de back-office au sein de nos réalisations.

Une démo est accessible ici.

Illustration d'une développeuse

Respect des standards de code

Les standards de code sont des règles de style qui ne sont pas obligatoires mais qui rendent le code plus maintenable, en favorisant l’analyse visuelle. Un code qui respecte certains standards sera plus lisible pour un développeur habitué à ceux-ci.

Pour un projet quisera peut être amené à passer entre de nombreuses mains et différentes entités, respecter les standards établis permet de garantir une passation du code plus efficace entre différents acteurs.

Pour PHP, les standards établis sont représentés par les PHP Standards Recommendations (PSR). A l’agence, nous respectons les recommandations PSR-1, PSR-4 et PSR-12.
Les PSR-1 et PSR-12 garantissent un style uniforme et donc une meilleure lisibilité du code. Le PSR-4 est une norme de structuration et de déclaration des hiérarchies de dossiers de code, pour permettre le mécanisme d’autoloading de PHP.

Les autres PSR sont respectés au travers de notre utilisation de Laravel, et le code que nous produisons n’est généralement pas concerné directement.

Cependant, les PSR ne suffisent pas à maximiser la qualité du code, et c’est pourquoi nous utilisons d’autres outils complémentaires. Pint est un utilitaire qui permet de formater le code façon Laravel. Grâce à son utilisation, notre code respecte les conventions Laravel, elles-même dérivées des PSR. Nous utilisons également Larastan, basé sur PHPStan, qui permet de maintenir un code typé statiquement. En favorisant le typage statique, PHPStan peut détecter et prévenir un ensemble de bugs avant même de tester le code.

Développeuse web à la recherche de bugs à réparer

Les tests unitaires

En parallèle de l’analyse du code, la mise en place de tests unitaires permet d’assurer le bon fonctionnement du code testé et de limiter les régressions fonctionnelles. Le vocabulaire de ce domaine est parfois source de confusion. Un “unit test” permet de tester quelques lignes de codes automatiquement pour vérifier que le résultat correspond bien aux attentes. Ce genre de test est particulièrement adapté pour assurer l’exactitude mathématique des algorithmes. En parallèle, un “feature test” permet de tester un scénario, une “user story”. On vérifie que cliquer sur “ajouter au panier” provoque bien l’exécution du code responsable d’ajouter au panier.

Les feature et unit tests ont leur utilité mais nous pensons qu’il faut les utiliser avec parcimonie. Leur implémentation a un coût, et il n’est pas toujours rentable de chercher une couverture de 100% du code. C’est le concept de code coverage. En général, nous recommandons la mise en place de tests exhaustifs sur les portions critiques de votre application ou de votre site. Le tunnel d’achat d’un e-commerce est un exemple.

Illustration évoquant l'optimisation du SEO

Marketing technique

L’intégration datalayer/GA4 est un besoin récurrent auquel nous sommes habitués. En une phrase, le datalayer est un outil technique qui permet d’envoyer des données vers Google Analytics à des fins statistiques, directement depuis le navigateur de vos utilisateurs et clients.
Par défaut, GA4 propose une liste très exhaustive de données à remonter. Nous sommes en capacité d’orienter la mise en place au cas par cas pour prioriser les données les plus pertinentes à votre situation. En plus des recommandations standards, nous pouvons répondre à des besoins plus spécifiques en remontant des données sur-mesure non définies dans les guides GA4.

L’optimisation pour les moteurs de recherche est un sujet souvent mis de côté au lancement d’un projet. Or, nous pensons qu’il ne suffit que de quelques actions pour construire une base solide sur laquelle construire une future stratégie. Configurer une sitemap, préparer des directives robots, et renseigner quelques balises meta sont autant d’actions qui améliore le caractère “crawlable” de votre site, ce qui permet aux moteurs de recherche d’indexer plus efficacement vos pages et souvent de leur attribuer une meilleure note.

Une mise en place plus poussée pourra impliquer un ensemble de balises meta à introduire, comme par exemple le standard OpenGraph, pour obtenir une intégration aux réseaux sociaux.
Les redirections d’URL sont également un sujet d’attention au cours de la vie d’un site web. Lorsque des pages ne sont plus accessibles, une bonne gestion des redirections permettra de limiter l’impact SEO associés à la réindexation de votre site.

Un développeur web corrige des erreurs

Mise à jour et maintenance

L’agence a adopté Laravel depuis plus de 6 ans, et l’équipe a suivi l’évolution du framework au cours de ces années avec les sorties de chaque version majeure. Le passage aux nouvelles versions est une obligation à laquelle il faut faire face. Au-delà des ajouts au framework qui améliorent l’expérience développeur et étendent le champ des possibles, il s’agit avant tout de garantir la sécurité de votre site. Les anciennes versions ne sont jamais supportées officiellement plus de quelques années, et c’est un donc un enjeu important d’être capable de migrer lorsque la version actuelle approche de sa fin de vie.

De part notre maintenance active de projets de longue date et notre acquisition de nouveaux projets régulièrement, nos compétences sont à jour sur les dernières évolutions Nous savons gérer les migrations Laravel, qui peuvent être de grande envergure en fonction du projet.

Illustration représentant l'équipe en train de brancher un site à une API

Intégration de services externes

Logos de Paypal, Stripe, Floa, Pledg, Colissimo, SAP, Azure Active Directory et Amazon Pay

La création de site web nécessite souvent de s’interfacer avec des prestataires externes de différents domaines d’expertise. Le cas le plus courant est l’intégration de modules de paiements sur un e-commerce. Au fil des années, nous avons été amenés à interagir avec un nombre relativement important de prestataires externes. L'interface avec des services qui prennent différentes formes est l’une de nos forces.

Nous avons déjà réalisé des intégrations avec SAP, mais aussi avec des bases de données en direct. Nous avons une certaine expérience avec les modules de paiement, ayant intégré, souvent en parallèle, des prestataires comme Paypal, Monetico, Stripe, Floa, Paddle ou Pledg aux options de paiement de nos réalisations.

Nous sommes toujours prêts à mettre en place de nouveaux services, en nous adaptant à leurs contraintes. Une API sécurisée n’est pas toujours disponible, aussi nous est-il arrivé de construire des interactions avec des bases de données en direct, ou bien via échange de mails automatisés ou serveur FTP s’il n’existe pas d’autre alternative. Si le prestataire choisi dispose d’un environnement de démo (ou staging), on pourra s’y connecter dans le cadre de tests pour que vous puissiez vérifier vous même le comportement de l’intégration. C’est souvent le cas avec les formulaires de paiement, pour lesquels on souhaite un fonctionnement optimal.

Illustration d'un développeur testant les performances d'une application mobile

Performances & optimisations

La performance technique d’un site ou d’une application web suit généralement une seule métrique principale: le temps de réponse. Un ensemble d’éléments sont directement impactés par cette métrique.

Plus une requête est longue, plus elle monopolise le serveur qui héberge votre site. L’optimisation du temps de réponse permet donc de traiter plus de requêtes par instant sans avoir besoin de mettre en place une architecture plus coûteuse pour héberger votre site. Et si votre site utilise des technologies serverless comme AWS Lambda, le coût d’hébergement est directement proportionnel au temps d’exécution du code, et donc au temps de réponse de chaque requête. De plus, la qualité de l’indexation de votre site sur les différents moteurs de recherche dépend directement de son temps de réponse, puisque chaque robot dispose d’un temps limité pour parcourir votre site.

A l’agence, nous sommes sensibles au sujet de la performance et nous portons une attention particulière à l’optimisation de nos productions dès le début du développement. Nous avons plusieurs axes sur lesquels agir. Lorsque vous disposez d’un site ou d’une application web, le code fait souvent des appels à une base de données pour stocker ou extraire des informations (par exemple, votre catalogue de produits).

Nos 3 axes d’optimisation

Tout d’abord, nous préparons la structure de la base pour que les données qui sont souvent réclamées soient le plus accessibles possible. Cela passe par une conception minutieuse des jointures entre les données, ainsi que par une indexation précise des champs souvent utilisés.

Ensuite, nous optimisons les appels faits entre le code et la base de données, pour limiter la quantité d’information en transit. Cela passe par l’omission de champs inutiles au contexte, et par le filtrage efficace et méthodique des données directement depuis la base de données. L’idée est que le code qui représente votre site ne doit traiter que le volume strictement nécessaire à sa tâche. Enfin, le troisième axe consiste à limiter au maximum la quantité d’échanges entre code et base de données. Nous réutilisons les données déjà recueillies, et nous faisons attention à regrouper les requêtes (concept de eager-loading) pour limiter leur nombre.

En ultime levier à actionner, nous utilisons des systèmes de cache comme Redis, pour garder en mémoire les requêtes les plus courantes dont le résultat n’a pas besoin d’être systématiquement recalculé. Par exemple, le contenu d’une page d’accueil met souvent en valeur des éléments qui ne changent pas d’une heure à l’autre. Mettre en cache de telles données permet de réduire considérablement le temps de réponse cumulé des pages à haut trafic.

L’optimisation d’un site ne passe pas seulement par le recueil de données mais aussi par leur traitement. L’optimisation des algorithmes et processus de traitement des données détermine également le temps de réponse, et nous portons une attention toute particulière à favoriser les optimisations qui impacteront fortement les performances de votre site. Toutes les optimisations n’ont pas un impact drastique, et ne sont donc pas forcément les plus rentables en coût de développement. Nous cherchons à identifier et sélectionner les points qui feront le plus de différence. Les pages à fort trafic sont naturellement ciblées, mais il ne faut pas oublier les processus transparents de synchronisation ou de dialogue avec des services externes, qui sont souvent longs et couvrent une quantité de données très importante.

L'équipe de l'agence Webup développe une API à partir de différentes sources

Création d’API

Le développement d’API est un besoin relativement fréquent en fonction de la typologie des projets qui nous sont confiés. Si vous gérez une application mobile, vous avez sans doute besoin d’une API qui fournit les données dont votre application a besoin. Votre catalogue et le stock de vos produits, les promotions en cours, et les données du client dans le cadre d’un e-commerce, ou bien des données métier si votre application est plus spécifique.

Peut être n’avez vous pas d’application mobile mais vous gérez plutôt une SPA, un site web qui dispose d’une seule page ultra-dynamique, auquel cas une API est également nécessaire pour remplir le même rôle.

Dans un autre contexte, vous êtes peut-être en relation avec des entités externes qui ont besoin de se connecter à votre outil ou site web, comme des marketplaces si vous avez un ecommerce. La mise en place d’une API est toute indiquée pour fournir à ces entités les informations dont elles ont besoin, lorsqu’elles en ont besoin.

Dans tous les cas, nos compétences en la matière, largement transversales avec le développement de site web grâce à Laravel, ont fait leurs preuves dans nos réalisations passées. Notre utilisation de Laravel Sanctum nous permet de rapidement mettre en place une authentification forte spécifique à l’API.

Lorsque vous souhaitez exposer votre API publiquement, par exemple à destination des marketplaces, il est chaudement recommandé de mettre à disposition une documentation exhaustive, pour guider les utilisateurs dans leur utilisation et limiter le besoin de faire appel à votre support technique. Nous avons par le passé fourni de telles documentations en utilisant des technologies comme Swagger, pour générer une documentation détaillée pour chaque requête possible.

Illustration de plusieurs appareils connectés, synchronisés

Temps réel

Vous construisez une nouvelle solution qui nécessite que chaque client connecté dispose des dernières données en temps réel ?

L’écosystème Laravel est prêt pour vous. Avec Laravel Echo, la mise en place d’échanges en temps réel entre clients et serveur via des websockets pourra répondre à votre besoin.

Nous pouvons passer par un fournisseur externe pour la gestion des connexions, comme Pusher, ou bien nous pouvons mettre en place un serveur dédié à votre solution grâce à Laravel Reverb.

Notre expérience en la matière nous permet de vous conseiller sur la pertinence de cette technologie dans votre cadre d’utilisation, et le cas échéant de la mettre en place en prenant en compte le contexte de votre solution, la volumétrie attendue et l’optimisation nécessaire.

Contactez l'agence Webup

Besoin d'aide ?

Laissez-nous un message pour être recontacté par notre chargé de compte, et discutons de votre projet autour d’un café (ou un thé) !

Nous contacter