Skip to main content


Does any Fediverse software includes an extension/plugin/macro system, so you can easily make small changes to the experience?
in reply to Evan Prodromou

I've never written social software that does this, by the way. But I'm kind of wishing I had!
in reply to Evan Prodromou

Sorry, this is not entirely true.

Both GNU Social (née StatusNet) and pump.io used to support admin-level plugins. We disabled the plugin capability in pump.io because there weren't a lot of actual implementations. I don't know if GNU Social still supports them.

I've never had social software that let users write and share their own macros, though. It would be pretty cool if we had that.

in reply to Evan Prodromou

'Our own' is doing a fair amount of lifting there, and the security concerns are very real.

Even assuming this is permission-locked to the account, the malicious actor possibility is incredibly high. From the obvious (stripping your followed, muting people at random) to the less obvious (liking and unliking things without your intervention), and a number of other things.

The ability to write your own is not an issue; it's the 'use this thing I wrote' being passed along.

in reply to Oggie

@Oggie Greasemonkey scripts and MediaWiki user scripts come to mind. There's existence proof that this can work.
in reply to Evan Prodromou

I apologize if I came off overly snippy or critical- I just blanched hard at the possible implementations of a script front end being used with the user's permissions, and all the bad things that -could- occur, especially with something as fragile (from a social perspective, not engineering) as social media.

It's going to need some very firm guardrails. There's certainly behavior that it would be nice to adjust without impacting other users on your instance, though.

in reply to Evan Prodromou

Agreed, and it's already on the Comkey/CalcKey near-term wishlist. Kainoa has details. I pinged him.
in reply to Evan Prodromou

Admins need to install them, but users can configure and manage many of them. But no, my users can't run generic code on the instance.
in reply to silverwizard

@silverwizard I guess it would be cool if they could at least run it in their own browsers.
in reply to Evan Prodromou

Yeah, that would be pretty cool - but wouldn't Firefox/Chrome extensions/GreaseMonkey or whatever scripts do that?
in reply to silverwizard

@silverwizard yes, but maybe the abstraction level could be focused on Activity Streams 2.0 objects and activities, rather than the DOM, like GreaseMonkey uses.
in reply to Evan Prodromou

@silverwizard so... pleroma/akkoma MRF? the "message rewrite facility" takes incoming and outgoing activities and, before delivery, modifies them in some programmatic way using elixir modules. it's admin-level, but you have total control over the as2 document. the only downside is that you can't have multiple sources of truth -- incoming messages are stored locally after the rewrite, and outgoing messages are rewritten once before delivery.
in reply to Evan Prodromou

Looks like Admin can add/remove, but there are user level customization for add-ons if available.
in reply to Evan Prodromou

I'm planning something kind of similar, where the UI is HTML template sets, and can be replaced by a new set of HTML templates and CSS. This way, any third-party designer can create a different UI/theme, and such themes can be shared. (All require security checks, of course.)
in reply to Evan Prodromou

bonfirenetworks.org/
in reply to Evan Prodromou

this may or may not be in the planned feature set of a tapir-themed project of mine that may or may not exist
in reply to Evan Prodromou

curious what you find. Fediverse software seems rails-focused. So it's easy to fork/contribute but not easy to write third party modules
in reply to Evan Prodromou

It's in the @elk Discord. Maybe this other client implemented it first, but I think that Elk will have it soon. Will be interesting.
@Elk
in reply to Evan Prodromou

@Evan Prodromou #Friendica has a clunky addon system based on hooks you can use to alter some of the page data. It's heavily used by social media connectors, although their numbers are dwindling because third-party networks disappear or close their public API (Facebook, and now Twitter).
in reply to Evan Prodromou

bonfirenetworks.org/ has an extension system, but not sure if they are light weight enough to qualify for what you're after here.