"Is a CMS built using Node-red even a good idea?"

I'm not here to bash on CMS platforms like WP cough,

But I'd really like to have a seamless solution to implement in my node-red server:

I understand the term CMS is fairly broad, so I'll refine the question to a similarly functional aspect of such utilizing the fundamentals:

-user registration / Login (backend)
-user permissions
-potential for plugins

Is any of this practical on the node-red platform? One of my websites are using node-red as it's webserver, and will be used as a controller for an animation streaming platform... I've developed a crude user-login system that does what I want in regards to client users being able to login and have verified user access... Just mainly worried about scaling practicalities when the load "hits the fan" running on a node-red server VS an Express only server or similar.

"My Precious" node-red makes life easier for the most part, and I'd hate to divert from this wonderful tool!

Much as I love Node-RED, personally I would not use Node-RED as a full-fledged web server as it carries a lot of baggage that isn't generally required. It excels at creating data provision based on low-code logic but not at the basics of a multi-user, high-performance web engine.

So I might choose to use Node-RED as an API engine to serve data to my CMS front-end but probably not as the front-end itself.

Indeed, I likely wouldn't use it to provide a back-end API for a CMS either for much the same reasons. You most likely want high-performance and low overheads along with high-security.

Of course, Node-RED can turn its hand to most things. So you could do it. Personally, I wouldn't.

You might want to use it to help prototype your CMS though with a view to moving the most important parts over to dedicated tooling as you progress. And you might also choose to integrate Node-RED to give you an API integration for additional logic and data provision.

Just my opinion though, for what it is worth.

2 Likes

I used it last December 2020 as a web server to handle our animation festival... Vimeo Premium account did the heavy lifting streaming wise, and the node-red server was more of the controller, and served the webpages to users to browse our entries. It was open to the public with no user login system at the time, so I anticipate more overhead this go round with the in-flow implementations I made. Granted, though, our attendance was serving an over estimation of about 1000~2000 people at sporadic times across the globe. At the most. Nothing too heavy.

Most of the new user implementation was stored in mongo, and I created subflows used similar as a middleware to handle user authentication and authorization on certain end-points. Basically user logs in, gets a cookie token, and the token is assigned and referenced to a user. Kinda crude, but works, though I wouldn't be surprised if some security flaws might lurk.

Seems to work with just me jamming on the site, but I notice I had to increase the instance memory to avoid exceeding system ram resources and getting the server locked up. RAM is around 1.6 gigs for production right now, and I anticipate needing to ramp that up more, come festival launch time...

I'm curious, if I do hit a large audience base, and experience some relatively heavy traffic, if things would still run and keep up to par with the progressive increase in server resources [AWS]... ?

I've looked into a little on your suggestion of using NR as a prototype, and seen some interesting npm packages that might convert some flows to a stand alone? Wonder if that is the way to go when the time and need comes.

Well, there are lots of CMS options that are easy to set up and efficient to run. A 1.5GB AWS instance is pretty big. I used to run my own blog in WordPress in 1/4 GB I seem to remember and WordPress itself is considered quite heavy as it needs MYSQL as well.

These days, my blog is run from a static site using Hugo. It is hosted on a free-tier from Netlify with Cloudflare (again free tier) providing a front-end proxy that gives some additional performance, security and analytics. I'm only getting around 350 visits a day at the moment but I have had much higher loads occasionally and performance of the site stays at around A+ without any cost. I use Disqus for comments because a lot of people already have accounts.

1 Like