Portfolio

The applications I designed and built, then my articles, tutorials and talks, mostly for Upsun's developer blog.

Projects

9
Upsun

Meta-Upsun

Upsun's public source of truth: images, runtimes, regions and PHP extensions, served by a versioned API.

A public read-only API that centralises all of the platform's reference data and serves a dynamic validation schema for the Upsun configuration, used by code editors.

  • REST API
  • OpenAPI
  • JSON Schema
  • Scalar
  • GitHub Actions
Read more →
Upsun

Upsun official PHP SDK

The open-source PHP client for the Upsun API: generated from the OpenAPI spec, with a handwritten developer-facing layer.

An open-source SDK covering the whole public Upsun API: low-level code generated from the OpenAPI spec and synced daily, plus a "Tasks" layer designed for developers.

  • PHP 8.1+
  • OpenAPI Generator
  • Mustache
  • PHPUnit
  • GitHub Actions
Read more →
Upsun

Upsun official Node.js SDK

The TypeScript client for the Upsun API, completed and aligned with the PHP SDK.

An SDK born for the Upsun MCP server, with only the bare minimum of the API. I completed it, aligned it with the PHP SDK, and wrote a tool that detects signature divergences between the two.

  • TypeScript
  • Node.js
  • OpenAPI Generator
  • npm
  • GitHub Actions
Read more →
Upsun

AI log-analysis agent

A scheduled, read-only AI agent that reads an application's logs and writes a health report.

An agent running in an Upsun task container, triggered by cron: it reads the logs, has an LLM analyse them through OpenCode, and produces a structured report, with no write access at all.

  • Node.js 24
  • OpenCode
  • LLM (Anthropic, OpenAI, Gemini)
  • Upsun task containers
  • Cron
Read more →
UpsunInternal tool

Blog publishing calendar

Scheduling the technical blog's posts by dragging and dropping their pull requests on a calendar.

A back office showing upcoming posts (GitHub pull requests) on a calendar: they are scheduled by drag and drop and go live on the planned date with no one on duty. Three weeks of visibility, and a blog opened to other teams.

  • TypeScript
  • Vite 7
  • GitHub API
  • Cron
Read more →
Personal project

VNTP Facturation

Simple, compliant invoicing for freelancers, e-invoicing included.

An invoicing SaaS for French micro-entrepreneurs and small companies: quotes, invoices, tax certificates, social-contribution and VAT tracking, and EN 16931 e-invoices issued through a certified platform.

  • PHP 8.5
  • Symfony 8
  • Doctrine ORM 3
  • PostgreSQL
  • Symfony Messenger
Read more →
Personal project

VNTP Location

Rental management for landlords, furnished lets included, with a tenant space.

A rental management app: leases, rent and receipts, automatic rent review, charges and adjustments, AI reading of building service-charge calls, furnished-let tax summary and tenant space.

  • PHP 8.5
  • Symfony 8
  • Doctrine ORM 3
  • PostgreSQL
  • Claude API
Read more →
Client

Pilat'1: the association's website and app

A Pilates association's public website, its back office and the coaches' mobile app.

Public website, registrations and online payment through HelloAsso, a back office for the board and an installable app for coaches: attendance, messages to students, notifications.

  • PHP
  • Symfony 8
  • EasyAdmin 5
  • Tailwind CSS
  • PostgreSQL
Read more →
Personal project

vntp.fr: this website

A static site generated from a headless CMS, republished within seconds on every change.

My personal site, blog and portfolio: bilingual content in Directus, static pages generated by Astro, instant zero-downtime regeneration on every save.

  • Astro
  • Directus 11
  • Node.js
  • PostgreSQL
  • Docker
Read more →

Publications and talks

2026

9
tutorials· Upsun Developer

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.

tutorials· Upsun Developer

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.

ai· Upsun Developer

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.

ai· Upsun Developer

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.

hands-on· Upsun Developer

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.

core-concepts· Upsun Developer

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.

how-tos· Upsun Developer

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.

how-it-works· Upsun Developer

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.

releases· Upsun Developer

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
releases· Upsun Developer

PHP 8.5 is here!

What if the next PHP revolution made no noise but completely transformed your developer daily life?

releases· Upsun Developer

Introducing the Upsun PHP SDK

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

how-it-works· Upsun Developer

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.

how-tos· Upsun Developer

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.

featured· Upsun Developer

How n8n saved our Advocacy impact on Social Media!

Learn how n8n workflows improve internal communication and amplify our Advocacy social media impact.

hands-on· Upsun Developer

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.

featured· Upsun Developer

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...

how-tos· Upsun Developer

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!

featured· Upsun Developer

Deploy ClamAV on Upsun, on service mode.

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

hands-on· Upsun Developer

Up(sun) and ready with GitHub release assets installation

Discover how to install any GitHub release asset you want in your Upsun project.

tutorials· Upsun Developer

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.

featured· Upsun Developer

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/)!

how-tos· Upsun Developer

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

13
Talk· SymfonyCon Vienna 2024

Flawless 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.

how-tos· Upsun Developer

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),

how-tos· Upsun Developer

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-tos· Upsun Developer

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-tos· Upsun blog

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.

tutorials· Upsun Developer

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.

how-tos· DEV Community (Upsun)

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.

tutorials· Upsun blog

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-tos· Upsun blog

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.

how-tos· Upsun blog

Optimize resource allocation and services for Express apps

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

tutorials· Upsun blog

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.

tutorials· Upsun blog

How to host multiple-application projects

Learn how to host and configure multiple application projects on Upsun with this step-by-step guide.

tutorials· Upsun blog

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

2

2015

1