Portfolio
Les applications que j'ai conçues et développées, puis mes articles, tutoriels et conférences, notamment pour le blog développeurs d'Upsun.
Réalisations
9Meta-Upsun
La source de vérité publique d'Upsun : images, runtimes, régions et extensions PHP, servis par une API versionnée.
Une API publique en lecture seule qui centralise toutes les données de référence de la plateforme et sert un schéma de validation dynamique de la configuration Upsun, utilisé par les éditeurs de code.
- REST API
- OpenAPI
- JSON Schema
- Scalar
- GitHub Actions
SDK PHP officiel d'Upsun
Le client PHP open source de l'API Upsun : généré depuis la spécification OpenAPI, avec une couche métier écrite à la main.
Un SDK open source qui couvre toute l'API publique d'Upsun : code bas niveau généré depuis la spécification OpenAPI, synchronisé chaque jour, et une couche « Tasks » pensée pour les développeurs.
- PHP 8.1+
- OpenAPI Generator
- Mustache
- PHPUnit
- GitHub Actions
SDK Node.js officiel d'Upsun
Le client TypeScript de l'API Upsun, complété et aligné sur le SDK PHP.
Un SDK né pour le serveur MCP d'Upsun, avec le strict minimum de l'API. Je l'ai complété, puis aligné sur le SDK PHP, et j'ai écrit un outil qui détecte les divergences de signatures entre les deux.
- TypeScript
- Node.js
- OpenAPI Generator
- npm
- GitHub Actions
Agent IA d'analyse de logs
Un agent IA planifié, en lecture seule, qui lit les logs d'une application et écrit un rapport de santé.
Un agent qui tourne dans un « task container » Upsun, déclenché par cron : il lit les logs, les fait analyser par un LLM via OpenCode et produit un rapport structuré, sans aucun droit d'écriture.
- Node.js 24
- OpenCode
- LLM (Anthropic, OpenAI, Gemini)
- Upsun task containers
- Cron
Calendrier de publication du blog
Planifier les articles du blog technique en glissant-déposant leurs pull requests dans un calendrier.
Un back-office qui affiche les articles en préparation (pull requests GitHub) dans un calendrier : on les planifie par glisser-déposer, ils sont publiés à la date prévue sans intervention. Trois semaines de visibilité, et un blog ouvert aux autres équipes.
- TypeScript
- Vite 7
- GitHub API
- Cron
VNTP Facturation
La facturation simple et conforme des indépendants, facture électronique comprise.
Un SaaS de facturation pour auto-entrepreneurs et petites sociétés : devis, factures, attestations fiscales, suivi URSSAF et TVA, et émission de factures électroniques EN 16931 via une plateforme agréée.
- PHP 8.5
- Symfony 8
- Doctrine ORM 3
- PostgreSQL
- Symfony Messenger
VNTP Location
La gestion locative des bailleurs, LMNP compris, avec un espace pour les locataires.
Une application de gestion locative : baux, loyers et quittances, révision IRL automatique, charges et régularisation, lecture des appels de fonds de copropriété par IA, bilan fiscal LMNP et espace locataire.
- PHP 8.5
- Symfony 8
- Doctrine ORM 3
- PostgreSQL
- Claude API
Pilat'1 : site et application de l'association
Le site public d'une association de Pilates, son back-office et l'application mobile des coachs.
Site public, inscriptions et paiement en ligne via HelloAsso, back-office du bureau et application installable pour les coachs : émargement, messages aux élèves, notifications.
- PHP
- Symfony 8
- EasyAdmin 5
- Tailwind CSS
- PostgreSQL
vntp.fr : ce site
Un site statique généré depuis un CMS headless, republié en quelques secondes à chaque modification.
Mon site personnel, blog et portfolio : contenu bilingue dans Directus, pages statiques générées par Astro, regénération instantanée et sans interruption à chaque enregistrement.
- Astro
- Directus 11
- Node.js
- PostgreSQL
- Docker
Publications et conférences
2026
9
Run an AI Log-Analysis Agent in an Upsun Task Container
Reuse the cron-triggers-a-task pattern to run an OpenCode AI agent inside an Upsun task container. The agent reads your cron and application logs, analyzes them, and writes a Markdown health report to the task logs and a temporary file.

Offload Heavy Jobs to Upsun Task Containers, Triggered by Cron
Move long, resource-hungry jobs out of your crons and into on-demand Upsun task containers. Learn how to define a task, authorize your app to trigger it, and fire it from a lightweight cron for database imports or search reindexing.

How to slash OpenCode Token costs by 90% on Upsun
Cut your OpenCode token usage by up to 90% on Upsun with three community plugins: OpenSlimedit, opencode-dcp, and opencode-snip. Step-by-step guide to install and configure them on your existing deployment, with benchmarks, troubleshooting, and best practices.

How to Host OpenCode on Upsun
Deploy an OpenCode AI coding agent on Upsun with a single git push. This tutorial covers configuration, persistent storage, LLM API keys, and remote MCP server integration.
Scale n8n with PostgreSQL and Redis on Upsun
Upgrade your n8n instance from SQLite to PostgreSQL and add Redis caching for better performance, scalability, and reliability. Step-by-step guide for Upsun.

How Meta-Upsun improved Validation Schema and Developer eXperience
The introduction of Meta-Upsun enabled dynamic validation schemas and version enumeration for Upsun services and runtimes, significantly improving developer experience.

Automating Runtime and Service Tracking with Meta Version Updater
Meta is Upsun’s shared reference layer for runtimes, services, regions, and extensions. Learn why we built it, how it works, and how it powers the next generation of Upsun documentation and tooling.

Centralising Upsun Technical References with Meta-Upsun
How Upsun centralised runtime, service, region, and PHP reference data into a single public API to improve consistency, automation, and documentation accuracy.

Announcing the Official Upsun Node.js SDK
Discover how the Upsun Node SDK simplifies API access and speeds up integrations, with clear documentation and modern tooling.
2025
13
PHP 8.5 is here!
What if the next PHP revolution made no noise but completely transformed your developer daily life?

Introducing the Upsun PHP SDK
Discover how the Upsun PHP SDK simplifies API access and speeds up integrations, with clear documentation and modern tooling.

Auto-scaling on Upsun Flex. A deep dive.
Learn how Upsun's autoscaling dynamically adjusts application instances based on CPU usage, ensuring performance during traffic spikes while optimizing costs.

Composer 1 is dead – Upgrade to Composer 2 now
Composer 1 has reached end of life and is no longer available on Upsun and Platform.sh. Learn why it’s no longer possible to rely on Composer 1, what errors you’ll see, and how to safely upgrade your project to Composer 2.

How n8n saved our Advocacy impact on Social Media!
Learn how n8n workflows improve internal communication and amplify our Advocacy social media impact.

NoCode with Upsun: Supercharge Your Automation with Zero Code
Learn how to leverage Upsun to deploy powerful NoCode tools like n8n for workflow automation. Fast setup, secure hosting, and real-world use cases — all without writing code.

Supercharge your workflow with the Upsun VSCode Extension
If you're working on Upsun projects with VSCode, the **Upsun VSCode extension** is an essential tool to enhance your development experience. Learn more...

Making .upsun/config.yaml easier to edit with IDE autocomplete and validation
Boost your productivity and eliminate configuration errors with real-time autocompletion and validation for your .upsun/config.yaml — discover how to enhance your IDE experience in just a few simple steps!

Deploy ClamAV on Upsun, on service mode.
Learn how to deploy ClamAV service on Upsun. This tutorial covers ClamAV integration on service scan mode.

Up(sun) and ready with GitHub release assets installation
Discover how to install any GitHub release asset you want in your Upsun project.

Decouple your Symfony frontend using Next.js
How to decouple your frontend from your backend, using a Symfony project as backend and adding a Next.js application for frontend.

Upsun and Platform.sh Docs are now llms.txt compatible!
We’re thrilled to announce that both [Upsun Documentation](https://docs.upsun.com) and [Platform.sh Documentation](https://docs.platform.sh) are now fully compatible with [llms.txt proposed standard](https://llmstxt.org/)!

Up(sun) and ready with Pandoc
With the recent growth in enthusiasm for AI assistants, you may be looking for how these assistants can provide technical information about your product.
2024
13Flawless collaboration between front and back developers
Live coding with Augustin Delaporte: a Next.js frontend and a Symfony API in 30 minutes, with real-time code review, infrastructure as code and preview environments.

Import multiple RSS Feeds on your Blackfire timeline + extra interfaces
We saw in the [previous episode](/posts/how-tos/blackfire-google-alert-markers) how to automatically add context on your Blackfire timeline from an RSS Feed (Google Alert),

Add context on your Blackfire timeline from a Google Alerts RSS Feed
Observing your application is essential to be able to find what needs (and what does not need) to be optimized.

How to automate load tests with Gatling
When I was on your side of the keyboard, developing cool and funny applications (more or less :D), load tests were (most of the time) executed a few days before going live.

How to spot Upsun infrastructure processes on Blackfire timeline
Learn how to spot markers on Blackfire for all infrastructure processes of your Upsun project with this step-by-step guide.

How to host a multiple-application project on Platform.sh
Learn how to host and configure multiple-application projects on Platform.sh with this step-by-step guide.

Seamless user experience during Upsun deployment
As speed is critical to success, it’s essential to deploy as often as needed, even on Fridays. How to warn your users with a banner when an Upsun infrastructure event (deployment, maintenance) occurs.

How to use FrankenPHP on your Upsun projects
Learn how to use and configure the built-in FrankenPHP image on Upsun with this step-by-step guide.

How to sanitize environment data
Dive into the 5 methods of data sanitization for your preview environments including using environment inheritance, hooks, secure keys, and more.

Optimize resource allocation and services for Express apps
Learn how to optimize your Express application resource allocation and cloud database services on Upsun.

How to host a Symfony Demo application on Upsun
Learn how to use and configure a Symfony Demo project on Upsun with this step-by-step guide.

How to host multiple-application projects
Learn how to host and configure multiple application projects on Upsun with this step-by-step guide.
Getting started with Express on the Upsun PaaS
Follow the steps in this getting started guide to learn how to host your Express projects on the Upsun PaaS as quickly as possible.
2023
2Getting started with Next.js on the Upsun PaaS
Follow the steps in this getting started guide to learn how to host your Next.js projects on the Upsun PaaS as quickly as possible.
Refactoring monolith to multi-app
Stop forking around! How to refactor a monolith to better fit your needs: the Bigfoot Symfony demo, split into several applications.