Featured

Curated posts pinned as featured. (18 total)

  • RSC : et si le web social n'avait jamais eu besoin d'un nouveau protocole ?

    Depuis vingt ans, chaque tentative de « réinventer » le web social commence par la même étape : inventer un protocole. XMPP, OStatus, ActivityPub, AT Protocol, Nostr. À chaque fois la promesse est la même, à chaque fois le coût d’entrée est le même :...

    Read more →
  • Open-source collaboration in the age of AI

    I am not going to reconstruct the entire disagreement that prompted this post.

    Some of the public exchanges have been deleted. Other parts happened privately or by email. I have no interest in tracing every sentence, assigning blame line by line, or producing a forensic account of who said what. That would only prolong a conflict that has already taken up too much space.

    But people noticed that I removed my participation from the project, and I have started receiving emails from strangers asking what happened. So I want to explain the broader issue, without turning a personal disagreement into public theatre.

    Open-source collaboration does not necessarily become easier because AI makes it easier to inspect code, identify bugs, produce patches, and write detailed issues. In some ways, it becomes considerably harder.

    You can spend time formulating an issue carefully and professionally, only for it to be perceived by the repository owner as a list of orders.

    That owner is, of course, entirely free to reject the contribution. They can close the issue, say that it is outside the project’s scope, explain that it is not on the roadmap, or simply decide that they do not want to pursue it. There are thousands of legitimate ways to govern an open-source project.

    Governance by burnout is not one of them.

    When you use an AI tool to help document a problem, the resulting issue may contain precise examples, references to specific lines, screenshots, reproduction steps, and concrete observations gathered by running the software outside the environment of its original author.

    That can be useful. It can also be overwhelming.

    The problem is that the intention behind such a contribution may not survive the way it is received. You may believe that you are documenting a bug thoroughly. The maintainer may see a wall of text, an unsolicited audit, or an attempt to dictate the project’s direction.

    You can ask questions first. You can soften the language. You can repeatedly state that the maintainer is free to ignore the suggestion. None of that guarantees collaboration when the other side does not experience the contribution as collaborative.

    Most of my experiences have been different.

    I have submitted issues and pull requests to several projects, including repositories connected to my professional work. Some of those contributions were written with the help of AI—not because I could not be bothered to write them myself, but because the tool already had the context: the code, the logs, the behaviour I had observed, and the steps that exposed the bug.

    When the issue was valid, it was investigated. When the patch fixed a real problem, it was reviewed. Sometimes it was merged directly. Sometimes the maintainer rewrote it to match the project’s architecture, conventions, or preferred way of working.

    That is normal. A contribution is not an instruction. It is material offered to the project.

    For Indiekit, for example, I submitted a skeleton pull request of roughly two thousand lines containing the foundations of a Microsub plugin. It was not something the lead developer could review immediately. It required time and several email exchanges. But the contribution was handled professionally.

    That first pull request opened the way for further work, with the plugin I already use in production gradually being reviewed and reconstructed under the oversight of the person responsible for the project.

    I have seen similar responses in projects such as Dolibarr, Odysseus, and ComfyUI. A suspected bug was investigated. Its existence was corroborated. A fix was discussed or implemented. Everyone using the project could then benefit.

    That is one of the core ideas behind open source.

    This is not an argument that AI is inherently good or bad. It is an argument that collaboration still depends on people who actually want to collaborate.

    A project can publish its code under an open-source licence without being socially open to outside participation. That is entirely legitimate, but it should be understood honestly. Otherwise, openness risks becoming more of a posture than a practice.

    The recent conflict also showed me how easily both sides can misread each other.

    The maintainer indicated that they could not follow or process what I had written because it was too much. I interpreted this as a request for greater clarity and replied with another comment summarizing my previous points, together with screenshots from my implementation.

    I believed I was reducing the burden.

    In reality, the person was angry. They had perceived my earlier issues as orders and felt overwhelmed by my participation as a whole. My attempt to clarify the situation therefore became another contribution to the very problem they were describing.

    I later tried to explain myself privately and apologized. I was also transparent that some of the issues and comments had been written partly, or sometimes almost entirely, with Claude’s assistance.

    Again, this was not because I had randomly asked a model to invent criticisms of somebody else’s project. The tool was helping me work on the implementation. It already held the context of the bugs and limitations I had encountered, so using that context to draft an issue was the most direct workflow.

    But the origin of the text does not erase its effect on the person receiving it.

    Everyone is overwhelmed. Maintainers especially are often expected to write the software, review code, answer questions, manage releases, handle support, moderate discussions, and absorb the emotional reactions of users—all without compensation.

    Adding more explanations, even explanations intended to correct a misunderstanding, can simply produce more pressure.

    My response was therefore to withdraw. I removed my contributions and comments where I could, apologized for the parts for which I could take responsibility, and moved on.

    That was not a protest against my work being rejected. Nobody is required to accept an issue, a patch, an idea, or a contribution. In a world where AI makes bootstrapping increasingly accessible, people can fork a project and take it in another direction. That freedom is essential, and it should not change.

    The issue is not rejection.

    The issue is the growing potential for misunderstanding, misperception, and misjudgment between people working at radically different speeds, with radically different expectations, using tools that can generate more material than any small project is equipped to absorb.

    Over the coming years, situations like this will become common.

    Contributors will have to learn that the ability to identify ten problems does not mean that a maintainer can process ten issues. The ability to generate a detailed analysis does not mean that detail is always helpful. A technically correct contribution can still arrive in a socially destructive form.

    Maintainers, in turn, may need clearer ways to communicate what kind of participation they want, how much they can realistically review, and whether outside contributions are genuinely welcome.

    We are entering largely uncharted territory. The tools are evolving faster than the social practices around them.

    We will need to rediscover some old rules of collaboration and invent new ones: smaller contributions, clearer boundaries, explicit expectations, consent before large interventions, and a better awareness that attention—not code—is often the scarcest resource in an open-source project.

    AI can help us produce more.

    It cannot make us ready to receive more.

    Whoever reads this, I came and go in Peace, I will keep doing my part the way I see fit, but I have definitely learned a lesson here and for that, I’m thankful.

  • L’accord Rossel–IPM pose les fondations d’un affaiblissement durable de la presse locale et régionale en Belgique.

    Ce scénario n’a rien de nouveau. Aux États-Unis, la disparition massive des journaux locaux a précédé l’apparition de véritables déserts informationnels, laissant des territoires entiers sans contre-pouvoir journalistique, sans enquête de proximité et sans surveillance réelle des pouvoirs politiques et économiques. Le résultat est connu : la viralité de la désinformation via les réseaux sociaux, davantage de désinformation, moins de participation démocratique et des institutions locales plus facilement capturées.

    La France suit une trajectoire comparable : concentration croissante des médias, recul du pluralisme, marginalisation des rédactions indépendantes et uniformisation progressive du débat public. Quelques grands propriétaires décident de plus en plus de ce qui mérite d’être visible, discuté ou ignoré. Cette concentration ne suffit pas, à elle seule, à expliquer la montée de l’extrême droite, mais elle contribue à créer un espace médiatique où ses thèmes, ses obsessions et son vocabulaire finissent par devenir omniprésents.

    Pendant ce temps, une caste politique et économique toujours plus étroite conserve l’accès aux plateaux, aux éditoriaux et aux leviers de décision, tandis que le reste de la société devient progressivement invisible.

    Couplée à une répression systématique des mouvements sociaux et une criminalisation constante de toute forme de manifestations, désobéissance civiles, c’est la porte ouverte à une dégénérescence démocratique sans retour.

    La Belgique, une fois encore, semble choisir de reproduire les mauvaises idées déjà testées ailleurs : sacrifier la diversité éditoriale, l’indépendance des rédactions et l’information de proximité au nom de la sacro-sainte rentabilité.

    Mais la presse n’est pas une industrie comme une autre. Son utilité ne se mesure pas uniquement à ses marges, à ses abonnements ou à ses économies d’échelle. Une démocratie saine a besoin de rédactions nombreuses, indépendantes, concurrentes et suffisamment financées pour enquêter, déranger et rendre visibles des réalités que les grands centres de pouvoir préféreraient souvent maintenir dans l’ombre.

    Quand toute la presse quotidienne francophone finit par dépendre du même groupe, le problème n’est pas seulement économique.

    C’est une menace directe contre le pluralisme démocratique.

  • Inbound and outbound RSS

    Most of the talk about RSS is about publishing. A feed is something your site emits: you write a post, and the feed is the machine-readable copy that goes out the door. Almost every blog does this. It is the easy half, and it has been solved for twen...

    Read more →
  • La thermodynamique de la justice

    Je pense qu’il y a quelque chose de profondément humain dans notre besoin d’expliquer les dysfonctionnements par des intentions. Lorsqu’un système échoue, lorsqu’une institution ne répond pas à sa mission, nous cherchons instinctivement un responsabl...

    Read more →
  • The true test of a constitution is not how it functions when everyone plays by the rules. It is how it performs when those in power decide to break them.

    If a constitution cannot stop democratic backsliding, cannot protect journalists, cannot safeguard minorities, cannot prevent the concentration of power in the hands of a leader willing to exploit every loophole, then it has failed its most important purpose.

    A document is not great because it is old. It is not great because generations have mythologized it. It is great only if it can protect freedom when freedom is under attack.

    A constitution that survives only on paper while democracy erodes in practice is not the best constitution on Earth. It is a warning.

  • Building Plume

    I got annoyed. Every time I wanted to bookmark a page or jot down a note, I’d open the Indiekit admin UI in a new tab, paste a URL, and click around. Small friction. But small friction repeats forever. So two days ago I started a brainstorm with Clau...

    Read more →
  • Building NewsDiff: Tracking How News Changes After Publication

    TLDR; What it does : Polls RSS/Atom/JSON feeds, extracts article content, detects word-level changes, shows inline diffs on a web UI, posts to the fediverse (threaded AP bot) and Bluesky, generates diff card images server-side. Stack : SvelteKit + Dr...

    Read more →
  • One day, I would like to meet a Wikipedia enthusiast willing to work on the OKC page and the Spatz page, in exchange for access to a large amount of data (from the already closed belgian/french trials) that could significantly enrich the legal timeline, as well as many facts that are completely unknown to the public.

    Unfortunately, adding content to Wikipedia when it is done under the name “OKCinfo”, our Wikipedia account — which allowed us to demonstrate that the main editor of the OKC page for 17 years was none other than the general secretary of the OKC sect — is far more strictly controlled than when it was the sect itself editing its own page and that of its guru.

    In fact, it is very difficult to find people to collaborate with so that added content is not systematically classified as biased or lacking sources. This is all the more difficult because it is almost impossible to provide “proof” in the Wikipedia sense, since no media outlet follows this case over time. Whether it is Le Monde, Mediapart, or others, no one really cares about this case, either in France or in Belgium.

    As a result, the existing articles are extremely thin, even though we have a large amount of documentation, including original sources coming directly from the sect.

    How can you create properly sourced links on a case that interests almost no one, apart from a handful of journalists — two, in my opinion — who have actually worked seriously on this file?

    Today, the OKC page almost presents the sect as being caught in a legal “turmoil” despite itself, and an entire part of the legal content has been removed or moved to the guru Spatz’s page, as if he were the only person implicated.

    The OKC Wikipedia page does not at all reflect the complexity of the legal and technical reasons that led to the recognition of a form of “irresponsibility” or “influence” affecting the OKC leadership in various rulings, without in any way clearing them — far from it.

    In reality, if the OKC leadership was not convicted, it is not for the reasons presented on the page. If they are “free” today, it is largely because they helped shape, over more than twenty years, the absence of meaningful legal outcomes: by taking advantage of investigative shortcomings, the silence of victims, and the expiration of reasonable time limits. In that sense, OKC, just like Spatz, has shaped the outcome of this case as much as — if not more than — the judges and prosecutors who have handled it over the past forty years.

    But nobody cares.

  • Un jour, j’aimerais rencontrer un·e passionné·e de Wikipedia prêt·e à travailler sur la page OKC et la page Spatz, en échange d’un accès à un grand nombre de données (des procès belges-français aujourd’hui terminé) qui pourraient enrichir considérablement la chronologie juridique, ainsi que de nombreux faits totalement inconnus du public.

    Malheureusement, ajouter du contenu sur Wikipedia lorsque cela est fait sous le nom « OKCinfo », notre compte Wikipedia — qui nous a permis de démontrer que l’éditeur principal de la page OKC pendant 17 ans n’était autre que le secrétaire général de la secte — est bien plus soumis à contrôle que lorsque c’était la secte elle-même qui éditait sa propre page ainsi que celle de son gourou.

    En fait, il est très difficile de trouver des personnes avec qui collaborer afin que le contenu ajouté ne soit pas systématiquement qualifié de biaisé ou insuffisamment sourcé. Ce point est d’autant plus complexe qu’il est quasiment impossible d’apporter des « preuves » au sens de Wikipedia, dans la mesure où aucun média ne s’intéresse à cette affaire sur la durée. Que ce soit Le Monde, Médiapart ou d’autres, le sujet est largement ignoré, en France comme en Belgique.

    Par conséquent, les articles existants sont très maigres, alors même que nous disposons de nombreuses archives, y compris des sources originales émanant directement de la secte.

    Comment établir des liens correctement sourcés sur une affaire qui n’intéresse presque personne, en dehors de quelques journalistes — trois, à ma connaissance — qui ont réellement travaillé sur ce dossier ?

    Aujourd’hui, la page OKC présente presque la secte comme prise dans une « tourmente » juridique malgré elle, et toute une partie des éléments juridiques a été supprimée ou déplacée vers la page du gourou Spatz, comme si il était l’unique personne mise en cause. (totalement faux)

    La page Wikipedia OKC ne reflète absolument pas la complexité des raisons juridiques et techniques ayant conduit à la reconnaissance d’une forme d’« irresponsabilité » ou d’« emprise » concernant la direction d’OKC dans différents jugements, sans pour autant la blanchir — loin de là.

    En réalité, si la direction d’OKC n’a pas été condamnée, ce n’est pas pour les raisons présentées sur la page. Si elle est aujourd’hui « libre », c’est en grande partie parce qu’elle a contribué, pendant plus de vingt ans, à l’absence de résultats juridiques probants : en tirant parti des lacunes de l’instruction, du silence des victimes, ainsi que des délais raisonnables dépassés. En ce sens, l’OKC, tout comme Spatz, a façonné l’issue de cette affaire autant — sinon plus — que les magistrats et procureurs qui s’y sont succédé pendant quarante ans.

    Mais tout le monde s’en fout.

  • Cult Dynamics at the Scale of Rogue Democracies

    I was born and grew up inside an authoritarian Tibetan Buddhist hippie community that slowly revealed itself to be a cult . Why am I telling you this? Because once you have lived inside a coercive system, you begin to recognize patterns that others m...

    Read more →
  • Adding AI Usage Metadata to JSON-LD Structured Data

    Every post on this site carries structured AI transparency metadata — visible both to readers (as a disclosure badge) and to machines (as Schema.org JSON-LD). Here’s how I built it, from the post editor to the structured data output. My AI Transparen...

    Read more →
  • Deep Dive into Wafrn: How One Platform Self-Hosts Both ActivityPub and Bluesky Identities

    The fediverse and Bluesky are often discussed as competing visions of decentralized social media. ActivityPub is a W3C standard implemented by Mastodon, Misskey, Lemmy, and hundreds of other projects. AT Protocol is Bluesky’s foundation — a different...

    Read more →
  • Inside Indiekit: How 30+ Plugins Turn a Node.js Server into a Federated Personal Web Platform

    This post is a guided tour through the architecture of the system that powers this site. It’s built on Indiekit , an open-source Node.js IndieWeb server created by Paul Robert Lloyd . I forked it because I wanted to change fundamental aspects of how...

    Read more →
  • How to Self-Host FeedLand with Docker Compose

    FeedLand is an open-source feed reader and sharing platform created by Dave Winer , the pioneer behind RSS itself. It describes itself as “an ecosystem of feeds, news and people” — a place to subscribe to RSS feeds, organize them, discover what other...

    Read more →
  • Religion, pouvoir et silence : le mythe bouddhiste occidental

    TL;DR : En Occident, le bouddhisme tibétain bénéficie d’une image d’exception morale, perçu comme la “dernière religion pacifique”. Cette idéalisation rend toute critique suspecte et toute parole de victime inconfortable. Pourtant, comme toute tradit...

    Read more →
  • Deploying Your Own IndieWeb Site with Indiekit + Eleventy (Docker Compose based)

    A complete guide to deploying Indiekit on your own server using Docker Compose. By the end of this guide, you’ll have a fully functional IndieWeb blog with automatic HTTPS, Micropub support, syndication to Mastodon and Bluesky, and a static Eleventy-...

    Read more →
  • Deploy Your Own IndieWeb Site on Cloudron with Indiekit

    What You’ll Build By the end of this tutorial, you’ll have: A personal website at your own domain The ability to post from any Micropub client (Quill, Indiepass, iA Writer) Automatic syndication to Mastodon and Bluesky Webmentions showing likes, repl...

    Read more →