Notes
Short thoughts, updates, and quick posts. (1581 total)
-
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.
-
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). -
I now display AI usage (or not) on every post I create on my blog.
I forked
indiekit-endpoint-postsand 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.
-
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.
-
Just shipped two new features for my GitHub page: a searchable starred repos browser that syncs all 5k+ stars via GraphQL and caches them in MongoDB, with filtering by language, topic, and full-text search — and GitHub Lists support with tabs, sorting, and filtering. Finally easy to find that one repo you starred months ago.
-
So I created this code to reorganize my 5,000 GitHub starred repositories.
It took Claude Code a little over two hours to sort everything into structured categories and lists, all while respecting GitHub API rate limits.
Before that, I had a “To Sort” list with more than 600 unsorted repositories, plus dozens of manually created lists. Every time I starred a repository, I tried to place it in the most relevant list. But over time, the diversity and depth of my starred repositories outgrew the structure I had manually built. My 32 lists simply weren’t granular enough anymore.
So I decided to scrap all manually created lists and start fresh.
With Claude, I analyzed the actual data behind my starred repositories and defined a new set of list categories based on real distribution patterns instead of intuition. Once the taxonomy was defined, the automated classification process began. A bit more than two hours later, everything was sorted.
Now, when I star a new repository, I finally have a list structure that reflects the real diversity of what I collect. I can sort new stars manually from GitHub (mobile or desktop), and if needed, I can always rerun the stargazer Python script to reclassify and effectively “fact-check” existing classifications.
Since this workflow proved so effective, I decided to build a dedicated search page on my site to explore all 5,000 repositories more easily.
Here is the result:
-
Testing my new Micropub MCP client — posting from the terminal via Claude Code, with automatic syndication and OG image generation.
-
Heh! this is fun !
-
Yay! my cloudron package for #funkwhale was adopted by Cloudron team, its now officially in the cloudron app store ! Unstable for now but ready for testing ! I’m going to think about how to migrate buzzworkers.com to the official funkwhale package !
-
I can now search across all my 5k Github starred repo’s from my own site :) I still need to finetune the search feature and perhaps add filtering based on my Github lists but it’s usable for now.
-
Working on a new feature for my GitHub activity page — a searchable starred repositories browser. The idea is to visualize all my GitHub stars with filtering by language, topic, and description, making it easy to find that one repo you starred months ago. Building it as part of the @rmdes/indiekit-endpoint-github plugin.
-
Exploring the idea of self-hosting a Bluesky PDS alongside my Indiekit instance — turning it into a dual-protocol server that federates over both ActivityPub and AT Protocol simultaneously. Inspired by Wafrn’s approach, adapted to Indiekit’s plugin architecture and Cloudron deployment. The goal: own your AT Protocol identity and data on your own infrastructure, not on bsky.social. Plan drafted, implementation to follow.
-
Damn, 5K github starred repo’s sorted in less than 3h How
-
Syndication Readiness Gate for Indiekit
Fixed a race condition where posts were syndicated to Bluesky and Mastodon before Eleventy finished building them — causing 404 links and wrong OG images that platforms cache permanently.
The fix adds a two-layer check: before syndicating each post, the system now verifies via HTTP HEAD that both the post URL and its /og/
.png image return 200. If either isn’t ready yet, the post is skipped and retried on the next 2-minute cycle. A bash-level safety net also skips the entire syndication cycle if the site itself isn’t responding.
No more “your link is broken” replies — posts only reach social platforms once they’re fully built and live.
-
Interesting, I just noticed Bluesky has now a “Live Stream” integration with Twitch, Streamplace and Bluecast.
You can add your link and it show up as “live” when live. Mastodon could do that with Peertube or Loop
-
41 free tools to understand what’s really happening in your Claude Code sessions.
Zero dependencies · Runs entirely local · Free
-
Reorganizing 3k GitHub starred repo’s via GH cli
-
Hegseth is making a spectacle of punishing Anthropic—just like ICE made a spectacle of videotaping each immigrant deportation, and just like the CCP made a spectacle of disappearing Jack Ma for criticizing Chinese regulators.