Faut-il installer une extension dans un thème existant, ou repartir d’un starter theme complet avec sa propre chaîne de compilation ? Cette question résume assez bien le choix entre Timber et Sage 10 pour une équipe qui souhaite sortir de la logique PHP directement mêlée au HTML dans ses templates de thème.
Les deux outils poursuivent le même objectif, séparer la logique métier de la présentation, mais ils empruntent des chemins très différents pour y parvenir. Le choix entre les deux dépend moins de préférences esthétiques que de la structure d’équipe et du type de projets traités au quotidien par l’agence.
Timber : une extension, un moteur de templates
Timber s’installe comme une extension WordPress classique, via Composer ou directement depuis le répertoire des extensions. Il introduit le moteur de templates Twig dans un thème existant, sans imposer de structure de projet particulière au-delà de la présence d’un dossier de vues Twig. Un développeur peut l’ajouter progressivement à un thème déjà en place, fichier par fichier, sans réécriture complète.
<?php
// single.php
$context = Timber::context();
$context['post'] = Timber::get_post();
Timber::render( 'single.twig', $context );
Le fichier single.twig correspondant reste un gabarit Twig classique, avec sa syntaxe à double accolades pour les variables et ses balises de contrôle propres, sans mélange avec la syntaxe PHP :
<article>
<h1>{{ post.title }}</h1>
<div>{{ post.content }}</div>
</article>
Sage 10 : un starter theme complet avec Blade
Sage 10 adopte une approche différente : ce n’est pas une extension à ajouter, mais un starter theme complet à installer via Composer, qui embarque le moteur de templates Blade emprunté à l’écosystème Laravel via le package Acorn. L’arborescence du thème suit les conventions de Laravel, avec un dossier resources/views pour les gabarits Blade et une chaîne de build basée sur des outils modernes de compilation front-end.

{{-- resources/views/single.blade.php --}}
<article>
<h1>{{ $post->title() }}</h1>
<div>{!! $post->content() !!}</div>
</article>
Cette organisation impose de repartir d’une base neuve : Sage 10 ne s’installe pas sur un thème existant, il remplace entièrement l’architecture du thème par sa propre structure de dossiers et son propre système de composition.
Comparatif
| Critère | Timber | Sage 10 |
|---|---|---|
| Mode d’installation | Extension ajoutée à un thème existant | Starter theme complet, à démarrer de zéro |
| Moteur de templates | Twig | Blade (via Acorn) |
| Chaîne de build | Optionnelle, non imposée | Imposée (Vite par défaut) |
| Courbe d’apprentissage | Twig seul, syntaxe compacte | Blade et conventions Laravel |
| Migration progressive | Possible, template par template | Peu réaliste, réécriture globale |
Ce que révèle la pratique sur des projets d’agence
Sur des projets récurrents de taille moyenne, où le thème doit souvent être repris par différentes personnes de l’équipe au fil du temps, Timber présente un avantage concret : son adoption ne demande pas de réécrire l’existant, et un développeur qui découvre Twig pour la première fois retrouve rapidement ses repères, la syntaxe restant volontairement simple.
Sage 10 demande un investissement plus lourd au démarrage, mais profite en retour de la maturité de l’écosystème Laravel : autoloading via Composer, structure de composants Blade réutilisables, et une chaîne de build front-end déjà pensée pour le développement moderne. Pour une agence qui construit régulièrement des projets neufs plutôt que de reprendre des thèmes existants, ce choix structurant en amont peut se rentabiliser sur la durée.
- Reprise d’un thème existant : Timber s’intègre sans tout casser
- Projet neuf avec une équipe habituée à Laravel : Sage 10 capitalise sur des compétences déjà présentes
- Petite équipe avec un seul développeur PHP généraliste : Timber reste plus accessible
- Volume important de projets similaires à industrialiser : la structure imposée par Sage 10 devient un atout
Notre verdict
Le critère qui tranche le plus souvent n’est pas la qualité du moteur de templates, les deux étant robustes, mais la trajectoire du thème : repartir de zéro ou faire évoluer l’existant. Ce constat, plus organisationnel que technique, mérite d’être posé avant de choisir un camp.
Pour une agence qui gère un parc de thèmes hérités et doit les moderniser progressivement, Timber reste le choix le plus pragmatique. Pour une équipe qui démarre des projets neufs avec une appétence déjà installée pour l’écosystème Laravel, Sage 10 offre une structure plus ambitieuse, à condition d’accepter le coût d’entrée que représente sa chaîne de build imposée.