Notes

Short thoughts, updates, and quick posts. (1537 total)

  • USA Trump Israel Iran

    Public statements by Israeli leaders, and reports of biblical rhetoric inside the U.S. military, show how this war is being wrapped in religious language. When states frame bombing campaigns through theology, prophecy, or sacred enemies, they move away from secular democratic accountability and toward a dangerous fusion of militarism, religion, and political power.

  • USA Trump

    When U.S. and Israeli officials or commanders tie war to biblical enemies, divine plans, or sacred destiny, they reveal a political logic closer to religious nationalism than to secular democracy. That fusion of state violence and theology is a hallmark of authoritarian regimes, whatever flag they fly.

  • Indiekit Docker

    Just updated indiekit-deploy (indiekit docker/compose based deployment)

    Changes Summary

    1. Plugin versions aligned (package.core.json + package.full.json)
    Plugin Old New
    syndicator-bluesky 1.0.14 1.0.19
    endpoint-syndicate beta.34 beta.36
    endpoint-microsub 1.0.41 1.0.43
    endpoint-homepage 1.0.19 1.0.22
    endpoint-activitypub 2.2.0 2.8.0
    endpoint-github 1.0.7 1.2.3
    1. indieauth.js patch added
    • Copied from Cloudron — fixes redirect URI validation that rejected hyphens/dots in paths
    • Added COPY line to docker/indiekit/Dockerfile
    1. routes.js patch synced
    • Two-tier rate limiting (session 50/15min, API 1000/15min) instead of single 250/15min
    • Added content negotiation routes for ActivityPub
    1. Eleventy submodule updated
    • From f5f77cb to 48160a5 — 131+ commits of fixes including OG batch spawning, a11y audit, PageSpeed optimization, design system compliance
    1. –expose-gc added to watcher
    • Enables post-build GC hook in eleventy.config.js and OG batch spawning GC
    1. Atomic release swap implemented
    • Builds to /data/site/releases/TIMESTAMP/, atomically swaps symlink at /data/site/current
    • All 3 Caddyfiles updated: root * /data/site → root * /data/site/current
    • First-run migration handles existing flat /data/site volumes
    • Keeps 2 releases for rollback
    1. Watcher heap increased to 2048 MB
    • Was 1536 MB, now matches Cloudron’s production setting
    • Needed for OG batch spawning during incremental rebuilds
  • AI Blogging

    Interesting concept but unless I misunderstood my blog doesn’t fit their mental model, my blog is 99% written by me, a human, and 0.9% of my posts were written with AI assistance, it doesn’t make my blog non-human.


    I also have something most blogs/sites don’t have at all : AI usage transparency per post, visible both on the frontend and via JSON-LD for machines.

    I suspect some sort of AI transparency usage labels are going to become default in the future because in a World of slops site owners will want to differentiate what is human-made and what isn’t, with enough granularity so that AI usage levels are properly understood.

  • ATproto

    cool stuff being created on top of #ATproto https://pckt.blog/

  • AI Claude
  • AI

    A TUI and CLI tool for inspecting Claude Code conversation history and compaction events.

  • indiekit

    My blog is WCAG 2.1 Level AA compliant… in theory. Excuse my ignorance but how do I test it to make sure it works for disabled people?

  • Podcast
  • CEO COVID

    Sad to see Steven Bartlett fall into the conspiracy trap with The Banned Professor, Bret Weinstein relying on RFK to peddle Wuhan lab COVID-19 theories.

  • Android
  • Indiekit Indieweb

    🎉 I’ve added a new Featured section to my homepage.

    I can now mark articles as featured directly from the Indiekit backend, and my Indiekit homepage plugin automatically renders them on the frontend.

    The plugin exposes Eleventy data sources that I can reuse to build different widgets or page sections. This means the backend acts as a small control panel where I can decide what appears where:

    1. Homepage
    2. CV section
    3. Blog section

    In short, I can manage featured content and page sections without touching the frontend code.

  • Web

    J’avais encore oublié à quel point le web est fascinant, il y a des gens qui ont vraiment des idées originales :)

  • Games Hive

    Do not Click #games #hive

  • Indiekit Blogging

    Finally some colors on my blog, I’m getting there : a place where I like to spend time, writing, reading, exploring with just enough features so that it covers my needs.

  • indiekit OSS

    2 months … I went from micro.blog to self hosted indiekit and having my own ActivityPub instance via Fedify Its quite a change that now everything I use in terms of UI/backend can be changed, fine-tuned, adapted at will.

    Now I’m wondering, where does it end?

    well…it ends when the plugins I forked and adapted to my needs are individually reviewed to make sure they abide to upstream coding practice, but also reviewed for code duplication, code security and overall coding best practices.

    Some plugins are easy to handle, others like ActivityPub/Fedify implementation or Microsub are much larger code base that will require careful review.

    And then there is the UI for ActivityPub and Microsub, in both cases I followed existing indiekit approach but I still had to make bold choices that I’m not 100% happy with.

    And then there is the question of contributing back to upstream knowing all the plugins and sometimes improvements or bugfix I handled where assisted and made possible in such short timewm, by Claude Code.

  • Politics Iran Trump Israel

    Well… I have serious doubts about this

    • US decided to attack because Israel was already doing it and the US didn’t want to suffer a “blow” without also blowing things on its own
    • Trump regime is stuck with a “partner” that is as rogue as the Trump regime itself, both are throwing things on the wall to make them stick, for different reasons, but in common they share one thing : survival, political survival.

    Trump is running away from Epstein and Bibi is running away from himself and his war regime, they both need war to exist, they don’t even need a goal or an excuse, they just need war.

    Reality is Trump is playing catchup with Israel and what have started a few days ago will last for generations to come.

  • indieweb micropub AI coding

    Just added AI transparency metadata to my Micropub MCP client. Every post can now carry disclosure fields for how AI was involved in creating it:

    • ai_text_level: 0 (None) → 3 (AI-generated, human reviewed)
    • ai_code_level: 0 (Human-written) → 2 (Primarily AI-generated)
    • ai_tools: which tools were used (e.g. Claude, Copilot)
    • ai_description: free-text usage note

    These fields flow through Micropub as mf2 properties and are stored alongside the post. The idea is simple: be transparent about AI involvement in your content, at the post level.

    micropub_create (MCP)(type: "note", content: "Just added AI transparency metadata to my [Micropub MCP client](https://github.com/rmdes/micropub-mcp). Every post can now carry disclosure fields for how AI was involved in creating it:\n\n- `ai_text_level`: 0 (None) → 3 (AI-generated, human reviewed)\n- `ai_code_level`: 0 (Human-written) → 2 (Primarily AI-generated)\n-`ai_tools`: which tools were used (e.g. Claude, Copilot)\n- `ai_description`: free-text usage note\n\nThese fields flow through Micropub as mf2 properties and are stored alongside the post. The idea is simple: be transparent about AI involvement in your content, at the post level.", category: ["indieweb","micropub","AI","coding"], syndicate_to: ["https://bsky.app/profile/rmendes.net","https://rmendes.net/"], ai_text_level: "2", ai_tools: "Claude", ai_description: "Co-drafted with Claude Code via Micropub MCP client")  
    Post created (202)!
    Posted: https://rmendes.net/notes/2026/03/03/8a851 — syndicated to Bluesky and ActivityPub, with AI metadata set (ai_text_level: 2, ai_tools: Claude).  
    
  • AI

    I now display AI usage (or not) on every post I create on my blog.

    I forked indiekit-endpoint-posts and added metadata properties that I can fill when creating a post. These properties generate their own Frontmatter and display:

    • An AI badge visible even before clicking into the full post view
    • An AI Usage box below the post specifying whether the text or the code was produced with AI assistance or not

    This is aligned with my AI transparency page.


    Current AI Usage Breakdown

    Level Label Posts %
    0 None (human-written) 1,992 99.3%
    1 Editorial assistance 11 0.5%
    2 Co-drafted 2 0.1%
    3 AI-generated 0 0.0%
    Unset 0 0.0%

    99.3% human-written. 13 posts used AI at some level (editorial assistance or co-drafted), and zero were fully AI-generated.

  • activitypub indiekit fediverse coding

    Released v2.4.0 of my ActivityPub plugin — unified the reader and explore processing pipelines into a single shared path. Posts now go through the same enrichment (avatars, media, quotes, hashtags) regardless of whether they come from your home timeline or the explore feed. Also fixed a race condition on the muted users index that could cause startup errors.