Ven
1 Oct
How I built this blog
Problem
Small businesses today struggle with the requirement of having a website that is simple to maintain, affordable, and quickly changeable. Everyone immediately thinks of Wordpress as a solution when the aforementioned conditions are taken into account. It's one of the most popular content management systems, which is free. In many cases, paid themes and extensions make it easy for website developers to create a website without coding knowledge just by dragging and dropping blocks around.
Since Wordpress has been around for about a decade, there are a lot of organizations that specialize in developing it, so if a user lacks the time or expertise to create a custom solution, that is not an issue.
However I do find Wordpress not as user-friendly as most would think and not solving all the challenges in modern web development and UX. Its extremely heavy codebase and overwhelming amount of plugins and settings, makes my common sense tingling. Another challenge is the security issue - Wordpress is exposed to a large number of hacker attacks, since it's so popular, and if you're not careful with software updates you may end up with a server crash or an infected website.
So how can we deal with that?
Solution
For a couple years now I've been developing applications in Vue. It's a lightweight framework that doesn't feel that heavy as Angular, and (for me) is more approachable than React where everything is a function (personally I don't like that).
There is a framework that works on top of Vue called Nuxt, that gives us a tool of SSR (Server-Side Rendering), and dev-friendly solutions with like routing. Believe me, once your theme is poorly configured or you install too many plugins on your Wordpress website it may be even too heavy to load on the newest devices with fiber-optic internet..
At this point you are probably still weighing pros and cons of both platforms. I bet that simple content management is on your requirements list. Great news! What also comes with Nuxt is a Nuxt Content - a brilliant module that acts like a headless CMS. Basically it fetches files in yaml, md, json (you name it) through a MongoDB like api, and creates a 'fake' backend which would usually take time (and money!) to make.
Having that in mind I came up with an idea. What if I create an application:
- that is a static Nuxt application
- where end-user (client) will make their changes in easy to learn md/yaml files
- that is hosted on a basic server
- where repository is kept on Github
- where push to repository updates files on FTP server
I believe that it could be a perfect solution for a small company (e.g. restaurant where only editable elements could be menu or contact), and it would require only one (frontend) developer to create one.
Conclusion
Nuxt/Content with Github should feel like a right choice. There is however a downside where users do have to be trained with markdown and yaml editing. I do find that much easier then Wordpress usage though. From my experience - it takes one to two short training sessions to get it right.