HackerOne users: Testing against this community violates our program's Terms of Service and will result in your bounty being denied.

Poll: Potential new installation requirements for enhanced addon capabilities

charrondevcharrondev Developer Lead (PHP, JS)Montreal Vanilla Staff

Hi everyone!

I'm putting out this poll today as I write some new documentation for some new addon capabilities in Vanilla.

Some Background

As some of you might have seen, some time ago we stopped shipping the git version of Vanilla with prebuilt assets.

Since then we've made numerous improvements to the capabilities of an addon's javascript and CSS and have begun using these throughout our built-in plugins. We also use these capabilities extensively throughout our cloud-only plugins.

These capabilities include:

  • Automatic loading of Javascript and Stylesheets (no ->addScript(), ->addCss(), or event involved).
  • Building Views in React.
  • Using the 100's of built-in React components & utilities.
  • Using the 100's of built-in utilities.
  • Reduced javascript size.
  • Build-time syntax validation.
  • Build-in transpilation and compatibility layer to support older browsers (unfortunately IE11 is still sticking around for a while).
  • Built-in SASS stylesheet support.

All of this gets done together to produce the outputted files in the /dist directory of your Vanilla installation.

The Catch

Unfortunately, in order to make use of these capabilities, and addon needs to be built at the same time as the rest of Vanilla. That means we have nothing to worry about for our built-in plugins, but I'd like for the addon developers here to be able to make use of these capabilities in their own addons.

In order for that to happen an addon would have to have additional system requirements of any Vanilla installation that uses it.

  • Node 10.x & yarn would be required on the target system to build the addon into Vanilla.
  • The target system would have to run the following in order to build everything together after updating vanilla, or after installing a new addon.
yarn install
yarn build

Update

I should have put this in here earlier, but to install the pre-requisites for this you would essentially need to run something like the following once on your server.

# Using Ubuntu
curl -sL https://deb.nodesource.com/setup_10.x | sudo -E bash -
sudo apt-get install -y nodejs

# Using Debian, as root
curl -sL https://deb.nodesource.com/setup_10.x | bash -
apt-get install -y nodejs

The Question

Are you guys willing to add an extra step to your install/update process if it means enhanced capabilities for your addons?

If you aren't willing to do this, could you please comment with what makes this extra step too difficult for your installation?

Poll: Potential new installation requirements for enhanced addon capabilities 26 votes

Yes, I'm willing to add an additional installation step to use certain addons
30%
ClémentVivantcharrondevsoviet9kiongraphixColorado涉谷四JarryConJota 8 votes
No, I can't/won't add an extra installation step to use certain addons
69%
phreakLinclucoliverradunerJoZ3_69fr3em1ndrbrahmsonK17agcyphersmirXdonshakespearepioc34megalomaniaktesting3ClydeWittingdamiribaswvharten 18 votes
«1

Comments

  • R_JR_J Ex-Fanboy Munich Admin

    I will not vote since I do not run a forum, but I wanted to give some feedback nevertheless. Every one I have helped in the past

    a) was only on a hosted plan where no NodeJS is available and

    b) had not much knowledge about web technologies


    One feature often asked for has been a way to install plugins from out of the dashboard; having a catalogue inside the application that makes installation of addons a breeze. This is the absolute contrary. It will Vanilla make a forum for web professionals. This is no criticism, by the way. My impression always have been that Vanilla is better suited for developers and other forum scripts are better suited for unexperienced user-admins (because of their more frequent updates and their more stable plugin-ecosystem)

  • charrondevcharrondev Developer Lead (PHP, JS) Montreal Vanilla Staff
    Yes, I'm willing to add an additional installation step to use certain addons

    Thanks for your feedback @R_J.

    Officially I think the expectation is that someone self-hosting Vanilla would be somewhat technical, otherwise the cloud platform is the way go if you can afford it.

    Unfortunately if you‘re not a big business our pricing for cloud hampers that a bit.

  • rbrahmsonrbrahmson "You may say I'm a dreamer / But I'm not the only one" NY ✭✭✭
    No, I can't/won't add an extra installation step to use certain addons

    I am afraid the extra prerequisites are problematic and I concur with @R_J on that. I also concur with @charrondev on the difficulty to go on the cloud because of the pricing model.

    However IMHO Vanilla IS a good choice for non-experts and the barriers only come as one tries to go deeper into customization (especially things that are not already supported by an option or a plugin). In that respect the suggested requirements would no longer make it a good choice for non-experts.

    GoDaddy, one of the largest host providers offers Vanilla and I've used it more than once. Works like a charm out of the box and they even offer automatic upgrades (which amazingly works).

  • It is my understanding that with the other major (free) forum software, you have to upload theme, plugin files to their relevant folders before they are available in the admincp.

  • phreakphreak Vanilla*APP (White Label) & Vanilla*Skins Shop MVP
    edited January 2020
    No, I can't/won't add an extra installation step to use certain addons

    Don’t node!

    There is a tendency in some OS system to complexify procedures with dependency installations, composer, etc. ... which is ok, as long as there are tools in place that allow easy procedures to do that also in a non-developer friendly way. But that's is rarely the case.

    A CMS which made very good progress in this field is "Contao". Check out their Contao Manager who handles installations, upgrades, extensions, caches, composer upgrades and much more.

    • VanillaAPP | iOS & Android App for Vanilla - White label app for Vanilla Forums OS
    • VanillaSkins | Plugins, Themes, Graphics and Custom Development for Vanilla
  • rbrahmsonrbrahmson "You may say I'm a dreamer / But I'm not the only one" NY ✭✭✭
    No, I can't/won't add an extra installation step to use certain addons

    From other responses I'm afraid that the question is somewhat unintentionally misleading (asking "re you guys willing to add an extra step to your install/update process if it means enhanced capabilities for your addons?" does not mention the prerequisites in the question...).

    If it is only whether I'd support an extra step, the answer is yes (and obviously so if it is automated). My strong objection is not to the extra step but to the prerequisite of platform environment which is not always available.

  • charrondevcharrondev Developer Lead (PHP, JS) Montreal Vanilla Staff
    Yes, I'm willing to add an additional installation step to use certain addons

    It's a bit disheartening to see that platform dependencies end up being so restrictive.

    Realistically the impact it will have is that any plugin that wants to be usable by the open source community and use the latest parts of the platform will need to be integrated into the core repo in some way (and as a result get built by our CI pipeline).

    Is everyone here on shared hosting where they are unable to run the following once on your server?

    # Using Ubuntu
    curl -sL https://deb.nodesource.com/setup_10.x | sudo -E bash -
    sudo apt-get install -y nodejs
    
    # Using Debian, as root
    curl -sL https://deb.nodesource.com/setup_10.x | bash -
    apt-get install -y nodejs
    
  • rbrahmsonrbrahmson "You may say I'm a dreamer / But I'm not the only one" NY ✭✭✭
    No, I can't/won't add an extra installation step to use certain addons

    Is everyone here on shared hosting 

    Well, there aren't so many developers here that we can afford losing...

    And yes, most are on shared hosting with restrictions of various types. NodeJS isn't common in such environments (which speaks to market demand) and that by itself should give a pause before getting on that wagon.

    For example, GoDaddy one of the largest host providers doesn't offer it (but does offer lavarel, symphony among others- that are unrelated to the poll question but speaks to what the market wants)

  • phreakphreak Vanilla*APP (White Label) & Vanilla*Skins Shop MVP
    No, I can't/won't add an extra installation step to use certain addons

    Shared and managed hosting usually do not come with Shell access or even the possibility of NodeJS.

    • VanillaAPP | iOS & Android App for Vanilla - White label app for Vanilla Forums OS
    • VanillaSkins | Plugins, Themes, Graphics and Custom Development for Vanilla
  • pioc34pioc34 Pézenas ✭✭
    No, I can't/won't add an extra installation step to use certain addons

    Shared hosting here too.

  • R_JR_J Ex-Fanboy Munich Admin

    It's a bit disheartening to see that platform dependencies end up being so restrictive.

    Many, many forum admins are no web specialists. Some find it even hard to upload files by ftp, create a database on their own and maybe even edit a .htaccess file. They expect a installer in their hosters dashboard. It's not just about software dependencies.


    Is everyone here on shared hosting where they are unable to run the following once on your server?

    Most anybody who comes here for asking questions seems to be on shared hosting. Most of them do not even update Vanilla regularly, so if they would run their own server, that would end up in a fiasco.


    Vanilla must be measured against other forum scripts. It is best compared to other PHP forums which do not require something like that. But even if you say that such a comparison is not correct if Vanilla starts to make of advanced JavaScript technologies and offers a React based theme, there is one competitor which it must be measured against: NodeBB. NodeBB requires NodeJS, yes, but it comes with one click plugin installation from dashboard.

    If Vanilla enforces build steps, it's OS version is falling far behind in terms of admin usability. Much more far than it already is because of the weak OS plugin eco system.


    Isn't there a CMS which tries to accomplish something similar? Working internally with JavaScript modules but exposing features to plugin developers without forcing admins to perform development steps to use such plugins? Most any problem must have been solved before and certainly that one, too. Sadfully I do not know how to even search for something like that... :-(


    -------------------------------------------------------------------------

    Realistically the impact it will have is that any plugin that wants to be usable by the open source community and use the latest parts of the platform will need to be integrated into the core repo in some way (and as a result get built by our CI pipeline).

    That is one aspect which is of special interest for me as a Vanilla plugin developer. I'm still undecided (really neutrally!) if I see this as a chance to get more knowledge about professional JavaScript knowledge or if it will push me away from Vanilla since I might need to become an intermediate JavaScript/Frontend developer in order to write plugins (and also to give support).

  • No, I can't/won't add an extra installation step to use certain addons

    First, thanks for the opportunity to vote. Kinda feeling important and worthwhile at the moment, even if things don't go as expected.

    I love Flarum, it is swift and pretty, but I wanted to write my own plugin, and I wanted to edit my theme, oh dear!!!!!!!!!!!!!!!!!

    I admire Discourse, but I prefer PHP. So I settled largely with Vanilla Forums, the magic behind the scene can be controlled.

    And I am no fool at web development, and I do not deal with "shared hosting" on principle, except by necessity.


    I will be very very sad if Vanilla Forums goes the way of one particular deep JS platform. (jQuery was simple, Vanilla JavaScript is best)

    My sadness shall multiply when Vanilla Forums demands more dependency-hungry resources to run or customize.

    The huge trust of simplicity that has attracted many shall then disperse them.

    I like Vanilla Forums because I like that flavour, in ice cream, JavaScript or anything, except in soup.


    Right now, we unzip a plugin and voila! Nice and simple.

    What we dream of is for further simplicity: let the Forum install the plugin unzipped, oh and straight from the repository like VSCode and GRAV do .... that would be really sweeeeeeeeeet!

    And we can edit the plugin live and stuff shows up instantly, no need to remember to compile this or that.

    VF running on minimum wage, minimum server requirement, PHP/MYSQL, is truly the last remaining simple forum.

  • rbrahmsonrbrahmson "You may say I'm a dreamer / But I'm not the only one" NY ✭✭✭
    No, I can't/won't add an extra installation step to use certain addons

    speaking of JQ, we were able to add JQUI,JQmobile so the whole experience is great as well as simple. Not wanting to modify anything in the core we wrote two plugins that add the necessary JQ libraries.

  • lucluc ✭✭
    No, I can't/won't add an extra installation step to use certain addons

    I am able to install it. But I don't want to have nodejs binary installed for some addons.

    OK, to have a dedicated env to build the addons though.

  • x00x00 MVP
    edited February 2020

    if node is is only needed to build, then it doesn't technically have to be on the server.

    There are many framework, with deployments procedures where I the build is done locally.

    Also from a security perspective, it better that the frawork itself isn't doing file management.

    As a side note, shared hosting is (moslty) a con.

    grep is your friend.

  • x00x00 MVP
    edited February 2020

    if you are paying 5$ p/m for shared hosting you could be paying 5$ p/m for a cloud solution, where you have root access.

    And the bonus is you will actually have some idea of what you are getting, and support won't be useless and really a front for sales, where they sell you worthless upgrades of very poor value, while continuing to throttle.

    grep is your friend.

  • x00x00 MVP
    edited February 2020

    Isn't the need for addons to be build with the framework more an architectural limitation?

    Why do you have to build with Vanilla to make use of React? I'm not against it, I'm just wondering whose necessity really this is?

    There isn't really anything stopping people incorporating Reat into their addons right now.

    grep is your friend.

  • No, I can't/won't add an extra installation step to use certain addons

    if you are paying 5$ p/m for shared hosting you could be paying 5$ p/m for a cloud solution

    $5 of shared hosting service works for the common man until I suppose you want to change PHP version, or go one step above ordinary, then it all proves useless, then you realize you kinda know more than the customer service.

    That said, it works! that's why the con is so successful; most folks dwell in the basic ordinary - and I suppose there isn't a crime there.

    I doubt there is any $5 cloud solution that is not un-managed. This $5 cloud hosting becomes very expensive for the ordinary user, who sometimes has no time or skill to learn more about sys admin hosting guru stuff.

  • x00x00 MVP
    edited February 2020

    shared hosting is not managed though. I'm talking traditional shared hosting. Support is terrible, knowledge is not good.

    grep is your friend.

  • You would be far better of with a service then, rather then hosting at all. When you run software ona server you have responsibility for the data of you users and for the admin of the server ultimately.

    grep is your friend.

Sign In or Register to comment.