The Fulcrum ⚒️ ⛓️‍💥 🏴‍☠️

@SymfonyStation@drupal.community
1.1K Followers
442 Following
16.1K Posts
Hey fedi-friends, we have stopped using this account other than to repost from our new home, The Programmer's Fulcrum. Please follow us at @thefulcrum to interact. Languages: EN et FR #fediverse #GravCMS #ghost #WordPress #WriteFreely #OMN #CSS #HTML #noAI
Sitehttps://www.thefulcrum.dev
Drupalhttps://www.drupal.org/u/reuben-walker
Codeberghttps://codeberg.org/reubenwalker
Symfony Connecthttps://connect.symfony.com/profile/mobileatomcode
"If you want to be in the Fediverse without relying on big intances, or if you just want to own your #data & #identity on the network, running your own instance is the way to go.
That is where Mastodon alternatives such as GoToSocial & #snac comes in.
snac (Social Networks Are Crap) is a minimalistic, lightweight #ActivityPub instance…perfect for single user instances or small communities, and it's so light that even a #RaspberryPi can handle it without breaking a sweat."
https://rochacbruno.com/deploy-your-own-fediverse-instance-with-snac.html
Deploy your own Fediverse instance with Snac

If you want to be in the Fediverse without relying on big intances, or if you just want to own your ...

Bruno Rocha
Social media for the blind:
Bluesky, hardly any Alt Text. To understand an image, you must open the post, tap on the image and hope your screen reader can describe it, or spend a minute or so scanning it.
X, hardly any image descriptions. The built-in AI will try to describe the images which is a major improvement, but you need to wait until the screen reader finishes reading all the info about the post.
Mastodon, loads of image descriptions. What a pleasure it is to browse my timeline here.

Federated Replies and Reactions in Madblog

Engage with the Web from plain text files

Madblog is founded on a simple principle: a blog is just a collection of #markdown files in a folder. No databases, no logins, no client-side bloat — just files.

The recently implemented support for both Webmentions and ActivityPub add an extra appeal to this approach: now those text files can federate, they can send mentions to Wordpress blogs or Mastodon accounts, and you can visualize mentions, comments and reactions from other corners of the Web directly under your articles.

But after receiving in the past few days a bunch of reactions on my blog that I couldn't interact with, which forced me to fall back on my standard Fediverse account to send replies and likes, I've decided to take the "everything is a file" philosophy a step further.

Now from #madblog you can also reply to comments and react to posts across the Fediverse - all from plain text files in your content folder.

Replying to Comments

When someone comments on your article from Mastodon or another ActivityPub-compatible services, their message appears on your blog.

Now you can also respond directly from your blog.

Or you can reply to any other post on the Fediverse or mention anyone, without those posts cluttering your blog's front page (I've learned to avoid this fatal design mistake made by e.g. Medium).

How it works

Create a Markdown file under replies/<article-slug>/:

[//]: # (reply-to: https://mastodon.social/@alice/123456789) Thanks for the kind words, Alice! I'm glad the tutorial helped. @alice@mastodon.social

Save the file, and Madblog automatically:

  • Publishes your reply to the Fediverse as a threaded response
  • Notifies Alice on her Mastodon instance
  • Displays the reply on your blog, nested under her original comment

Your reply lives in your content folder. Just like with your articles, you can version replies and reactions on git, synchronize them over SyncThing or Nextcloud Notes, or run some analysis scripts on them that would just operate on text files.

Replying to replies

Conversations can go as deep as you want. Reply to a reply by pointing reply-to at the previous message's URL:

[//]: # (reply-to: https://mastodon.social/@alice/123456790) Great question! I'll write a follow-up post about that. @alice@mastodon.social

The threading is preserved both on your blog and across the Fediverse.

[Example of a nested thread rendered on Madblog]

(I hope that @julian@fietkau.social and @liaizon@social.wake.st won't mind for using a screenshot from their conversation on my blog 🙂)

Remember to mention your mentions

An important implementation note: if you're replying to someone else's ActivityPub post, it's important that you also mention them in the reply, otherwise your reply will be rendered under their comment but they may not be notified.

Usually you don't have to worry about this on Mastodon because the UI will automatically pre-fill the participating accounts in a sub-thread when you hit Reply.

But this is something to keep in mind when your posts are just text files.

Your replies are articles in their own right

Even though anything under replies/ won't appear on your blog's home page, it doesn't mean that it must be rendered just like a humble rectangle in a crowded comments section.

By clicking View full reply you get redirected to a separate page where the reply is rendered as a blog article, and its comments section consists in the sub-tree of the reactions that spawned from that specific reply.

[Example of a Madblog reply rendered as a blog article, with its own sub-thread of reactions]

Liking Posts

Sometimes a reply is too much — you just want to show appreciation. Now you can "like" any post on the Fediverse with a simple metadata header.

Standalone likes

Create a file under replies/ with just a like-of header:

[//]: # (like-of: https://mastodon.social/@bob/987654321)

This publishes a Like activity to the Fediverse. Bob sees the notification, and your blog records the interaction.

Like and comment

Want to like and say something? Combine both:

[//]: # (like-of: https://mastodon.social/@bob/987654321) [//]: # (reply-to: https://mastodon.social/@bob/987654321) This is such a great point! Bookmarking for later. @bob@mastodon.social

Bob gets both the like and your reply as a threaded response.

Unlisted Posts

Not everything needs to appear on your blog's front page. Files under replies/ without reply-to and like-of headers become "unlisted" posts — they're published to the Fediverse but don't clutter your blog index.

Perfect for quick thoughts, threads, or conversations that don't warrant a full article.

[//]: # (title: Thoughts of the day) Quick thought: I've been experimenting with writing all my Fediverse posts as Markdown files. It's oddly satisfying to `git log` my social media history.

Guestbook Replies

Your blog's guestbook works the same way. Reply to guestbook entries by placing files under replies/_guestbook/:

[//]: # (reply-to: https://someone.blog/mention/123) @alice@example.com welcome! Thanks for stopping by.

Editing and Deleting

Changed your mind? Edit the file and an Update activity is sent. Delete the file and your reply is removed from the Fediverse too.

Accidentally liked something? Remove the like-of line (or delete the file) and an Undo Like is published.

Your content, your rules.

Getting Started

  • Enable ActivityPub in your config.yaml:
  • link: https://blog.example.com enable_activitypub: true activitypub_username: blog # Only specify these if you want your ActivityPub domain to be different from your blog domain # activitypub_link: https://example.com # activitypub_domain: example.com
  • Install Madblog
    • From pip:
    pip install madblog
    • From Docker:
    docker pull quay.io/blacklight/madblog
  • Run Madblog from your Markdown folder (it is recommended that your articles are stored under <data-dir>/markdown):
    • From a pip installation:
    madblog /path/to/data
    • From Docker:
    docker run -it \ -p 8000:8000 \ -v "/path/to/config.yaml:/etc/madblog/config.yaml" \ -v "/path/to/data:/data" \ quay.io/blacklight/madblog
  • Any text file you create under markdown/ becomes a blog article. Any text file you create under replies/ becomes an unlisted post, a reply or a like reaction.
  • Check the README for detailed configuration options.

    Happy blogging!

    Why It’s Difficult to Build the #OMN – and What We Can Do About It

    One of the biggest barriers to building projects like the #OMN (Open Media Network) is not technical - it is structural - how resources are distributed in our society. Under capitalism, the driving force behind what gets built and what counts as “innovation” is profit. Investment flows toward projects that promise financial returns. Venture capital, grants, and corporate funding all operate under this logic: if a project can generate profit, scale, or market dominance, it is considered […]

    https://hamishcampbell.com/why-its-difficult-to-build-the-omn-and-what-we-can-do-about-it/

    Today we released GIMP 3.2 with major new features, including vector layers, link layers (smart objects), DDS BC7 export, better PSD import including PSB for large images, MyPaint 2.0 brushes, and much more!

    https://www.gimp.org/news/2026/03/14/gimp-3-2-released/

    #GIMP #imageEditor #GPL #openSource #libreGraphics #GIMP3 #GIMP3_2 #GEGL #news #release

    GIMP - GIMP 3.2 Released

    Release notes for GIMP 3.2

    We live in one of the most open and radical times for building real alternatives. The tools for horizontalism exist. The tools we use shape the activism we grow https://hamishcampbell.com/the-tools-we-use-shape-the-activism-we-create/
    The tools we use shape the activism we grow – #OMN (Open Media Network)

    OpenCollective responded to our collective concerns about identity verification and halted their use of Persona. I'm really happy to see this reaction by @opencollective -
    https://opencollective.com/opensource/updates/on-kyc-checks-and-persona

    Thanks to @liaizon to raise the alarm bells and so many who spoke up in this rather sensitive matter - people do need the money for their communities, but we need to have more control over the process. OpenCollective and @Liberapay are important actors here for the ecosystem.

    Of course much concern remains for the reliance on US law (OpenCollective) and all credit card payment providers are under US control. Recall what happened to the ICC judges? So we need to work towards more reliable systems under our control.

    To be continued. The @fkinstitute and the DemocraticTech.Fund will be working with these concerns in mind.

    On KYC checks and Persona - Open Source Collective

    As a nonprofit fiscal host, OSC supports over 2,500 open-source projects worldwide. Last year, as part of ongoing improvements to our risk and compliance processes, we began verifying the identity of users requesting payments when: When we...

    In France, we don't say "vibe-coded contribution" but "merde request" and I think it's beautiful 💩

    #AISlop #ChIAsse #NoAISlop

    My WordPress, WordPress 7.0, Gutenberg 22.7, and AI Experiments — Weekend Edition 361

    Read onlineIssue #361 | March 14, 2026 Hi, This week, we saw many updates in WordPress Core with two Betas and three security releases. Your auto-update email folder got plenty of traffic if you are managing more than one website 🤗 The next step for the security team is to backport the 6.9.4 fixes to older version for WordPress, all the way back to WordPress 4.7..

    https://gutenbergtimes.com/my-wordpress-wordpress-7-0-gutenberg-22-7-and-ai-experiments-weekend-edition-361/?utm_source=mastodon&utm_medium=jetpack_social

    My WordPress, WordPress 7.0, Gutenberg 22.7, and AI Experiments - Weekend Edition 361 - Gutenberg Times

    Hi, This week, we saw many updates in WordPress Core with two Betas and three security releases. Your auto-update email folder got plenty of traffic if you are managing more than one website 🤗 The next step for the security team is to backport the 6.9.4 fixes to older version for WordPress, all the way…

    Gutenberg Times