Skip to content
la.vision
FR EN
BULLETIN · LOG MMXXVI GENÈVE · 46.20°N UTC ——:——:—— REAL-TIME

// journal · log

Notes from the studio.

Decisions, incidents, migrations — published in the open, as they happen. Method replaces compliance.

  1. 042 After the Vercel breach: what I changed essay · live
  2. 041 Why I'm leaving GitHub, slowly note · 28.03.26
  3. 040 NixOS migration, I: the flake study · 12.03.26
  4. 039 The real cost of a dependency note · 27.02.26
  5. 038 Why TypeGPU study · 14.02.26
ENTRY 042 — LIVE · FRENCH day 11 · 9 min

Après la brèche Vercel : ce que j'ai changé dans mes recommandations d'hébergement

Un incident n'est pas une raison. Il est l'occasion de revoir une longue chaîne de décisions que j'avais cessé d'interroger — et de publier ce que j'en conclus, avec l'inconfort que cela suppose.

Le 9 avril, une dépendance de build a exfiltré les variables d'environnement de plusieurs projets hébergés sur une plateforme que je recommandais sans réserve. Aucun de mes clients n'était concerné. La chance n'est pas une architecture.

J'ai longtemps défendu l'idée qu'externaliser le déploiement était un gain net : moins de surface à maintenir, plus de temps pour le travail visible. C'est vrai — jusqu'au jour où la surface que vous ne maintenez pas devient la surface par laquelle vous êtes atteint.

Ce qu'on achète vraiment

On croit acheter de la simplicité. On achète surtout une dépendance dont on ne mesure le prix qu'au moment de partir — et ce prix n'est pas uniforme. Il est faible si l'on est resté sur des primitives standards ; élevé si l'on a épousé les abstractions propriétaires.

La question n'est donc pas « cloud ou pas cloud ». Elle est : combien de mes décisions sont réversibles ?

La souveraineté n'est pas l'autarcie. C'est la réversibilité.

la.vision · manifeste §1

Concrètement, j'héberge désormais le rendu et les données sur une infrastructure que je peux décrire en entier, en quelques lignes, et reproduire ailleurs en une commande. Le reverse-proxy tient dans un fichier :

Caddyfile
# un domaine, TLS automatique, rien de plus
la.vision {
  encode zstd gzip
  root * /srv/la-vision/public
  file_server
  reverse_proxy /api/* localhost:3000
}

Je ne sais pas encore si cette position tient à l'échelle d'une équipe. Pour une personne, elle tient. Je publierai la suite quand je l'aurai vécue — pas avant.

— jg. · Genève · 46.20°N · CC BY-NC 4.0