{
  "version": "https://jsonfeed.org/version/1.1",
  "title": "A Node on the Web",
  "home_page_url": "https://rmendes.net/",
  "feed_url": "https://rmendes.net/feed.json",
  "hubs": [
    {
      "type": "WebSub",
      "url": "https://websubhub.com/hub"
    }
  ],
  "description": "This site is my personal hub for long-form writing, curated bookmarks, and open-web experiments — where ideas about tech, autonomy, democracy, and digital culture meet.\r\nSince February 2026, this site is also my personal ActivityPub instance, every posts you see on this blog can be fetched from the fediverse.",
  "language": "en",
  "authors": [
    {
      "name": "Ricardo Mendes",
      "url": "https://rmendes.net/"
    }
  ],
  "_textcasting": {
    "version": "1.0",
    "about": "https://textcasting.org/"
  },
  "items": [
      
    {
      "id": "https://rmendes.net/photos/2026/09/08/8ef8c/",
      "url": "https://rmendes.net/photos/2026/09/08/8ef8c/",
      "title": null,
      "content_html": "<p>Il a bien grandi mon p’tit caoutchouc, d’ailleurs je me demande, ça tiens l’hiver dehors?</p>\n",
      "content_text": "Il a bien grandi mon p’tit caoutchouc, d’ailleurs je me demande, ça tiens l’hiver dehors?",
      "date_published": "2026-09-08T18:17:44Z",
      "date_modified": "2026-09-08T18:18:35Z",
      "attachments": [{"url":"https://rmendes.netmedia/photos/2026/09/08/1000034151.png","mime_type":"image/png"}]
    },
    {
      "id": "https://rmendes.net/bookmarks/2026/09/08/oh-on-a-plus-quun/",
      "url": "https://rmendes.net/bookmarks/2026/09/08/oh-on-a-plus-quun/",
      "title": "Oh... On a plus qu'un seul avion pour le Roi et les Ministres, mais quel pays de dingue tsé!",
      "content_html": "<p>Lire ça en 2026 et se dire que de fait Jancovici a radicalement totalement raison… On est pas prêt du tout !</p>\n",
      "content_text": "Lire ça en 2026 et se dire que de fait Jancovici a radicalement totalement raison… On est pas prêt du tout !",
      "date_published": "2026-09-08T17:30:05Z",
      "date_modified": "2026-09-08T17:30:55Z"
    },
    {
      "id": "https://rmendes.net/bookmarks/2026/09/08/jaime-bien-le-terme-peut/",
      "url": "https://rmendes.net/bookmarks/2026/09/08/jaime-bien-le-terme-peut/",
      "title": "J'aime bien le terme \"peut-être\" dans leur titre.",
      "content_html": "<p>Peut-être… Qu’on est débile surtout oui!</p>\n",
      "content_text": "Peut-être… Qu’on est débile surtout oui!",
      "date_published": "2026-09-08T10:48:00Z",
      "date_modified": "2026-09-08T10:48:43Z"
    },
    {
      "id": "https://rmendes.net/notes/2026/09/06/14c47/",
      "url": "https://rmendes.net/notes/2026/09/06/14c47/",
      "title": null,
      "content_html": "<p>Just found an issue with the <a href=\"https://bsky.app/profile/rmendes.net/feed/aaae7x6v75yog\">skyfleet</a>\nit was producing duplicates on 6 or 7 accounts of the fleet.</p>\n<p>the reason ? I had not fully decommissioned the old docker deployment, so when I restarted the VM, the systemd service did its job and restarted part of the fleet, this created a situation in which the fleet plus individual duplicates containers for some account were running at the same time, hence creating duplicates.</p>\n<p>It’s now solved !</p>\n",
      "content_text": "Just found an issue with the skyfleet it was producing duplicates on 6 or 7 accounts of the fleet. the reason ? I had not fully decommissioned the old docker deployment, so when I restarted the VM, the systemd service did its job and restarted part of the fleet, this created a situation in which the fleet plus individual duplicates containers for some account were running at the same time, hence creating duplicates. It’s now solved !",
      "date_published": "2026-09-06T12:38:29Z",
      "date_modified": "2026-09-06T12:39:17Z"
    },
    {
      "id": "https://rmendes.net/replies/2026/09/06/06da2/",
      "url": "https://rmendes.net/replies/2026/09/06/06da2/",
      "title": null,
      "content_html": "<p>Testing webmentions between two indiekit deployments</p>\n",
      "content_text": "Testing webmentions between two indiekit deployments",
      "date_published": "2026-09-06T12:25:09Z",
      "date_modified": "2026-09-06T12:25:50Z"
    },
    {
      "id": "https://rmendes.net/notes/2026/09/06/eacb5/",
      "url": "https://rmendes.net/notes/2026/09/06/eacb5/",
      "title": null,
      "content_html": "<p>Just updated the <a href=\"https://rmendes.net/categories/indiekit/\" class=\"p-category hashtag\">#indiekit</a> demo site <a href=\"https://indiekit-demo.rmendes.net/\">https://indiekit-demo.rmendes.net</a></p>\n<ul>\n<li>Github activity now appears as Articles</li>\n<li>Github PRs, Issues, Discussions display properly on the widget</li>\n</ul>\n<p>The post feature from github is powered by N8N:\n<code>- Github API --&gt; RSS --&gt; indiekit-endpoint-rss --&gt; Micropub -&gt; Indiekit post</code></p>\n",
      "content_text": "Just updated the #indiekit demo site https://indiekit-demo.rmendes.net Github activity now appears as Articles Github PRs, Issues, Discussions display properly on the widget The post feature from github is powered by N8N: - Github API --> RSS --> indiekit-endpoint-rss --> Micropub -> Indiekit post",
      "date_published": "2026-09-06T11:33:13Z",
      "date_modified": "2026-09-06T11:33:52Z"
    },
    {
      "id": "https://rmendes.net/notes/2026/09/06/d1fa7/",
      "url": "https://rmendes.net/notes/2026/09/06/d1fa7/",
      "title": null,
      "content_html": "<p>Mais quel <a href=\"https://stowaway.live/\">drôle</a> d’idée ☀️\n<a href=\"https://rmendes.net/categories/avions/\" class=\"p-category hashtag\">#avions</a> <a href=\"https://rmendes.net/categories/bruxelles/\" class=\"p-category hashtag\">#bruxelles</a></p>\n",
      "content_text": "Mais quel drôle d’idée ☀️ #avions #bruxelles",
      "date_published": "2026-09-06T10:25:32Z",
      "date_modified": "2026-09-06T10:26:13Z"
    },
    {
      "id": "https://rmendes.net/likes/2026/09/05/39f66/",
      "url": "https://rmendes.net/likes/2026/09/05/39f66/",
      "title": null,
      "content_html": "",
      "content_text": "",
      "date_published": "2026-09-05T09:00:44Z",
      "date_modified": "2026-09-05T09:01:23Z"
    },
    {
      "id": "https://rmendes.net/notes/2026/09/04/0f910/",
      "url": "https://rmendes.net/notes/2026/09/04/0f910/",
      "title": null,
      "content_html": "<p>Rejoins le mouvement de la seconde main et découvre des milliers de livres à des prix défiants toutes concurrence 📚😁 <a href=\"https://bookvillage.app/\">https://bookvillage.app</a></p>\n",
      "content_text": "Rejoins le mouvement de la seconde main et découvre des milliers de livres à des prix défiants toutes concurrence 📚😁 https://bookvillage.app",
      "date_published": "2026-09-04T19:42:36Z",
      "date_modified": "2026-09-04T19:46:32Z"
    },
    {
      "id": "https://rmendes.net/notes/2026/09/02/155da/",
      "url": "https://rmendes.net/notes/2026/09/02/155da/",
      "title": null,
      "content_html": "<p>Autistici/Inventati (A/I), is an Italian collective that has been providing digital infrastructure – email, hosting, mailing lists, chat, videoconferencing, streaming, and services related to privacy and anonymity – to movements and activists since 2001.</p>\n<p>On August 26, Washington designated it as a Specially Designated Global Terrorist (SDGT), alleging that it has provided financial, material or technological support to terrorism and to organizations already subjected to sanctions.</p>\n<p><a href=\"https://www.inventati.org/campaign/press\">Read more</a></p>\n<p>Meanwhile the global far-right/neofascist militias are freely organizing and building the digital infrastructure to be the armed wing of democratically elected authoritarian regimes sponsored by nihilistic billionaires.</p>\n",
      "content_text": "Autistici/Inventati (A/I), is an Italian collective that has been providing digital infrastructure – email, hosting, mailing lists, chat, videoconferencing, streaming, and services related to privacy and anonymity – to movements and activists since 2001. On August 26, Washington designated it as a Specially Designated Global Terrorist (SDGT), alleging that it has provided financial, material or technological support to terrorism and to organizations already subjected to sanctions. Read more Meanwhile the global far-right/neofascist militias are freely organizing and building the digital infrastructure to be the armed wing of democratically elected authoritarian regimes sponsored by nihilistic billionaires.",
      "date_published": "2026-09-02T18:41:47Z",
      "date_modified": "2026-09-02T18:42:34Z"
    },
    {
      "id": "https://rmendes.net/notes/2026/09/02/4414d/",
      "url": "https://rmendes.net/notes/2026/09/02/4414d/",
      "title": null,
      "content_html": "<p>Testing if my double-post <a href=\"https://rmendes.net/categories/bluesky/\" class=\"p-category hashtag\">#bluesky</a> bug is solved ?</p>\n",
      "content_text": "Testing if my double-post #bluesky bug is solved ?",
      "date_published": "2026-09-02T16:55:44Z",
      "date_modified": "2026-09-02T16:56:19Z"
    },
    {
      "id": "https://rmendes.net/notes/2026/09/02/b77fd/",
      "url": "https://rmendes.net/notes/2026/09/02/b77fd/",
      "title": null,
      "content_html": "<p>What are the difference between my indiekit-syndicator-bluesky fork and upstream core package ?</p>\n<p>@rmdes/indiekit-syndicator-bluesky was cut from @indiekit/syndicator-bluesky around February 2026 and has since roughly doubled in size — about 1,050 lines against upstream’s 620 — while gaining no upstream commits back.</p>\n<blockquote>\n<p>Upstream remains a deliberately minimal syndicator: it posts notes and photos, natively likes and reposts Bluesky URLs, and silently declines anything else, returning undefined for likes or reposts of non-Bluesky links.</p>\n</blockquote>\n<p>The fork’s entire reason for existing is that last case: it turns external likes, reposts, and bookmarks into real Bluesky posts carrying an Open Graph link card, fetching the card metadata itself with jsdom and synthesising an SVG-to-PNG thumbnail through sharp when the target page has no OG image.</p>\n<p>On top of that it adds reply threading (in-reply-to → resolveReplyRef(), which upstream has no equivalent for), quote-post and recordWithMedia embeds, manual link facets so anchor text in HTML content stays clickable, and an own-domain-aware URL extractor that decides whether the OG card should show an external link or the post’s own permalink.</p>\n<p>Upstream, meanwhile, has not stood still: it added a includeCategories option that renders JF2 categories as trailing hashtags, moved to @atproto/api 0.20 / sharp 0.35 / html-to-text 10 and Node ≥ 24 — none of which the fork has picked up, and it still pins @atproto/api ^0.19.3.</p>\n<p>The one place the two actively disagree rather than merely differ is text truncation: upstream delegates to the brevity package for permashortlink-aware shortening, whereas the fork dropped that dependency and hand-rolls a 300-character slice. The fork also dropped upstream’s three test files and the plugin icon asset, so it carries the larger surface area with none of the automated coverage.</p>\n<blockquote>\n<p>Very soon some of these features will be ported to upstream core package, this is a work in progress.</p>\n</blockquote>\n",
      "content_text": "What are the difference between my indiekit-syndicator-bluesky fork and upstream core package ? @rmdes/indiekit-syndicator-bluesky was cut from @indiekit/syndicator-bluesky around February 2026 and has since roughly doubled in size — about 1,050 lines against upstream’s 620 — while gaining no upstream commits back. Upstream remains a deliberately minimal syndicator: it posts notes and photos, natively likes and reposts Bluesky URLs, and silently declines anything else, returning undefined for likes or reposts of non-Bluesky links. The fork’s entire reason for existing is that last case: it turns external likes, reposts, and bookmarks into real Bluesky posts carrying an Open Graph link card, fetching the card metadata itself with jsdom and synthesising an SVG-to-PNG thumbnail through sharp when the target page has no OG image. On top of that it adds reply threading (in-reply-to → resolveReplyRef(), which upstream has no equivalent for), quote-post and recordWithMedia embeds, manual link facets so anchor text in HTML content stays clickable, and an own-domain-aware URL extractor that decides whether the OG card should show an external link or the post’s own permalink. Upstream, meanwhile, has not stood still: it added a includeCategories option that renders JF2 categories as trailing hashtags, moved to @atproto/api 0.20 / sharp 0.35 / html-to-text 10 and Node ≥ 24 — none of which the fork has picked up, and it still pins @atproto/api ^0.19.3. The one place the two actively disagree rather than merely differ is text truncation: upstream delegates to the brevity package for permashortlink-aware shortening, whereas the fork dropped that dependency and hand-rolls a 300-character slice. The fork also dropped upstream’s three test files and the plugin icon asset, so it carries the larger surface area with none of the automated coverage. Very soon some of these features will be ported to upstream core package, this is a work in progress.",
      "date_published": "2026-09-02T15:42:25Z",
      "date_modified": "2026-09-02T15:44:45Z"
    },
    {
      "id": "https://rmendes.net/notes/2026/09/02/74759/",
      "url": "https://rmendes.net/notes/2026/09/02/74759/",
      "title": null,
      "content_html": "<p>I have been self-hosting RSS readers (tt-rss, freshrss, miniflux, etc) for over a decade now, after having tried and used most of the cloud hosted RSS reader such as google reader, NetNewsWire, Inoreader, Feedme etc… but its only when I added a Microsub plugin to my indiekit server that things really got interesting, I can now consume my favorite RSS feeds directly from where I blog, this means, likes, repost, bookmarks or simply writing a note against an item I just read is one click away, from the same UI.</p>\n<p>My microsub implementation use channels to segment different RSS feeds, I can import/export OPML, mark “<a href=\"https://rmendes.net/readlater/\">read it later</a>” if its something I want to return to later, the UI is a bit clunky but it works and its able to consume any type of feeds, RSS, Atom, JSONfeed or even pure indieweb h-feed, it has auto discovery built-in so adding a new source is really smooth.</p>\n<p>This plugin is being ported to indiekit origin, we are at PR 1 over 7 to come !</p>\n",
      "content_text": "I have been self-hosting RSS readers (tt-rss, freshrss, miniflux, etc) for over a decade now, after having tried and used most of the cloud hosted RSS reader such as google reader, NetNewsWire, Inoreader, Feedme etc… but its only when I added a Microsub plugin to my indiekit server that things really got interesting, I can now consume my favorite RSS feeds directly from where I blog, this means, likes, repost, bookmarks or simply writing a note against an item I just read is one click away, from the same UI. My microsub implementation use channels to segment different RSS feeds, I can import/export OPML, mark “ read it later ” if its something I want to return to later, the UI is a bit clunky but it works and its able to consume any type of feeds, RSS, Atom, JSONfeed or even pure indieweb h-feed, it has auto discovery built-in so adding a new source is really smooth. This plugin is being ported to indiekit origin, we are at PR 1 over 7 to come !",
      "date_published": "2026-09-02T09:19:35Z",
      "date_modified": "2026-09-02T09:20:18Z"
    },
    {
      "id": "https://rmendes.net/notes/2026/09/02/ec04b/",
      "url": "https://rmendes.net/notes/2026/09/02/ec04b/",
      "title": null,
      "content_html": "<p>Reading : X Kills Nitter And Xcancel, The Last Ways To Read Tweets Without Elon <a href=\"https://www.techdirt.com/2026/09/01/x-kills-nitter-and-xcancel-the-last-ways-to-read-tweets-without-elon-watching/\">Watching</a></p>\n<blockquote>\n<p>X’s transformation from a kind of open decentralized communications protocol to a closed bullshit delivery mechanism is <a href=\"https://www.liberalism.org/p/enshittification-despotification-and-the-open-internet\">symptomatic of many of the things going wrong in the world today</a>, from the enshittification of all sorts of products and services, to the rise of authoritarianism around the globe.</p>\n</blockquote>\n",
      "content_text": "Reading : X Kills Nitter And Xcancel, The Last Ways To Read Tweets Without Elon Watching X’s transformation from a kind of open decentralized communications protocol to a closed bullshit delivery mechanism is symptomatic of many of the things going wrong in the world today , from the enshittification of all sorts of products and services, to the rise of authoritarianism around the globe.",
      "date_published": "2026-09-02T09:09:59Z",
      "date_modified": "2026-09-02T09:13:28Z"
    },
    {
      "id": "https://rmendes.net/notes/2026/09/01/b89ea/",
      "url": "https://rmendes.net/notes/2026/09/01/b89ea/",
      "title": null,
      "content_html": "<blockquote>\n<p>Pro tip: use reading-mode on Firefox or Vivaldi and then use built-in translation, resulting in full story, no ads.</p>\n</blockquote>\n<p>TLDR;</p>\n<p>One of Mullvad’s two founders/owners, Daniel Berntsson, has personally spent more than SEK 20 million acquiring property around a libertarian intentional community whose core network has significant documented overlap with Sweden’s far right, including Det Fria Sverige and former neo-Nazi activists.</p>\n<p>He has longstanding personal ties to the people running it, is a shareholder in the company owning its communal building, and confirms that he deliberately finances libertarian community-building projects.</p>\n<p>Separately, he gave SEK 5 million to a political party campaigning for large-scale remigration.</p>\n<p>More <a href=\"https://www.flamman.se/hogerrorelse-bygger-koloni-pa-landet-sponsras-av-techmiljonar/\">here</a></p>\n",
      "content_text": "Pro tip: use reading-mode on Firefox or Vivaldi and then use built-in translation, resulting in full story, no ads. TLDR; One of Mullvad’s two founders/owners, Daniel Berntsson, has personally spent more than SEK 20 million acquiring property around a libertarian intentional community whose core network has significant documented overlap with Sweden’s far right, including Det Fria Sverige and former neo-Nazi activists. He has longstanding personal ties to the people running it, is a shareholder in the company owning its communal building, and confirms that he deliberately finances libertarian community-building projects. Separately, he gave SEK 5 million to a political party campaigning for large-scale remigration. More here",
      "date_published": "2026-09-01T17:52:38Z",
      "date_modified": "2026-09-01T17:53:31Z"
    },
    {
      "id": "https://rmendes.net/notes/2026/09/01/19669/",
      "url": "https://rmendes.net/notes/2026/09/01/19669/",
      "title": null,
      "content_html": "<p>A small <a href=\"https://rsc.rmdes.be/post/669845e1-f607-4217-90dd-34d32d7e5754\">update</a> about RSC (really simple syndication)</p>\n",
      "content_text": "A small update about RSC (really simple syndication)",
      "date_published": "2026-09-01T17:36:16Z",
      "date_modified": "2026-09-01T17:37:22Z"
    },
      
    {
      "id": "https://rmendes.net/photos/2026/09/01/8815d/",
      "url": "https://rmendes.net/photos/2026/09/01/8815d/",
      "title": null,
      "content_html": "<p>I have been working on a <a href=\"https://rmendes.net/categories/eleventy/\" class=\"p-category hashtag\">#Eleventy</a> 4 theme for <a href=\"https://rmendes.net/categories/indiekit/\" class=\"p-category hashtag\">#Indiekit</a> and yes I was pleasingly surprised to see it work out of the box with the current “eleventy-preset” core indiekit package (its supposed to be Eleventy 3.x.x) My inspiration was onbviously Zach Leatherman own <a href=\"https://www.zachleat.com/web/speedlify2/\">Eleventy 4 theme</a></p>\n",
      "content_text": "I have been working on a #Eleventy 4 theme for #Indiekit and yes I was pleasingly surprised to see it work out of the box with the current “eleventy-preset” core indiekit package (its supposed to be Eleventy 3.x.x) My inspiration was onbviously Zach Leatherman own Eleventy 4 theme",
      "date_published": "2026-09-01T17:34:38Z",
      "date_modified": "2026-09-01T17:35:38Z",
      "attachments": [{"url":"https://rmendes.netmedia/photos/2026/09/01/capture-da-cran-2026-09-01-192953.png","mime_type":"image/png"}]
    },
    {
      "id": "https://rmendes.net/bookmarks/2026/09/01/3ed45/",
      "url": "https://rmendes.net/bookmarks/2026/09/01/3ed45/",
      "title": null,
      "content_html": "<p>Not sure I can run this on a DGX Spark GB10 but 5.2 is already impressive</p>\n",
      "content_text": "Not sure I can run this on a DGX Spark GB10 but 5.2 is already impressive",
      "date_published": "2026-09-01T16:36:07Z",
      "date_modified": "2026-09-01T16:37:10Z"
    },
    {
      "id": "https://rmendes.net/notes/2026/08/30/16a6e/",
      "url": "https://rmendes.net/notes/2026/08/30/16a6e/",
      "title": null,
      "content_html": "<h2 id=\"the-as400-revolution-the-system-is-the-solution\" tabindex=\"-1\"><a class=\"header-anchor\" href=\"https://rmendes.net/notes/2026/08/30/16a6e/#the-as400-revolution-the-system-is-the-solution\">The AS/400 Revolution: “The System is the Solution” 🖥️</a></h2>\n<p>The AS/400 (introduced in 1988) was revolutionary because it was one of the first systems to <strong>integrate the hardware, operating system, and database into a single box</strong> — way before that became a common concept. IBM’s “The System is the Solution” campaign was one of the most successful in computing history, and the platform lasted so long that it was rebranded as <strong>IBM i</strong> in 2008, yet still actively used in thousands of businesses worldwide in the 2020s.</p>\n<p>Even more impressive? <strong>RPG</strong>, which was created in the 1960s, is still in active use today — making it one of the <strong>longest continuously used programming languages</strong> in history. Many companies still rely on RPG programs written 30-40 years ago that continue to run flawlessly on IBM i systems.</p>\n",
      "content_text": "The AS/400 Revolution: “The System is the Solution” 🖥️ The AS/400 (introduced in 1988) was revolutionary because it was one of the first systems to integrate the hardware, operating system, and database into a single box — way before that became a common concept. IBM’s “The System is the Solution” campaign was one of the most successful in computing history, and the platform lasted so long that it was rebranded as IBM i in 2008, yet still actively used in thousands of businesses worldwide in the 2020s. Even more impressive? RPG , which was created in the 1960s, is still in active use today — making it one of the longest continuously used programming languages in history. Many companies still rely on RPG programs written 30-40 years ago that continue to run flawlessly on IBM i systems.",
      "date_published": "2026-08-30T16:18:12Z",
      "date_modified": "2026-08-30T16:19:13Z"
    },
    {
      "id": "https://rmendes.net/articles/2026/08/29/trump-successor-election/",
      "url": "https://rmendes.net/articles/2026/08/29/trump-successor-election/",
      "title": "Trump’s Third Term May Not Need Trump",
      "content_html": "<p>There are at least two obvious ways to imagine Donald Trump trying to remain president after 2028.</p>\n<p>The first is the constitutional loophole: someone close to him — perhaps one of his children — runs for president with Trump as vice president, wins, then resigns. The 22nd Amendment says Trump cannot be elected president a third time; whether that also makes him constitutionally ineligible to become president through succession has never been definitively settled.</p>\n<p>The second is more dramatic: war, perhaps an escalating ground war with Iran, becomes the justification for emergency powers, disruption of the 2028 election and an attempt to remain in office.</p>\n<p>The second scenario is constitutionally much harder. America held elections during the Civil War and two world wars, and Trump’s term ends on January 20, 2029 regardless of whether the country is at war.</p>\n<p>But focusing on those two scenarios may miss the more plausible one.</p>\n<p>Trump doesn’t necessarily need a third term.</p>\n<p>He needs a successor.</p>\n<p>A JD Vance, Marco Rubio, Trump family member or another loyalist could occupy the White House while Trump remains the political center of gravity of the movement. That would be the American version of the Putin-Medvedev arrangement: formal power moves, personal power doesn’t.</p>\n<p>And this is where things become much less predictable.</p>\n<p>Vance may currently look like the obvious heir, but early polling tells us more about name recognition and his position as vice president than about who will actually control MAGA in 2028.</p>\n<p>Trump remains enormously influential in Republican primaries even with national approval around 33%, and his endorsement continues to move Republican races.</p>\n<p>But Trump, the Republican Party and # MAGA are no longer necessarily the same thing.</p>\n<p>Trump spent ten years teaching Republican voters not to trust the Republican establishment. He taught them that Washington politicians are corrupt, institutions cannot be trusted and ordinary Americans must “take their country back.”</p>\n<p>That lesson cannot simply be switched off when Trump needs to appoint an heir.</p>\n<p>Imagine Trump eventually says: JD Vance is my successor.</p>\n<p>The Republican establishment falls in line.</p>\n<p>But part of the grassroots answers:</p>\n<p>No coronations. We choose.</p>\n<p>That wouldn’t necessarily be a revolt against Trumpism. It could be a revolt against Trump himself in the name of Trumpism.</p>\n<p>“We made MAGA.”</p>\n<p>“We are America First.”</p>\n<p>“Trump started the movement, but the movement belongs to us.”</p>\n<p>This is where a succession crisis becomes far more interesting than a conventional Republican primary.</p>\n<p>There could effectively be four competing sources of legitimacy:</p>\n<p>Trump’s chosen heir: “Trump selected me.”</p>\n<p>The Trump family: “We are the people who can actually be trusted with his legacy.”</p>\n<p>The grassroots: “We created this movement and we decide what MAGA means.”</p>\n<p>The old Republican establishment: “The Trump era is over; we need to become a governing conservative party again.”</p>\n<p>The grassroots faction doesn’t need to control the whole Republican electorate to cause enormous damage. Highly motivated primary voters can punish candidates, threaten incumbents, dominate state-level party structures and make support for the “wrong” successor politically dangerous.</p>\n<p>We already see Trump’s endorsement remaining powerful but not absolute: Trump-backed candidates can win decisively, but Republican voters have also defeated Trump-endorsed candidates while still choosing candidates who describe themselves as pro-Trump.</p>\n<p>That distinction matters.</p>\n<p>It means MAGA may already be capable of separating Trump the man from Trumpism as an identity.</p>\n<p>And then comes the linguistic war.</p>\n<p>RINO.</p>\n<p>Establishment.</p>\n<p>Uniparty.</p>\n<p>Traitor.</p>\n<p>America First.</p>\n<p>These labels do more than describe factions. They decide who belongs. A candidate branded “RINO” doesn’t merely have a different policy position; they become illegitimate.</p>\n<p>The most dangerous phrase for Trump’s chosen successor might eventually be something like:</p>\n<p>“Establishment MAGA.”</p>\n<p>At that point, every candidate would be competing to prove that they are more authentically Trumpist than Trump’s own candidate.</p>\n<p>That sounds contradictory, but charismatic movements frequently fracture this way. Once the founder can no longer lead indefinitely, everyone begins fighting over who has the right to interpret what the founder really meant.</p>\n<p>So I would still put the probability of Trump personally exercising presidential power after January 20, 2029 relatively low — perhaps 5–10%.</p>\n<p>A de facto third Trump administration through a loyal successor is considerably more plausible — perhaps 20–35%.</p>\n<p>But I would put the probability of a serious MAGA succession struggle much higher.</p>\n<p>Because the real question approaching 2028 may not be:</p>\n<p>Who does Trump choose?</p>\n<p>It may be:</p>\n<p>Who owns MAGA?</p>\n<p>Trump?</p>\n<p>His family?</p>\n<p>His chosen successor?</p>\n<p>The Republican Party?</p>\n<p>Or the millions of people Trump spent a decade convincing that they, and not the institutions around them, are the real voice of America?</p>\n<p>Trump created a movement based on rebellion against political authority.</p>\n<p>His eventual succession crisis may reveal that this includes rebellion against his own.</p>\n",
      "content_text": "There are at least two obvious ways to imagine Donald Trump trying to remain president after 2028. The first is the constitutional loophole: someone close to him — perhaps one of his children — runs for president with Trump as vice president, wins, then resigns. The 22nd Amendment says Trump cannot be elected president a third time; whether that also makes him constitutionally ineligible to become president through succession has never been definitively settled. The second is more dramatic: war, perhaps an escalating ground war with Iran, becomes the justification for emergency powers, disruption of the 2028 election and an attempt to remain in office. The second scenario is constitutionally much harder. America held elections during the Civil War and two world wars, and Trump’s term ends on January 20, 2029 regardless of whether the country is at war. But focusing on those two scenarios may miss the more plausible one. Trump doesn’t necessarily need a third term. He needs a successor. A JD Vance, Marco Rubio, Trump family member or another loyalist could occupy the White House while Trump remains the political center of gravity of the movement. That would be the American version of the Putin-Medvedev arrangement: formal power moves, personal power doesn’t. And this is where things become much less predictable. Vance may currently look like the obvious heir, but early polling tells us more about name recognition and his position as vice president than about who will actually control MAGA in 2028. Trump remains enormously influential in Republican primaries even with national approval around 33%, and his endorsement continues to move Republican races. But Trump, the Republican Party and # MAGA are no longer necessarily the same thing. Trump spent ten years teaching Republican voters not to trust the Republican establishment. He taught them that Washington politicians are corrupt, institutions cannot be trusted and ordinary Americans must “take their country back.” That lesson cannot simply be switched off when Trump needs to appoint an heir. Imagine Trump eventually says: JD Vance is my successor. The Republican establishment falls in line. But part of the grassroots answers: No coronations. We choose. That wouldn’t necessarily be a revolt against Trumpism. It could be a revolt against Trump himself in the name of Trumpism. “We made MAGA.” “We are America First.” “Trump started the movement, but the movement belongs to us.” This is where a succession crisis becomes far more interesting than a conventional Republican primary. There could effectively be four competing sources of legitimacy: Trump’s chosen heir: “Trump selected me.” The Trump family: “We are the people who can actually be trusted with his legacy.” The grassroots: “We created this movement and we decide what MAGA means.” The old Republican establishment: “The Trump era is over; we need to become a governing conservative party again.” The grassroots faction doesn’t need to control the whole Republican electorate to cause enormous damage. Highly motivated primary voters can punish candidates, threaten incumbents, dominate state-level party structures and make support for the “wrong” successor politically dangerous. We already see Trump’s endorsement remaining powerful but not absolute: Trump-backed candidates can win decisively, but Republican voters have also defeated Trump-endorsed candidates while still choosing candidates who describe themselves as pro-Trump. That distinction matters. It means MAGA may already be capable of separating Trump the man from Trumpism as an identity. And then comes the linguistic war. RINO. Establishment. Uniparty. Traitor. America First. These labels do more than describe factions. They decide who belongs. A candidate branded “RINO” doesn’t merely have a different policy position; they become illegitimate. The most dangerous phrase for Trump’s chosen successor might eventually be something like: “Establishment MAGA.” At that point, every candidate would be competing to prove that they are more authentically Trumpist than Trump’s own candidate. That sounds contradictory, but charismatic movements frequently fracture this way. Once the founder can no longer lead indefinitely, everyone begins fighting over who has the right to interpret what the founder really meant. So I would still put the probability of Trump personally exercising presidential power after January 20, 2029 relatively low — perhaps 5–10%. A de facto third Trump administration through a loyal successor is considerably more plausible — perhaps 20–35%. But I would put the probability of a serious MAGA succession struggle much higher. Because the real question approaching 2028 may not be: Who does Trump choose? It may be: Who owns MAGA? Trump? His family? His chosen successor? The Republican Party? Or the millions of people Trump spent a decade convincing that they, and not the institutions around them, are the real voice of America? Trump created a movement based on rebellion against political authority. His eventual succession crisis may reveal that this includes rebellion against his own.",
      "date_published": "2026-08-29T21:39:11Z",
      "date_modified": "2026-08-29T21:43:36Z"
    }
  ]
}
