Plugin system

new-features
writeas
writefreely

#1

I’ve been thinking about a way to start building a plugin system for WriteFreely. In this thread I want to open up a technical discussion, especially for anyone potentially interested in helping develop this.

Background

To keep our blogging platform simple (and not a CMS), the core product needs to stop growing (scope-wise) at some point. I’m all about modularization (if you couldn’t tell from all the planned products), so as WriteFreely grows and people ask for more features, I’d like to start putting some of them into small, optional plugins.

Goals

Ideally, we’d be able to support plugins that are:

  • Portable
  • Easy-to-install
  • Able to be loaded / installed without restarting the application

Maybe goals

Feasible? Unnecessary? I haven’t thought them through – I’m just dumping ideas:

  • Installable on user-by-user basis (for multi-user instances)
  • Can be built in any language (not just Go)

Implementation

Some options:

Let me know your thoughts, or if you’re interested in working on this.


Post signatures
#2

I had a look at the two available implementations. Go plugins while native to Golang seems to only work with Linux builds while gRPC seems to work on multiple platforms. If you’re wanting to provide plugin support on more platforms than just linux then gRPC may be the path to go down.