Today marks an especially great day for me as Presentation Engine, which is the name of the software that makes this website possible, has officially hit its 5.1 release. This marks a huge leap forward for the software from a front end and deployment standpoint. Read on for more details.
For starters, the admin portions of the website have been completely rewritten with React.js. There are no longer any dependencies upon Vue.js in Presentation Engine 5.1. Let me be clear, I really do like Vue.js a lot. But as the primary purpose of this application is to give me a platform with which I can keep my skills current, Vue.js is no longer an appropriate choice. The cold harsh reality is that React.js won the front end library development war. When I look at open position descriptions, I'm not seeing Vue.js but I am seeing quite a bit of React.js.
To be blunt, I believe the React.js implementation is an improvement. I had a consolidated editor component and an uploader component in the Vue.js version. The consolidated editor was a total pain in the ass to maintain as it basically handled editing posts, articles, the resume and system settings. The new React version splits this component into separate logical components. While this means that there is some duplicated bits of code here and there, the application as a whole is much easier to maintain.
Beyond that design change, once I got used to React, I personally found it much easier to use. That's because it's really quite simplistic and consistent. This also provided a number of other secondary benefits like for example I was able to reduce the complexity in the WebPack configuration for the application as well.
Finally, the other big change is that Presentation Engine now fully supports docker as a build and deployment mechanism. However those of you who wish to stick with a more traditional approach to build and deployment can breathe a sigh of relief as the application still officially supports that. In addition all of my production instances of Presentation Engine, including this website, are now running via docker containers.
Beyond those two items, the server side code remained relatively untouched. The fact is that the application has been working well and the service side code base has reached a pretty mature point in it's lifecycle as I've had a few years to iron out the kinks since porting it to ASP.NET Core.