Phpnative

Laravel!!! sort de ce navigateur

phpnative
Philippe Escalle CTO

Le réveil du PHP natif

Alors les puristes de Docker, vous allez vous faire un peu mal… car ici, pas besoin ! Pas de containers, pas de Nginx, pas de stacks Kubernetes. Et pourtant, un débutant est parfaitement capable de créer une application desktop pour Windows, macOS ou Linux, avec un CRUD de users, une base de données locale, et une interface soignée en Tailwind. Le tout en PHP.

Pendant longtemps, PHP était cantonné à son rôle de langage backend pour le web. Une technologie incontournable, mais toujours dans l'ombre du navigateur. Pourtant, un mouvement est en train de bouleverser cet écosystème : NativePHP. Imaginé et développé par Simon Hamp (Gran Canaria) et Marcel Pociot (Beyond Code), ce projet a pour ambition de sortir PHP de son cadre traditionnel pour en faire un outil de création d'applications desktop, et aujourd'hui, mobiles.

NativePHP desktop : un vieux rêve à portée de terminal

NativePHP dans sa version desktop repose sur un concept simple : transformer une application Laravel en une vraie application Windows, macOS ou Linux. Concrètement, il utilise Electron pour encapsuler Laravel dans une fenêtre native.

Electron, pour ceux qui ne connaissent pas, est un framework open-source développé par GitHub (et aujourd'hui maintenu par OpenJS Foundation) depuis 2013. Il permet de créer des applications desktop multiplateformes à l'aide de technologies web : HTML, CSS, JavaScript. Sous le capot, Electron combine Node.js pour la logique backend, et Chromium pour l'affichage frontend. C'est la techno derrière des apps comme Visual Studio Code, Slack, ou encore Discord.

Dans le cas de NativePHP, Electron sert donc d'enveloppe pour faire tourner Laravel comme une vraie app desktop : le serveur PHP tourne en local, souvent avec une base SQLite, et l'interface est propulsée par Blade, Livewire ou Inertia.

Alors oui, ce n'est pas tout à fait nouveau. Il y a plusieurs années déjà, certains développeurs (moi y compris) bidouillaient des solutions locales qui lançaient une web app Laravel avec un serveur PHP embarqué, parfois même un MySQL portable, le tout regroupé dans un .exe via des outils comme Electron ou NW.js.

Je l'avais testé à sa sortie pour transformer un ERP interne dans ma société et c'était déjà bluffant... un peu lourd sur le disque dur pour faire tourner 5 pages (plusieurs centaines de mégas à l'époque), mais ça marchait !

Ce qui change avec NativePHP, c'est la simplicité, l'écosystème, et la communauté Laravel qui pousse derrière. Tout est prévu pour que le développeur Laravel se sente chez lui : php artisan native:install, native:serve, build en un clic, intégration Blade/Tailwind, et bientôt Tauri pour remplacer Electron avec un runtime plus léger.

Mais pourquoi faire ?

On pourrait se demander : à quoi bon ? Après tout, la même application Laravel pourrait tourner sur un serveur distant et être accessible depuis n'importe où. Oui, sauf que parfois, le web, ce n'est pas la solution idéale.

  • Vous voulez créer un outil de gestion pour une TPE sans accès Internet fiable

  • Vous développez un outil interne pour une entreprise en réseau fermé

  • Vous devez gérer des données sensibles en local (médical, juridique, industriel)

  • Vous avez besoin d'un logiciel offline utilisable sur le terrain (chantier, agriculture, etc.)

  • Vous voulez simplement livrer une application desktop à un client sans passer par le cloud

Un cas d'usage très pratique, souvent oublié, est celui des utilisateurs qui doivent intervenir dans des zones sans connexion mobile ou Wi-Fi. Ici, sur un ordinateur portable, l'utilisateur pourra travailler sur une version locale de l'application, effectuer ses saisies, remplir des formulaires, gérer des contacts ou des stocks. Et une fois la connexion retrouvée, tout sera synchronisé automatiquement avec une base de données distante.

Dans tous ces cas, une application Laravel + SQLite embarquée dans un .exe fait parfaitement le job. Pas de maintenance serveur, pas d'hébergement, pas d'abonnement SaaS.

Et si vous avez besoin de synchronisation à distance, c'est possible aussi avec un mode hybride (offline/online).

Ce qui était de la science-fiction : NativePHP Mobile

Pendant des années, faire tourner PHP sur un smartphone relevait de l'expérimentation ou de la bidouille. C'était bon pour les hackathons ou les confs qui finissent en "Et si je faisais tourner un serveur Apache sur Android ?". Mais personne ne croyait vraiment à la viabilité d'une app Laravel publiée sur l'App Store.

Et pourtant, c'est exactement ce qu'a présenté Simon Hamp lors de Laracon EU 2025 : une application iOS, publiée sur l'App Store, propulsée par Laravel, Livewire, Tailwind... et PHP. Oui, PHP en prod sur un iPhone. Pas en WebView, pas en PWA : une vraie app native.



Comment est-ce possible ?

NativePHP Mobile est une nouvelle branche du projet. Il ne s'agit pas juste d'un frontend dans une coquille native, mais d'une exécution directe du moteur PHP compilé en C statique, embarqué dans l'app.

L'app est construite en Swift avec Xcode, et communique avec PHP via une extension qui permet d'exposer des fonctions natives (comme la vibration, la caméra, l'accès biométrique). Du côté PHP, on écrit des fonctions comme vibrate() qui appellent le code Swift embarqué. Et ça fonctionne. En live. Sur scène.

La démo ? Une app Laravel avec un Livewire component, des boutons qui vibrent le téléphone, prennent des photos, ou lisent les données biométriques. Le tout compilé dans une app .ipa, validée par Apple en 3 jours.

Ce n'est pas (encore) open-source

La version mobile de NativePHP n'est pas encore disponible publiquement. Elle fait partie d'un programme Early Access, baptisé Zephyr, accessible sur nativephp.com/mobile. L'accès est payant, ce qui permet de financer le développement très spécialisé et complexe du runtime mobile.

Simon prévoit une roadmap ambitieuse : Android, plus d'APIs natives, un système d'abstraction plus haut niveau pour les devs, et potentiellement un service cloud autour du projet. Le but n'est pas de concurrencer Flutter ou React Native, mais de permettre à un développeur Laravel de créer une app mobile... sans changer de langage, ni de framework, ni de mentalité.

Ce qu'en pensent les devs

Les premiers retours sur NativePHP Desktop sont plutôt enthousiastes. Des développeurs l'ont utilisé pour créer des mini-ERP offline, des interfaces de production, ou des outils internes d'entreprise, le tout packagé en .exe avec Laravel + SQLite. L'approche locale-first s'intègre bien dans les besoins de TPE/PME ou dans des contextes déconnectés (hôpitaux, industrie, terrain).

Sur la partie mobile, la communauté est mi-curieuse, mi-hallucinée. Beaucoup pensaient que c'était tout simplement impossible. Les quelques développeurs ayant accès à la version Zephyr parlent d'une expérience encore brute mais déjà fonctionnelle, et surtout... du kiff d'écrire php artisan et vibrate() sur un iPhone.

Et demain ?

NativePHP ne va pas remplacer tout le développement mobile, ni sauver le monde. Mais pour toute une population de développeurs PHP et Laravel qui pensaient devoir tout réapprendre pour faire du mobile, c'est une porte d'entrée inattendue, concrète, et excitante.

Le projet est jeune, ambitieux, et porté par une équipe passionnée. Si vous êtes CTO ou lead dev dans un contexte Laravel, c'est clairement un sujet à surveiller, à tester, ou à soutenir. Et si un jour vous voyez un bouton "vibrer" en Blade... vous saurez que vous n'êtes plus tout à fait dans le même PHP qu'avant.


L'oeil du CTO

" NativePHP n'est pas une simple expérimentation. C'est une extension naturelle de Laravel vers de nouveaux usages, sans rupture de compétences. Pour un CTO, cela signifie qu'une équipe PHP existante peut livrer des applications desktop ou mobiles sans recruter des profils natifs ou JavaScript frontend spécifiques. C'est un levier de productivité, de cohérence technique, et parfois même de souveraineté logicielle. Est-ce adapté à tout ? Non. Est-ce mûr pour de la production sérieuse ? Oui, si vous ciblez un périmètre clair : application interne, usage offline, client lourd sur mesure, ou même POC mobile. NativePHP remet Laravel au centre de la table, et cette fois-ci, hors du navigateur. À tester sans hésiter... surtout si vous êtes dans un environnement où la connexion réseau n’est jamais garantie. "