If you see this post, please interact with it with a reply or like, I will then be able to retrieve your interaction to my blog/AP fedify instance and then I will test replying to your reply to demo threaded reply backfilled to my site
You can also comment using IndieAuth/indieweb if your site support it !

🔗 https://rmendes.net/notes/2026/03/15/fbb7d

A Node on the Web

✎ Note 15 March 2026 Test Fedify Indiekit If you see this post, please interact with it with a reply or like, I will then be able to retrieve your interaction to my blog/AP fedify instance and t...

A Node on the Web

Funny how building an ActivityPub plugin for #indiekit fully based on Fedify, migrating my Mastodon account to my own server @[email protected] and building my own UI to consume AP content from the #Fediverse made me use even more than before.

This post is simultaneously a blog post, an #ActivityPub object in the inbox of my followers and a syndicated post to Bluesky.

Next in line? getting inspired by #Wafrn and turn this indiekit/AP instance into my own #Bluesky Pds.

🔗 https://rmendes.net/notes/2026/03/12/a67cd

A Node on the Web

✎ Note 12 March 2026 Indiekit ActivityPub ATproto Funny how building an ActivityPub plugin for #indiekit fully based on Fedify, migrating my Mastodon account to my own server @[email protected] a...

A Node on the Web

Two Microsub reader updates this week:

Feed type indicators — each feed now shows its type (RSS, Atom, JSON Feed, h-feed) as a badge, and subscribing to a feed that already exists in another channel returns a clear error instead of silently creating a duplicate. URL normalization catches trailing slash and http/https variants.

Mark source as read — the mark-as-read button is now a split button. The main action marks a single item, but a dropdown caret reveals “Mark {source name} as read” — which bulk-marks all items from that feed in one click. Cards animate out smoothly. Handy when a noisy feed floods a channel and you want to clear it without losing items from other sources.

Both features work in the channel view and the unified timeline view. https://github.com/rmdes/indiekit-endpoint-microsub

🔗 https://rmendes.net/notes/2026/03/11/2e639

GitHub - rmdes/indiekit-endpoint-microsub: Microsub endpoint for Indiekit

Microsub endpoint for Indiekit. Contribute to rmdes/indiekit-endpoint-microsub development by creating an account on GitHub.

GitHub

Dev Log: Hunting OOM kills, fixing CLS, and making Eleventy builds 10x faster

https://rmendes.net/articles/2026/03/10/dev-log-hunting-oom-kills

Dev Log: Hunting OOM kills, fixing CLS, and making Eleventy builds 10x faster

Dev Log: Hunting OOM kills, fixing CLS, and making Eleventy builds 10x faster 10 March 2026 indieweb indiekit performance coding eleventy devops Three days of performance work on the Indiekit stack —...

A Node on the Web

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

Changes Summary

  • 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
  • indieauth.js patch added
    • Copied from Cloudron — fixes redirect URI validation that rejected hyphens/dots in paths
    • Added COPY line to docker/indiekit/Dockerfile
  • 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
  • Eleventy submodule updated
    • From f5f77cb to 48160a5 — 131+ commits of fixes including OG batch spawning, a11y audit, PageSpeed optimization, design system compliance
  • –expose-gc added to watcher
    • Enables post-build GC hook in eleventy.config.js and OG batch spawning GC
  • 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
  • Watcher heap increased to 2048 MB
    • Was 1536 MB, now matches Cloudron’s production setting
    • Needed for OG batch spawning during incremental rebuilds

    🔗 https://rmendes.net/notes/2026/03/10/ab5e2

    Release v1.0.0 Beta 27 · getindiekit/indiekit

    💟 Indiekit is supported by its community. This release was sponsored by @sentience and @abhas. Features endpoint-image: add option to specify remote domains for image resizing. Thanks to @eclecti...

    GitHub

    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 impaired people?

    🔗 https://rmendes.net/notes/2026/03/07/8e610

    Ricardo Mendes

    ✎ Note 7 March 2026 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 impaired people? My blog is WCAG 2.1 Level AA c...

    Ricardo Mendes

    Dev Log: 43 commits — design system, accessibility, and 306 bookmarks imported

    https://rmendes.net/articles/2026/03/07/dev-log-43-commits-design

    Dev Log: 43 commits — design system, accessibility, and 306 bookmarks imported

    Dev Log: 43 commits — design system, accessibility, and 306 bookmarks imported 7 March 2026 indieweb indiekit coding accessibility performance micropub A day of polish, performance, and migration clea...

    Ricardo Mendes

    Dev Log: 27 commits across 5 plugins to improve my blog

    https://rmendes.net/articles/2026/03/06/dev-log-27-commits-across

    Dev Log: 27 commits across 5 plugins to improve my blog

    Dev Log: 27 commits across 5 plugins to improve my blog 6 March 2026 indieweb indiekit coding activitypub eleventy A busy day of improvements across the Indiekit ecosystem. Here’s what changed. Eleven...

    Ricardo Mendes

    🎉 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:

  • Homepage
  • CV section
  • Blog section
  • In short, I can manage featured content and page sections without touching the frontend code.

    🔗 https://rmendes.net/notes/2026/03/04/bdeee

    Ricardo Mendes

    4 March 2026 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 automaticall...

    Ricardo Mendes