Read the show notes and download the full episode here.
Michaela Light 0:01
Welcome back to the show. I'm here with Guust Nieuwenhuis, I didn't totally mangle up your duck short Belgium name is it Dutch or Belgium?
Guust Nieuwenhuis 00:07
I'm a bit of both mixture there.
Michaela Light 0:09
And he's joining us to talk about Massa CMS, a new CMS launched about a year and a half ago. It's a fork out of the famous Muira CMS. And we'll talk about why you even want to use a CMS at all, we've got some astounding statistics out of the confusion. State of the Union survey will be run every year that I think are important regarding this. And we'll also look at what's in Mac features in masa, what’s coming up in the future and why it's some really cool software. So welcome, Guust.
Guust Nieuwenhuis 0:51
Thank you. Thanks for having me.
Michaela Light 0:53
Yes, it's good to see you here. If you don't know him, he's a full-stack web wizard according to his bio. I don't know what a web wizard is. But it sounds exciting. And he's been doing cold fusion forever. Working in Europe, the EU and NATO and Adobe and all kinds of clients they have. And his company, we are north. They do customization as a service. So they help customize solutions. And get your apps running using cold fusion and property master as well. And he is an amateur musician, as well as a coach at the local football club. So welcome ghost,
Guust Nieuwenhuis 1:37
local soccer club for Euro-Americans.
Michaela Light 1:41
Oh, for the Europeans listening to soccer for the Europeans or the Americans.
Guust Nieuwenhuis 1:46
Yeah, let's not get that discussion started. Otherwise, it will be no time for Master CMS anymore.
Michaela Light 1:53
Yeah. So what is Master?
Guust Nieuwenhuis 1:58
What is Master Master? First of all, it's a cold fusion-based content management system. And I think, hopefully, one day, we don't need to mention that anymore. But I still do today. It's a fork from MERA CMS. I think many people in the collision community are familiar with NeuRA. And we, for various reasons, forked from Europe a year and a half ago and created our own version of masa, masa, CMS.
Michaela Light 2:32
Okay, cool. Well, we'll talk about why you forked it. There was good reason. But maybe we should answer the question what a CMS is, and why you might use a CMS. So what is the CMS
Guust Nieuwenhuis 2:44
CMS first of all stands for Content Management System. And the idea behind the CMS is that when you have a lot of content, a lot of information that you want to visualize that you have a central system where you put all that information in, and that's your management system, your content management system. And an output of that content management system. Can can be very, various can be a lot of things. But most commonly, it's a website. But it could very well be a mobile app, for example, a content management system can can power content in your in a mobile app. And give you the opportunity to manage online manager content that is eventually consumed and displayed in a mobile app can be a mobile app can be displace, if we're talking about about narrow casting, for example, could be that as well. The most commonly, it's indeed its websites. And the key feature for a code management system is that it allows to give you the ability to create structure to create overview and, and have a lot of functionality around that content. So that makes your life easier. Especially for people that have to deal with the content and have to go through it, maintain it updated. Yeah.
Michaela Light 4:23
So for me, the key thing, I mean, one of the alternate, there are several alternatives to using a CMS. And we'll talk a bit more about the different CMS alternatives. But you know, what I see in older programs ColdFusion apps is all the contents hard coded directly in CFM files. And then of course, you know, if you want to change the content, you've got to the users of your organization have to you have two options, neither of which are great, either. They're making constant requests for changes in the updates the programmers and they end up in the queue of all the requests you have to do and changing content takes longer. Time, or the other alternative I've seen, which is, you know, it's not really that you let the users edit those ColdFusion files directly, but then you're kind of a risk that they dork stuff up in your code. So it's not good. So So content management system, that content goes in the database, users log into a special admin area, they possibly have permissions to what content they're allowed to update. They may have a workflow approval thing where someone you know, an editor can do it, but someone else needs to approve it before it goes on the site. You have all kinds of much more granular control over your content and CMS. Sorry, you were gonna say those?
Guust Nieuwenhuis 5:39
Yeah, I definitely don't think you should bother developers with managing content, that for sure, I think all developers will fully agree with me on that one. But so that's pretty clear. A developer is not a it's not a webmaster, it's not somebody that it's not a copywriter. So eventually, if you rely on developers to update because it's hard coded, there's another guy in the process another step, another possibility for a bottleneck somewhere. And that's definitely in today's world where marketing needs your fast needs to go quick, not something you could have another, another, rich to cross whenever you're whenever you're trying to put something out. And the second option, you mentioned, allowing, allowing people to directly edit CF CFM, CFM, CFML pages themselves? Well, first of all, none Do you rather not have non developers mucking around in your code. And otherwise, they become developers, and they don't want to have developers messing up, or like dealing with your content. So I don't think that's a good solution either. Especially if you look around tooling and functionality that's required to maintain a large portion of content, that can definitely be done in a development environment, we have something for versioning. It's called Git, or SVN. But we have we have a lot of tools for workflow, we have that. But but that's most of the time, outside of our code. And therefore outside of the content. If you keep content and code, what would you do get with a CMS is that with good CMS is that there is ability to create workflows, there is versioning. It's all built in around the content in the CMS. And it gives all that power and functionality to your editors, to your authors, to your publishers, to your webmasters in general, to deal with that. Yep. That's, that's what that's the key difference for a content management system.
Michaela Light 7:59
Yeah, you get more features. We'll talk about the features that are in masa. Later in the show. I think it's also a safer way to edit content gives you better control of content edits, if you've got a lot of people making content edits more secure as well. So lots of reasons to do it. So let's have a look at what ColdFusion developers said CMS they said they were using in last year's State of the CF union survey, I'm just going to share my screen. Hopefully you can see the graph in there and if I can make it bigger and for those who are listening on audio, I'll explain what's in there. Oops somewhere I can make this bigger. Let's try making it bigger. I'll do it so here we have some different options. The most popular CMS out there is customer homegrown a lot of people just roll their own CMS you know you you stick some tape a table or two in your database has the content in it you have a simple admin screen, but you're missing out on a lot of the features that mass or other CMS have there. And obviously you've got to maintain it yourself. And then other common CMS is out there content box Muira preside Far Cry contents common spot. Some of those are open source like masa. This we didn't have master as an option last year, so don't be upset because it didn't. There was some people who who wrote it in under other. So this year survey which just came out does have it as an option.
Unknown Speaker 9:50
Thank you and
Michaela Light 9:53
but I think the thing that perhaps is most interesting is ColdFusion developers 53% of coffee developers don't use any CMS roll your own or any of these open source or commercial options. So what are your thoughts on? On on that? Why they Why do folks not not use a CMS? Do you think?
Guust Nieuwenhuis 10:20
The difficulty, I think here is that we don't know what what type of applications they're working on, it could very well be that, that the type of applications are working on or more like a file system, or completely different but not related to content? We, we don't do. If I look at what we do with the projects, we do it, we are north. We don't use a CMS in every single project, either. It's there's not always a use for us CMS because it's not. It's not around content, the application content. If we do have something that works on content, we do use a CMS Of course, that's for sure. And you mentioned earlier on. The reason why we do that. And I think the reason why people should look into using the CMS as well, is what you mentioned at the beginning, when we are north, what we do is customization as a service. And what we mean with that is that whenever we we look, we help out a customer with a challenge they have is that we try not to build from scratch, we have all cupboard filled with with building blocks. And we we use those we we stick those together to make sure that we we build a custom solution for our client, but reusing different systems, frameworks, libraries that are available so that we don't have to start from scratch. We're we're we're pretty big Lego fans over we are north. So that's probably why we were talking about building blocks and stuff like that.
Michaela Light 12:13
Yes. No, that makes sense. I mean, I think if it's if you've got libraries or tools that make your life easier, you might as well use them as CMS. If if your ColdFusion app does have content in it, and I would say yes, there are apps that don't have content. However, most apps and any public facing website is probably going to have some content going around it. Even if you don't have a blog, you probably have lots of informational webpages going on. And then many intranet, pay, you know, apps have content and even if it's just a Help system or something so I think those 53% of people listening who like why don't use a CMS might want to contemplate Okay, there are places where we have content on the site, it would be nice if users were able to update that within our organization for either their own use or for the public. And, you know, consider using one of the CMS I also just want to mention you know, the the top actual CMS was content box in the survey but Murer was pretty close behind. So I think given Master is very similar to mirror because you forked off a private there the previous version, maybe we should talk about why you've decided to fork from it because sometimes forking software it's controversial, but I don't think it was in this case. Tell us about why did the fork year and a half ago
Guust Nieuwenhuis 13:48
so we've been we've been using Euro a lot before. We loved it. It's it always always has been I think definitely the last few years was was the leading CMS definitely in the cold fusion world but a real challenger for for for the CF CMS world in general. But what happened about I think about two years ago, is that they announced they weren't gonna go closed source again with the new version of mirror they were building. So just just to make make it clear, Europe started off as a closed source folder management system up to version I think five dot something. I found the three photos for around that time. They made they made it open source and then through the years for years, with major and minor releases all the way up to seven or two. It was released under a close an open source versions. But while developing A new version while developing, working towards what they call them Euro X, the latest version of Euro, they, they decided they wanted to move back to a closed source licensing model, and kind of out of the blue took the whole repository offline, the open source repository as well. They did open it up privately to people who asked for it. So they that there's still a private repository out there on GitHub that some of us have access to. But But since August 2021, I even think, August 2021. Since then, they they stopped maintaining and adding new code to the to the open source version.
Michaela Light 15:56
And so why did you want them to be an open source? You know, CMS, I guess based on mirror, the earlier version mirrors 7.1. That, but you wanted to keep on developing it? Why why did you think that was important in the ColdFusion? World does it as an open source, CMS,
Guust Nieuwenhuis 16:16
what would we exterior? Are we experienced with we are north and with some of our clients, but we weren't the only ones we were approached by other companies as well, that that were struggling with the same same thing is that actually talked to one company today as well. And they explained me the same thing. The reason why they started looking into masa is exactly why we decided to fork it. And that is that we were not in a position for some of our clients to move to a closed source model. And sometimes, in some cases, that's because of financial reasons. There's just no budget, foreseen, it's not that there's no budget, but it's, it's not budgeted to have a license cost. In other cases, it's just the way the contract with the client has been written is dead. It's built, there is a requirement to use open source software. And we see that we see that a lot in Europe, for example, coming from government organizations, or government itself, that there's a requirement to work with open source software. And so that's what we experienced, and we weren't alone. And we we were approached by a few companies. And and that eventually made us think, okay, what can we do? What are the options, and we started looking into, okay, maybe we should continue it ourselves? We haven't we we at first we were thinking okay, well, we're already running on the latest open source version, we'll just make sure that if anything happens, we'll fix the bug in the core, and it's okay. But since more and more people started approaching us, we thought okay, maybe we should, should do what we're planning to do. Anyway, the doing out in the public with a fork and of the of the of Murer. And that's that's what eventually happened. There was some preparation, it took quite a few months of preparation to come out with with a fork. We did our due diligence on the legal legal level. And we had to of course, make sure that we by the time we forked it, we we had renamed because of branding. And because trademarks on by Blue River on Euro, so we rebranded it, went through the code, fix it everywhere we needed it dealt with a few issues that we came across dependencies on commercial licenses that we couldn't take along. So we we fixed some some some fixes. And then, I think a year and a half ago, so we're at the end of summer 2021. Yeah. The end of the summer 2021. We released 7.2, massive CMS version seven not to following up on euro 7.1.
Unknown Speaker 19:25
It is great that you did that. So congrats on taking on that project. Great for the ColdFusion community that the masa CMS, open source legacy continues through. Sorry, the Murer open source. CMS legacy continues to remaster and thanks for making sure it obviously has to be all done, you know, aboveboard and legally. And for folks listening, you know, I know some people are totally into the open source world but not everyone who does does ColdFusion you know, is is familiar with open source. So open source means that the, the software,
Michaela Light 20:03
you can get the source code, hence open source. It's also under a license that lets you modify it for your own tweaking around, there may be some restrictions on that, you know. So what you can do depends on the law, what license do you guys use? You
Guust Nieuwenhuis 20:21
should be able to answer this question right away.
Michaela Light 20:24
We'll add it in the show notes later, you can answer it later. Meanwhile, let it's GPL to GPL. Yeah. Okay, so that's a common open source license. Just to be clear, for people who haven't been involved in forking, basically, anyone who uses any open source software is free at any time, make a copy of it, tweak around with it, make your own version of it, you know, under certain restrictions, that's what you're allowed to do. But it's pretty free. I mean, the restrictions are pretty minor. Yeah, and certainly is only legal and encouraged to make a fork of open source software. And this is a very common thing in the open source world. And if the fork turns out to be, you know, it's better and more popular, and it's easier to use, you know, it gets more people adopt it. So it's kind of a democratic way of dealing things. And it avoids in often with commercial software, people get upset, oh, well, why doesn't it do this, or I wish it did that with open source you don't like where it is, you edit it, you make it do better, you put back a pull request to the original people, if they like your modification, they could accept it? Well, that's basically how it works. Now, in this case, the prior version mirror was open source. They made a new version that was closed source, in other words, commercial software that you're not allowed to do these things with. But you were still allowed to take the previous version and fork it into into the into Massa.
Guust Nieuwenhuis 22:00
Yep, Indeed, indeed. All right. And if you look at if you look at those open source licenses, they always it's they the open source license, because there are different versions and different templates for it. It basically defines what the permissions are, what you're allowed to do, what your limitations are, and what the conditions are, for that apply on what you're doing. And, and in our case, with the GPL, v2, and that's, that's all clearly displayed on our GitHub, GitHub has a really nice page for that on our GitHub repository, that the permissions are that you could use, use commercially, you can modify it, you can distribute it, you can use it privately. But there is a limitation, which is that there is no liability, we cannot be held liable. And there's no guarantee from our side. And all of that, under the condition that you keep the license and the copyright notice that you that you disclose this, the source and that you have that whatever you do with it, if you fork it, you need to continue under the same license. That's, in a nutshell, what our license with the GPL that we use stands for.
Michaela Light 23:20
Yeah, it's a very common open source license. So that last point means someone can't, anyone can make a new open source version of master if they if they have a cool idea that like, hey, we want it to have this feature, they can add it in what they can't do is turn around and make it close source and start charging money for it.
Guust Nieuwenhuis 23:40
And now and now people will wonder how come Muira didn't do that? Because they were on their license. That was weird. But there's a big difference. And that is that is copyright. And they they have been developing your app for years and years. And when they hold copyright over what they did
Michaela Light 24:01
is they created it. So they're allowed to do that.
Guust Nieuwenhuis 24:03
Yeah. So that makes makes them allowed to do that. Yeah, yeah. But it's just, it's just not possible for anyone else to take it and they say I make it go source. That's where the limitation. Limitation is.
Michaela Light 24:18
So let I know you only went to your website and you say it's an enterprise content management system sounds very sexy. But what does that mean enterprise content management?
Guust Nieuwenhuis 24:28
You're the first one to two is the first one to tell me that enterprise is 66. Yeah, I think most people will think the complete opposite of it. But
Michaela Light 24:39
usually when you go to a SAS or some software, they have like, here's the the Small Business one, and then you want to pay more money. I know you don't charge money from NASA, but often they have an option, you know, small business and then there's the enterprise version. And it costs more because it has more features. Yeah, so what what makes them Assa and an enterprise content management system. But
Guust Nieuwenhuis 25:04
I think what, I don't think that I do know that we're masa is strong it is the workflow and the possibilities, and the tools for editors and authors to, to deal with content. And especially when we're talking about workflow, the abilities for approval, change content, staging. That's, that's some pretty advanced functionality for CMS. And that's where it makes it enterprise. If, if, if you're. And I'm not saying that NASA is not suited for small business, masa is definitely suited for small businesses as well. But the moment you're working in an enterprise environment with a lot of people that have responsibility, and that are involved in content management, you need functionality to be able to, for example, have Person A right content, person B review it Person C being illegal, doing a legal review. And all of that happening in parallel over multiple content nodes. And then all those content notes come together in a single publish date, for example, and a whole set of content to go live altogether. That that's that's some serious
Michaela Light 26:28
friction, you have versioning as well. Yeah. And then content staging is where you can look at a version before it gets published and see is it all consistent and good?
Guust Nieuwenhuis 26:42
I think I rough I regularly reference a a business case here in Belgium, I don't I don't know how it is around the world in other countries. But whenever whenever sales happens for stores, there's some pretty tight regulation on what companies and stores are allowed to do with sales and discounts. And we have we in Belgium, we have twice a year there is a period with which we go sold, or sales. And we're especially a good example is clothing stores, where they basically anything which is from last season, they put it on sale, and have and sell at a big discount, everybody's pretty used to that I think it's common common common thing. But in Belgium, it's regulated unto two periods in the year where that is coffee shops are allowed to do that. And even more that I think, a period of one month, four weeks prior to that sales, sales period starting, they're not allowed to do any type of discounts. And that's it. That's an interesting use case. And if you want to translate that to a website or a web shop, for example, you want to prepare that you want to prepare the content, you want to prepare all the information, all the marketing, you're going to do around that sales period, and you want to, you don't want to overnight, make all those changes and put them live No. So basically what you have is weeks or months of months of preparation, updating content and everything, and which is all kept in draft. And what you then can do in in masa is you bundled that in a content content set, which you can preview preview. So you can basically open the website, when you're logged in as an editor, you could open the website and look at a preview version of the website. And everything is bundled together so that it can go live altogether. Right. When the sales period starts. It's that kind of functionality that we call enterprise. And even more, I'll tell you a funny thing is that one of the two sales periods in Belgium starts on January 1. I don't think anyone wants to be responsible for on New Year's Eve being the one who needs to push a button on at midnight when your friends are popping the quarks of the bottles of champagne. You don't want to be the one working to put the website live at the change that life. So there is ultimate you can you can scheduled publishing, for example, as well. It's that kind of functionality. It can basically Okay,
Michaela Light 29:35
so you come up with a date a time for publishing a set of content. And people who don't live in Belgium which is probably 99.7% For this you may have a product launch that has to launch on so similar thing. So it's useful you may have some press release that's coming out and it needs Be embargoed until a certain day and time and you need supporting content that?
Guust Nieuwenhuis 30:05
Yeah, those are some very valid use cases as well for that that type of enterprise functionality. Yeah, yeah.
Michaela Light 30:13
So let's talk in more detail about the technical features that are in NASA. It looks like you've got some really cool things you've got in there. So you've got a layout manager, and themes and plugins, all kinds of things. So tell us a bit more about the cool stuff you can do using master.
Guust Nieuwenhuis 30:31
I think I definitely want to highlight one of the more recent things that that's very powerful. And I must give credit to to Muira. For this. That's the layout manager. It's, it's maybe it's something which is probably not very known to the general public with this functionality. In masseuse, it's the ability to basically have a set of modules that you can drag and drop onto the page. Oh, how cool were were switch. Yeah, we, in this case, in this use case, what you do is that you don't you do not edit the content of a certain page in the backend in the administrator, but you edit it directly in line in the in the website itself. Masa is this cool little edit bar. Once you're logged in with the the right permissions, you have an edit bar, and we're on whatever page you're on your website, you basically click edit a go to Inline Edit, a nice sidebar pops up. And you can drag and drop a lot of nice and cool modules onto the page. That can be a text builder module where you can put some text in or you can reuse other bits of test text that you already have in your in your system, you could put you can use gallery features, you could you could drag in a video, a module that allows you to set a video, a YouTube video, for example, which is automatically rendered for you. And that way, you could basically build up the website. That's, that's a very, very powerful feature, I think in in masa. And what we've been doing recently, especially in version 774, is that we went through all those modules, you could drag and drop onto the beach. And we reviewed every single one of them, made sure we we tested them, we've updated them with some functionality. And there were a bunch of old Europe in the past used to have this notion of a display object. And it's actually the display object that evolved into those modules. But some of those old display object, objects never made the transition into modules. And that's what we would we fixed in seven, four, and made sure that you have all those missing modules in master so you can really build up, build up a website.
Michaela Light 33:15
That's great how you didn't just copy mirror 7.1, you've been adding features, making it better. So
Guust Nieuwenhuis 33:22
indeed, there's a new file browser in the administrator as well, that's been we've, we've replaced CK finder with a custom build file browser. And we've updated the whole interface for editing content in the administrator as well, where we made it more usable, more flexible. Easier. Usability is is a key feature for for masa, for sure. And that's why we do a lot of usability upgrades and improvements that we did on that. Yes.
Michaela Light 33:57
That is cool. Now themes, I assume that's like you can apply a whole look and feel to the site by changing the theme. And you can either write your own themes, or you can just the themes that other people have written that you can start off with.
Guust Nieuwenhuis 34:11
Yeah, and really cool. What you can do with those themes is you in those themes, you can add your custom modules. So the modules I just talked about, if you just want to drag a piece, a piece of content on the page, or a video or an image, or you write in your theme, a bunch of custom modules, that represents different layouts or widgets or little blocks that you that you want to provide and have available for your editor. So you could basically build them in your theme as well. And and deliver them to content editors that way and that's, that's I think, one of the most powerful features. There is the ability For editors to not just only use the standard built in modules that come out of the box, but the ability for developers to build custom ones and for for editors to use those custom ones, when when managing content.
Michaela Light 35:18
Now I know you also have plugins, tell us a bit about that. So I assume a way to customize and encapsulate code and let people add added in or
Guust Nieuwenhuis 35:30
yet, so the big difference between modules on one end and plugins on the other side is that modules, the modules could very well be something which it can have a front end interface elements, you can drag on a page, it doesn't need to. But plugins do not have that ability. Where do plugins differentiate from modules then is that plugins have the ability to create an interface in the administrator which is not possible through a module. So a plugin is is something is which is way more geared towards the administrative, the administrator and that side of the application where modules are geared more towards the front end editing and the layout manager.
Michaela Light 36:23
And do plugins tie into events within mass?
Guust Nieuwenhuis 36:27
Yes, Marseille has a very, very rich events lifecycle, as well as a lot of specific events around functionality in the application. So and and Mark says it's two types of events, you can, you can see the difference between the events already in the name. Any events that starts with on, for example, on content safe, are events that are when they are triggered, they are their hooks into into the workflow into the lifecycle where you can add extra bits and pieces of content. And next to that the whole life assault cycle has a lot of events that start with the word standard. And those events they any code you put in there, you replace the code that would normally be executed. So that's, that's the two types of events that there are and there is a huge list, huge, huge. And the amount of hooks are endless. To give you an example, if you there's an event, there's an event all before content safe, which allows you to manipulate the content before it's been saved. As well as there is an event on after content save, which allows you to do something after the content has been saved in the system. So it's even though small differences and yeah, that allow you to do a lot of a lot of cool stuff with one of the sites recently that I've been working on I use the own before content safe. For a specific type of content, which let me know, quickly, which means that I have a dynamic event name, which is basically all
it is gone. No worries.
Michaela Light 38:40
So if two event driven programming and object oriented programming, they're going to have a love fest with mass Oh, yeah, yeah. And if you're not into object oriented program, you can still use masa, you just don't, you just don't get all that extra benefit of using the events and things
Guust Nieuwenhuis 39:01
talking about if you're talking about so we have the whole events. Everything around events in in masa. The other thing that we have in masa is is an ORM, assembler, and a lot of functionality to create your own objects. And basically play with those on the OP side of things. There's a lot of that as well. Which, which makes it really easy, for example, to create a lot of content which should not be tied into content notes in a site structure, but are independent from the site structure and allow you to use those. It's just different way of structuring your content, basically.
Michaela Light 39:46
And do you expose an API to master or? Yeah,
Guust Nieuwenhuis 39:51
so there is there is when you're building on the front end, when you In your code working with with JavaScript, there is there is the ability to use a JavaScript API in your front end code and to basically interact with with the back end of the system, as well as there is the endpoints API endpoints to integrate with, to integrate Mahsa into external systems, and to have a nice integration with whatever tool you have, in your workflow, whatever other building block you're using, when creating something for a client.
Michaela Light 40:38
That's great. I'm curious, do you use the Adobe API Manager to help with your API's? Or?
Guust Nieuwenhuis 40:46
I haven't looked into that specifically yet. But I know what the strength and the power is of the API Manager and that would definitely, that could definitely be of PFL. Yeah. And I think it's, I would say, in particular use cases. If you're, if you're using masa as a content management system for a public website, not so much. But imagine that you use masa as a content management system to manage a lot of content that you will then distribute through API's with limitations and security and authentication and all of that on that content. Yeah, then I think the the cold fusion, the Adobe ColdFusion API Manager would come in, very useful to, to manage a lot of that incoming traffic before it before it reaches masa. Yeah, for
Michaela Light 41:48
better control and security. I did an interview with Mike Brandt, last week about using the API Manager for better API securities. That's what brought it to mind. I was reading through your docs, you have a thing called an M tack, which sounds kind of magical and mysterious. What what is,
Guust Nieuwenhuis 42:07
there is a way that Yeah, so the EdTech allows, is very, very powerful little thing, whenever somebody is editing content, and inside the content you're working with, they need something done dynamic, something out of the system, for example, they can use that MTech to basically add a little bit of code, it's a way of adding code and dynamic functionality to your content. And it's basically it's, it's not a tag the way we know it. Cold Fusion with with greater than and smaller than, but it's using brackets. So it's, it starts with brackets with an M, and then you put a little bit of code, and then you close it with brackets with a slash. So it's very similar to the text we know from ColdFusion. But it's slightly slightly different. And it allows allows you to do some basic stuff inside of your content. Yeah, to do that, and then what you do most of the time, is that you could, for example, call equal tune function. If you for example, if you want to add the current date onto a page, for example, with directly into your content, you would you would use the now called division now function, you probably do date format around it. And it's basically it's rendering that on the page. But you could also do on top of the MTech is that inside the MTech, you use the the Moscow, and the Moscow is basically is starts with just m dots. And you could do them m dot get content, and you could ask for specific content note and get a property out of, for example, that could very well be the content note of the page you're currently on. It could be coming from somewhere else in the system.
Michaela Light 44:05
Now, you mentioned you support workflows and master and can you customize those you can set up different groups of people who get contacted for approval or anything
Guust Nieuwenhuis 44:15
you can you can use the users and the group functionality to set up groups. And that you create a workflow in which you basically say, Okay, first, somebody from this group of people needs to approve before it moves on to the next group of people. Somebody there needs to approve it. And you can basically chain chain those approvals. So that before it's been published, multiple people have looked through it. And that could be if you have authors, and once they're done writing a page for your website, it goes to a group, a group of editors that will review it, review the content, review the language that's being used, and when they approve it, it goes to the You go, it goes through market and marketing first maybe and marketing looks at it and sees if everything's okay. And they approve it and goes to legal. And then we'll legal. When legals says there's no issue if the shape can be endless, the chain can be endless. You might not want to do that, because otherwise you're probably. But But yes, indeed, you could do that. And zero. Yeah, go ahead. And in that whole process, people get notified people, people can can see in the administrator what what content is there, and it's waiting for approval by them. editors that authors can can see where the content is in that chain of approval. And emails can be sent out automatically to inform people something is waiting for their approval, and so on. So
Michaela Light 45:53
very cool. So I don't know, if you're allowed to share anonymously, some statistics about Master like, you know, get you know, how many pages some of your larger sites have offhand, you know, 10 users they have.
Guust Nieuwenhuis 46:17
So there's an interesting thing, in the Administrator of NASA, and that is that, if you're any site, because you can have multiple sites running on a single instance, any site has, by default, a limitation on the amount of content pages or content nodes it can have. It's a number, which is set per site, which you can add it. But I think if I'm not mistaking the default number, a standard number out of the box is 1000. And we we did have a couple of sites already where we had to raise the number after a while because 1000s and 1000s, wouldn't be enough. I think one of the bigger systems that bigger size that I worked on, had was a website for let's call it the school, an organization organizing a lot of trainings. And every single training as well as every class for that course. So every single course, and everything single class, they organized for a specific course, all of each of them were called nodes. And if you then do the math, the site was running for 15 years already. You can you can imagine that that gives pretty that we're talking about a couple of 1000 contents now content notes in a single instance, single site.
Michaela Light 47:56
Yeah. And then what about users, you know, content editors, approvers, legal marketing was
Guust Nieuwenhuis 48:03
one of our one of our clients. I don't know, I don't have exact numbers. But I know that one of our clients has a very big user base, talking about editors, authors and so on, that runs into somewhere, I think, between 100 and 150 people easily. So so yeah. There's a can definitely handle handle
Michaela Light 48:34
a lot of users. And there's no limit on how many you can have there. If you've got a big organization, you can have as many of those as you want. Yeah, indeed. And you're not paying an extra licensing fee fee for every Content Editor.
Guust Nieuwenhuis 48:49
Nope. That's not the case at all.
Michaela Light 48:52
Yeah. Let's talk about backwards compatibility. Because maybe some of the people who are using Muira would like to transition over to masa, how long is it to do that?
Guust Nieuwenhuis 49:06
If you're on the latest version of Muira, it's, it's super easy. There's somewhere in it.
Michaela Light 49:17
Do you mean Mira 10 or Muira? Seven? No, it was
Guust Nieuwenhuis 49:21
if your lives for if you're on the latest public, open source version of Muira. If you're on seven, four, it's super straightforward. There is a configuration file, you change an endpoint where we download the code from you change it from a Muira endpoint to our Mahsa endpoint on GitHub. You go into the administrator you hit update and all sudden it's the muscle if you're on and then if you go back if you're on seven zero. It depends a little bit that same technique works sometimes as well with But if you go to version 6.5 6.4, there, there are some quirks because that functionality didn't with that URL didn't exist like that in those versions. So you cannot just update URL you need, you need to do a little bit more. But that's something that people can always reach out to us for help. With over the last year and a half, we've been updating a lot of websites, even from version five, version six, old of Muira, all the way up to the latest version of masa. I know that that Matt, the lead developer on Muira, in the past has always been very, has been very keen on backwards compatibility from Europe. And then we're talking about Massa, I'm a strong believer in the semantic, the semantic versioning model, where you clearly based their your version number indicates if if there is a potential for breaking changes or not. So it may be too quickly to quickly explain that a bit a bit, because maybe not every buddy is familiar with semantic versioning. I think a lot of people are familiar with version numbering that that's that has three parts, for example, one dot 0.0. The first number stands for the major, four major versions. The second number stands for minor versions. And the third number stands for patch versions. So one, dot 0.0 is a major version version one, if you have one, dot 0.1 is the first patch version on top of major version one. And then if you have one, dot 1.0 is a minor version. What's important here and when we're talking about backwards compatibility, compatibility, the idea is that whenever you release a new version, and that new version contains, for example, a small bug fix or some something that broken and needs to be fixed, you do that in a patched version. So if you release a version with a couple of salts, smaller bug fixes, that you basically you take the latest version number you have and you add, you increment the third number by one. If you release a version that contains new functionality, but has no breaking changes, that's considered a minor version, and you raise the minor number to the middle number of the three, you raise that by one, you reset the patch number to zero. So that way you go from for example, one dot 0.1, you go to one dot 1.0. And whenever you make a big, big change in your application, or you you look into making breaking changes, that's when you define the version as a major release. That's that's a that's a change between masa and Europe because Muira was not using semantic versioning. In that way, we we are applying some version for pretty strictly me, which means
Michaela Light 53:27
that maybe you could educate Chrome and Firefox to use this. So they're not going into some enormous version number every five minutes.
Guust Nieuwenhuis 53:35
But indeed. But it's we use that and which basically, which basically means that whenever you look at our version numbering, you immediately know is there a risk? Is this gonna introduce new functionality? Because new functionality might mean that you might not break something. But it might mean that you need to educate your users. Or it might mean that you need to update videos and documentation right made internally for people to use your system.
Michaela Light 54:06
While we're educating maybe we can educate the Lucey association is Switzerland and Adobe on their version numbering because sometimes hot fixes from Adobe have broken stuff. They're not backwards compatible. Not often, but that did happen last year. And then on the other end of the spectrum, it seems to me Lucy has had a zillion major changes, but they don't bump the major version number.
Guust Nieuwenhuis 54:35
Well, there's just no need to bump your major version number with a lot of changes.
Michaela Light 54:41
I know but for marketing purposes, if you've done a lot of work and you've made some major improvements, maybe you should increase the
Guust Nieuwenhuis 54:49
width if we're comparing approaches in versioning with different library libraries and products and so on What I, the one I really love is what Ember Jas does. Ember. JS is one of this lesser known front end frameworks. It's, it's been out there for way longer than Angular and view and react, for example, but but it's it's a lesser known one, what they do is, they have a very, and I wish I could do that with masa one day, but we're not there yet. They have a very strict release schedule, they release a minor version every six weeks period, every six weeks, wow, there is a new minor version. And what the, that basically means that any company using Ember js for their, in their in their product or in their project, they know and they can schedule ahead for upgrades to happen in ember. And on top of that, all new functionalities always added two minor releases. And the moment and it's a bit similar to what you were saying, the moment that they consider the amount of functionality they add it to, in minor versions to be a, like a lot, they will then release a major version. But the major version will not contain any new functionality, it will basically be like a milestone, they said, and what they might do at that point is have a lot of deprecations that they announced prior to throw them out and therefore create breaking changes. So that's that's the way they work with, really, they have that documented on their website, it's really interesting to read how they approach it, because I personally think that's, that's a tremendous way of doing it.
Michaela Light 56:50
Is and you know, and Lucia, I think they have a monthly release cycle from what I can remember, they have like a sprint, and every month, they will unless there was a security thing that needs to be addressed. Immediately, they just released new stuff every month on a release cycle. I talked to Patrick Quinn, who was involved in that at the time. And they're pretty good at rolling out new features. And then Adobe, of course, have a two year major release cycle. And they just basically do hot fixes for security issues in between or bug fixes. Well, they have a bit of a different philosophy there
Guust Nieuwenhuis 57:29
as well. Talking about Adobe, if they're releasing fixes to bug fixes and security vulnerabilities through hot fixes, then, of course, they shouldn't break existing functionality. I don't know. I'm not I'm not sure whether they do that on purpose. I think I think that sometimes happens, unfortunately. But but if they would do that I'm not I don't think they would do that on purpose. Go to
Michaela Light 58:02
commercial software and open source have two different versioning kind of patterns, right with the commercial software, you want people to pay for the update license. So you need to have a whole, you know, have to have useful things that are improved, right? Well, with open source, you're not getting paid for adding new features, you might as well just release them as you implement them to get feedback and in the interim out there, so it's a bit of a different animal. Speaking of Adobe and Lucy, does maths a run on both Adobe ColdFusion and Lucy ColdFusion. or
Guust Nieuwenhuis 58:34
Yes, the the only little note little mark I need to make is that I'm not 100% sure that everything works fine on Adobe 2021. One of the one of the one of the things I'm currently working on with masa is that I'm creating a set of environments that we can actually test against. And that's basically different versions of Lucy different versions of ACF, but different database engines as well. And I'm basically creating creating a module, I've gotten that
Michaela Light 59:10
metrics, what database do you work with?
Guust Nieuwenhuis 59:14
databases that are supported are MySQL, Postgres, Oracle, and SQL, SQL Server. So those are referred for database engines that are supported. And then Adobe ColdFusion and Lucy are the CIF mail engines. And it's basically I'm creating a toolbox of different to be able to combine the different engines with the different and different versions of the different engines with different databases. And then we'll be able to when we when we prepare a release, that we basically do testing against all those versions. That's and once I've got that ready, I'm planning on on I'm making that available to the community as well, so that people could use that. And then put, put a copy of their website, for example in there, and then also be able to test against different platforms, which is very useful if you're making a module or plugin that you want to share with, with the community, for example. Most likely, you don't need to test your website against different database, engines and CFML engines, but it allows you to take your website, have it on a certain version and database for CFML engine and Ember easily test whether it's gonna work if you switch CFML engine or database engine. So it allows for a lot of cool testing migrations and stuff like that to be done. Do
Michaela Light 1:00:55
you use command box for that? are you how are you setting up that test?
Guust Nieuwenhuis 1:01:01
I'm using the command box Docker image.
Michaela Light 1:01:04
Oh, cool. Okay.
Guust Nieuwenhuis 1:01:08
There's a couple of environments that basically spin up a container for the database and a container for safe well, and then see if Melton Taylor is using command box because of the power and the functionality around command box to easily switch CFML engine? Yep, it's,
Michaela Light 1:01:29
you know, I don't know if you've come across the tech Empire website where you can load up Docker images of your CMS or other framework and compare it for speed against other things, Brad wood, I interviewed Brad wood about that he kind of did a comparison of coldbox against a running on Lucia running on Adobe ColdFusion against other common frameworks. So
Guust Nieuwenhuis 1:01:55
that's interesting, is something I haven't heard about. But I should definitely, definitely look into that.
Michaela Light 1:02:00
Yeah, taking path, they set up this whole enormous set of Dockerized things and it's not just ColdFusion. It's all kinds of languages. And then you can do a search to see how quickly the, you know, how does WordPress compare to, you know, Master? Or how does it compare to content box or whatever on speed on a realistic speed test, you know, anyone can write a Hello World program that runs fast. But when you're running a content management system is doing real database access, and all kinds of other cool things. So I'll put the link to that in the show notes. It was episode 125 120. I mean. So what let's just talk a bit about as we wrap this episode up, what do you have planned in the future?
Guust Nieuwenhuis 1:02:51
Good question. We we're still working on a longer term roadmap. And we definitely would like to get some input from the community and for from users. For that what are people what's missing? What's what's needed? It could very well be that some of the things we look at some some of the things but we might not include it as part of the core but release it as separate plugins or modules as well. But I think the main focus currently is to, to work towards a decouple the ability to do decoupled websites, with masa, masa, CMS, headless is already possible nowadays, and decoupled would be a next step to be able to
Michaela Light 1:03:44
So for folks listening, what is the decoupled website or CMS mean?
Guust Nieuwenhuis 1:03:50
It basically means that your your front, your website and your story, if parts are completely separated from each other. And that way, using using the functionality in modern front end JavaScript frameworks nowadays, to to make content available offline and make content statically available to have that combined with an administrative side A, the administrator where you where you edit all the content and everything, but that that not every not everything needs to go through the whole workflow and then sorry, through the whole lifecycle, every single time that so those that's an area where we're looking at how far we want to go in that direction. At the same time, we and we are North we're very, very cloud focused. Everything we do we do or new yet nearly everything we do is with cloud. we're big believers of that. masa, CMS nowadays can run perfectly in the cloud. No problem with that. But I can see definitely some improvements coming to masa that are coming from from dead feedback and that experience that we have with clouds and to make it even run even smoother and even better in a cloud environment.
Michaela Light 1:05:26
What would a headless CMS mean?
Guust Nieuwenhuis 1:05:30
Headless means that the content nowadays that is available through API endpoints to be to be consumed as well. So a good example for that I think I mentioned something all the way at the start. You could use masa to manage your content, which eventually is displayed inside a mobile app. And then the mobile app would use the API endpoints that are available in our site to it's basically running mass out without the functionality of without the functionality of rendering the webpages, but but purely as a content management system that is consumed by other systems to get the content content out.
Michaela Light 1:06:31
So if folks want to find you online, Gus, what are the best ways to tree or new down?
Guust Nieuwenhuis 1:06:38
Of course, we have a website. Okay, Master cms.com. We're running our own website on on my site as well, of course. And besides that, so that's an important URL, Master cms.com. The code is hosted on GitHub. So if you go to github.com/master, CMS, that's, that's our, that's where you can find all our repositories. And then a third one, I should definitely mention our, by the way, on GitHub, we also use the discussions, and we use the issue tracker. So if you run into a bug posted there, let us know give us the information, even better. Fork the repository, fix it, create a pull request and give us back a pull request. And
Michaela Light 1:07:35
starting the fit of open source.
Guust Nieuwenhuis 1:07:36
Yeah, Indeed, indeed. We have discussions over there as well. So if people have questions where or if they have something to share, if they want to share website, they build in mouse, and they could do that over there as well. And then the third site that I definitely want to mention is our new documentation we're working on it's it's a long and slow progress. Because we basically need to write the documentation from the ground up for a CMS that exists for years already. And that the documentation you can find on Doc's dot get muscle.com. For those who are wondering, our documentation is not running on massiveness. And it's, there's a simple reason for that. And that is that anyone, documentation is publicly available through a repository on GitHub. And anyone who wants to contribute to the documentation can basically fork it, install it locally, run it locally at content with Markdown, and just push it up pull requests and contribute back to the to the community.
Michaela Light 1:08:53
Cool. Well, thanks so much for coming on the show. We'll put all those sites in the show notes at Tara tech.com. And I appreciate your all the work you're doing in the cold fusion community and with a mass or open source effort that you obviously you and your team have been putting a lot of work into. So thank you, ghost.
Guust Nieuwenhuis 1:09:12
Thank you for having me.