Custom Drupal development that survives contact with production
Drupal is a formidable tool in the right hands and an expensive liability in the wrong ones. I design and build Drupal 10/11 modules, back offices and architectures that hold up under load, under audit, and under the developers who inherit them.
What I build for you
Custom modules
From business requirement to packaged module: specific logic, complex forms, queue workers, third-party integrations — with tests and documentation.
Editorial back offices
My daily work at France Télévisions: publishing workflows, fine-grained roles and permissions, a contributor experience people do not fight, moderation at scale.
Content architecture
Content types, taxonomies, fields, relations. Clean modelling today is what makes the next three years of changes cheap instead of painful.
APIs & headless
JSON:API, custom endpoints, Drupal as the back office behind a modern front end (Astro, Next, mobile apps) — without giving up the editorial tooling.
Inherited projects
A legacy Drupal site, undocumented and fragile? I audit it, stabilise it, and put the project back on maintainable rails.
Maintenance & evolutions
Security updates, fixes, incremental improvements: a clear monthly retainer for a site that stays healthy instead of drifting.
What you are actually buying
- 12+ years of Drupal, from version 6 to 11 — I have built on, and migrated out of, every era of the CMS.
- Maintainer of 24 modules on drupal.org, including co-maintaining Admin Toolbar, installed on roughly 290,000 sites. My code is public, reviewed and in production far beyond my own clients.
- Demanding media references, including the editorial back offices of France Télévisions, and cultural platforms such as the Isabella Stewart Gardner Museum.
- Acquia Certified Developer, comfortable in industrialised environments — CI/CD, code review, multiple environments, release trains.
- SEO and performance reflexes built into development rather than bolted on after launch.
The shortest way to judge a developer is to read their code. Mine is ondrupal.org, and I write about the hard partson the blog — including the mistakes.