User based plugins

(Sam Saffron) #1

When I use Discourse I would like to have some very specific settings set up.

  • I would like to use ACE editor with Vim bindings to compose.
  • I would like a nicer and more sophisticated UI to manage my drafts
  • I would like to suppress some of the visual noise in the topic list

At the moment we support the concept of “forum” based plugins. I forum owner can elect to enable a number of plugins for all users.

However, this does not really fit here. I would like a list of extensions to be always up to date and always available on any Discourse forum I visit.

Traditionally, people use userscripts for this kind of stuff, but the technical friction required to get this going is way too high for my liking. I would like my userscripts to be tied to my global discourse account.

What do people think about user based plugins?

  • Too complicated?

  • Too niche?

  • Best idea ever?

  • Too risky?

Central plugin repository - possible testing and monetization?
Peronsal Customizable Forum Themes
New indicator far too visually strong
Text after quote is bigger
(Pekka Gaiser) #2

Feels too niche to me, plus I imagine it’s going to be a nightmare to implement. What if some plugin in my forum conflicts with the plugins pulled from the user’s profile? What if I’ve made some crazy CSS modifications to my forum, breaking user-imported plugins that I’ve never heard about (or the other way round, plugins breaking my CSS)? It will make me, the forum owner, look like an ass, but leave me powerless to change it.

But maybe I misunderstand how this would work? Would it apply to hosted forums, or all forums, hosted and self-hosted? Would it apply to all plugins, or just selected ones?

One way that I could see this working is a clear, defined set of user preferences that plugins can elect to have stored centrally at, on a per-user basis, as part of the plugin API. So if I go to forum X, the editor plugin can automatically pull my highlighting preferences, markup language, etc. from my discourse profile. That would partly achieve what you want to do, although it would introduce a new set of problems (especially version compatibility when a plugin on a hosted forum is outdated).

(Sam Saffron) #3

I like that, its a possible reasonable middle ground. I would really like us to have some way of avoiding a user page with preferences that span two miles of page. I could see forum owners, enabling the optional “ace editor” plugin and then users deciding to enable and customise it. At least that way the forum owners still have full control of the experience and can easily shut down problematic plugins.

(Adam Davis) #4

I would like plugins to be categorized by integration to the forum. Some will need new tables, some will only need to run a bit of code on the server, but not modify the DB, and some ONLY userscripts, and are not executed on the server at all.

These “userscript-only plugins” would be cached on the server, served to those that have them enabled, and the discourse forum would allow users to “install” such a plugin to their account, without the forum administrator caring, beyond simple size limits, and perhaps a ban list of userscript plugins that would be bad for their forum. This would require some additional statistics so forum owners can be alerted to userscripts that are specifically causing issues, but mostly the anti-robot features should manage unruly userscripts.

This would involve another table that holds blobs of userscript plugins, and a table that adds the userscripts (via a javascript include, or similar) to pages as the subscribed user visits the forum.

I think it’s exactly what you need, without the possibility of destabilizing the forum any more than any other userscript or attacker might.

(Sam Saffron) #5

Just tickling this topic,

I have a very strong personal use case for such a feature.

I completely hate the font used by, the kerning is wrong and the text is just hard on my eyes to read.

I would like to override it so it uses the same Helvetica font we use in the default theme, on all my devices and browsers

Trouble is stylish is very hard to sync across devices etc. I know, can-of-worms, but still, its something that bothers me, daily.

(Sam Saffron) #6

Going to bump this, 1 and a half years later, I still want this and would use it daily if it existed.

(Dave McClure) #7

What if you could just run your own discourse app completely and connect to any running forum that is on a version with a compatible API?

Is it possible to work on the UI side w/o having to run rails server?
(Sam Saffron) #8

Well I would implement this as a plugin that enables user plugins, its full of bombs, and not something we can work on now, but has potential to be interesting.

(Jeff Atwood) closed #9