WordPress Playground : le CMS tourne entièrement… dans votre navigateur web

Nicolas Furno |

WordPress Playground est une expérimentation lancée par les développeurs du CMS (Content Management System, un système de gestion de contenu en bon français) avec un objectif intriguant. Cette app codée en PHP tourne entièrement dans… votre navigateur. Quand vous chargez la démo, ce n’est pas un serveur qui se charge de faire tourner le code PHP pour générer les pages web ainsi que la base de donnés MySQL normalement indispensable à tout site conçu avec WordPress. Tout est entièrement en local, dans la session du navigateur, grâce à des technologies modernes qui le permettent.

Ce site WordPress créé dans mon navigateur web tourne sans serveur : tout est exécuté localement, directement dans le navigateur.

Le code PHP ne peut pas être interprété directement par les navigateurs web, qui ne savent afficher que des pages web en HTML. C’est pourquoi on a traditionnellement besoin d’un serveur qui se charge de la création de ces pages. À la place, le projet repose sur WebAssembly, un standard du web qui permet de faire tourner du code bas niveau dans un navigateur. C’est lui qui remplace le serveur PHP, en se chargeant d’interpréter à la volée le code source de WordPress pour générer des pages web.

La base de données MySQL ne peut pas fonctionner de cette manière, mais WordPress Playground repose sur une base de données en SQLite à la place, à l’aide de ce plugin. Ce moteur de base de données est moins puissant, mais il a l’avantage de reposer sur un fichier unique, ce qui est intéressant dans ce contexte. Enfin, le serveur web qui se charge traditionnellement de répondre aux requêtes du navigateur est remplacé par un module en JavaScript qui repose sur les ServiceWorkers.

L’architecture du projet, avec le site WordPress qui est rendu dans un cadre au sein de la page web.

Cette approche prouve que l’on peut créer un site web en une poignée de secondes, ce qui pourrait représenter une partie du futur de WordPress. Les plus gros sites ont besoin de toute la complexité historique du CMS, mais une version allégée pourrait suffire à bien des besoins et elle pourrait nécessiter des ressources bien plus légères. WordPress Playground ne permet que de créer des sites qui disparaissent sitôt un onglet fermé, mais on pourrait imaginer un service similaire, avec un serveur allégé pour stocker les données et fichiers et la partie serveurs web pour distribuer le site. Toute l’édition pourrait très bien rester effectuée dans le navigateur web, en réutilisant la base de cette démonstration technique.

Comme tous les développements autour du CMS, WordPress Playground est un projet open-source et vous trouverez toutes les sources sur GitHub. Des instructions pour l’installer sur votre propre serveur sont aussi proposées, mais les développeurs préviennent qu’on en est encore au stade de l’expérimentation, ce n’est pas prêt pour une mise en production. La documentation est aussi proposée à cette adresse.

avatar Lucas | 

Génial, bravo pour l’ingéniosité et merci pour le partage !
🙌👏🙏

avatar Furious Angel | 

Beaucoup de mal à voir l’intérêt…

avatar laraigneegypsymontealagouttiere | 

@Furious Angel

Developper des pages web sans devoir avoir un serveur, un noyau et une base de données

Très pratique pour confier du développement de pages à un free-lance ou un collaborateur sans accès et sans toucher au site actuel

avatar Dimemas | 

@ furious angel :
je pense que c'est pour les single page ce genre de projet. On dirait que ça fonctionne sur du NodeJS, mais je n'arrive pas à comprendre si tu peux mettre un nom de domaine ou si on te donne une URL comme leur service wordpress.

en vrai, c'est pas déconnant pour celui qui veut faire un site statique et qui souhaite avoir un site léger sans recourir à un hébergeur web et sa gestion
par contre... SQLite, c'est léger mais c'est pas forcément ma base préférée, ça devient vite lourd si tu as beaucoup de données. Donc pour les SPA.

Par contre, si ton projet est gros, c'est clairement inutilisable. Je trouve ça un peu lent pour l'instant.
Mais quel projet de dingue !

avatar Kounkountchek | 

@Dimemas

Contrairement à une idée répandue SQLite n’est absolument pas lent.
Par contre il faut apprendre à l’utiliser, notamment au niveau de la création d’index pour garder son efficacité.
Maintenant ce n’est effectivement pas le choix qui doit être fait pour une app où des centaines d’utilisateurs vont venir taper sur la base au même moment.
Mais pour du WordPress, ça semble tout à fait pertinent.

avatar Dimemas | 

quand je disais que c'était lent, c'était le rendu du projet dans le navigateur pas SQLite ;)

Une BDD SQLite n'est pas lente mais c'est surtout fait pour les petits projets

avatar Nicolas Furno | 

@Furious Angel

Publier des photos de mon chat, naturellement !

avatar raoolito | 

@nicolasf

😻

plus sérieusement, on voit bien les avantages niveau confidentialité par exemple. Mais peut-on imaginer un internet 4.0 où une majorité du travail se deroulerait en local dans le navigateur sans serveur pour autre que le load initial ? Ok je pars loin, mais pour le coup on pourrait parler de revolution, non ?

avatar Nicolas Furno | 

@raoolito

Le problème restera pour stocker les données. Si on veut un site pérenne pour reprendre l’exemple de WordPress, il faut bien un serveur qui stocke tout ça.

avatar Derw | 

@nicolasf

C’est bien pourquoi j’ai du mal à saisir l’intérêt pour l’instant (à part pour un site 100% local). Un serveur ne sert pas qu’à traduire un langage en HTML, il permet surtout de « servir » du contenu à différents appareils…

avatar Nicolas Furno | 

@Derw

C’est une démo technique, mais un des objectifs derrière serait de proposer un WordPress plus léger et rapide, notamment grâce à SQLite.

avatar lepoulpebaleine | 

@nicolas

« WordPress plus léger et rapide »
Ça j’achète !!
De base, WordPress est assez lent : il me semble que ce fait est connu. Heureusement que pas mal d’hébergeurs mettent les pages en cache.

avatar cassis2k | 

C’est une belle démonstration technique 🤓

avatar RonDex | 

Franchement, quand on voit les évolutions des navigateurs Web : logiciel bureautique (Office, Antidote, etc.), interfaces d’appareil (Synology 😍), jeu vidéo, cloud computing, etc. à long terme, on aura presque plus besoin que d’un navigateur…

avatar raoolito | 

@RonDex

ca s’appelle chrome OS non ;) ?

avatar RonDex | 

@raoolito

Oui, je voulais l’indiquer comme exemple. Mais apparemment, j’ai oublié. 😅
Cependant pour le moment, on peut difficilement se contenter uniquement d’un navigateur. Sauf pour un usage basique.

avatar raoolito | 

@RonDex

« un usage basique » representant une enorme part de l’usage d’internet quand meme :)

avatar RonDex | 

@raoolito

En effet. Mais personnellement, je ne me vois pas utiliser uniquement un navigateur avec mon Mac.
Pourtant, j’utilise mon Mac de façon « simple ». Quasiment que de la bureautique et un peu de photos (comme un Pixelmator pro), et Horos un logiciel de radiologie.

avatar raoolito | 

@RonDex

je regarde les autres gens de mon foyer et la famille plus large, le voisinage, les amis, meme la classe de primaire…
hors ceux qui sont à 90% des jours sur ordi, tous peuvent fonctionner sur un chromeOS.

avatar RonDex | 

@raoolito

Où en utilise son ordinateur, d’une façon générale, avec les deux tiers du temps sur le navigateur. Mais il reste une part du temps avec des logiciels qui ne tournent pas, encore, sur navigateur Web.

avatar cnewton | 

@raoolito

Internet existait avant Google : https://en.m.wikipedia.org/wiki/Network_Computer

avatar raoolito | 

@cnewton

certes mais pas chromeOS

avatar Dimemas | 

ça existe déja rondex ;)

avatar Derw | 

@RonDex

J’ai du mal à voir l’intérêt pour l’utilisateur aujourd’hui de rajouter une couche supplémentaire entre le code et celui-ci…

avatar oomu | 

Alors ça, ça me requinque !

CONNEXION UTILISATEUR