Current options to deploy a Serverless blog
Updated: Mar 31, 2019
I love technology and learn whenever I can, on the job or not.
Went to work last evening for some usual stuff to be handled. The founder and I got into the discussion of our architecture and how we are trying to move away from spending time on IT management and concentrating on more time to serve the customers by using a fully serverless architecture which is run on AWS (Lambdas, S3, API Gateways and Step Functions). We talked about a couple of benefits of serverless for an hour or so. Talking about it kind of enticed me to come home and look for a serverless deployment of blog I could setup. So, I started scrounging the internet.
WordPress + Shifter + AWS S3
The first search result that comes up is by theburningmonk aka Yan Cui, an AWS Serverless HERO. He talks about serving WP pages using AWS S3, which is the usual suspect. It is amazingly fast but some of the features won't work, as suggested by Yan. To quote: "As you can imagine, some WordPress features don’t work anymore since the site is statically generated – comments, contact forms, search, etc." In this case, you would have to look for alternate options such as Google Forms, Disqus, etc. This kind of tears me down since it limits the basic capabilities of the blog such as commenting, etc.
Why not use service providers such as Shifter or any other service? I wanted to make the blog service independent. Earlier last year I used ServerPilot to host Grav, which was lightweight but not that great with the user experience for me. I was using ServerPilot to host and manage Grav but they removed the free plan and grandfathered the account, which for some reason stopped working a couple of weeks ago.
That being said, let move on to important things.
OpenSource Project + Zappa + AWS Lambda
The second option uses an opensource project based on the flask framework which sounds interesting but I am just a novice in python and at a total loss for flask framework. The downside is no theme support, which means I would have to do a lot of stuff to improve and add more functionality.
Integration with Markdown Editor
Ability to upload images for use in blog pages
Incorporate math formulas in LaTeX format
Integrates with authentication to allow multiple users
Plugin framework to easily extend and add new features
This option uses Zappa(handles horizontal scaling automatically), which looks like a rather new, to deploy the code to AWS Lambda with less effort. Could be used for other stuff. Making a note.
Might come back later if nothing works out.
HEXO (Open Source) + AWS S3
Next option found was on a post of Hackernoon, Hexo which looks like a good option. It's Open Source, well supported and a ton of plugins & themes to work with. Even though it is based on Nodejs(no hands on experience of moi).
It doesn’t look difficult to implement because the blog provides all the instructions required. A plus side is a number of themes which is handy because I care how my blog looks.
Stumbled upon an open source project aws-lambda-blog which turns me off when I read the first lines, it is not maintained anymore and the code is difficult to edit. Moving on. It refers to another project, Awly which is in Alpha, by the same person.
Chalice + AWS Lambda
The way it works sounds interesting. It provisions services as and when needed. It talks about the MVC model which kind of makes me go to sleep because I am looking for an easy to setup system. After reading a bit more, I found that it is someone's project, so not a way to go since, no support for the blog, everything would have to be done manually. I am not looking to manage code at this point.
While reading through the article I remember I need to buy a monitor for my MacBook Air so I can try to multitask. Other option would be to get another laptop, inspired by Mark Zuckerberg's portrayal in the social network. Enough wandering, back to it.
Hasura + Next.js + Zeit
Next on the list was a blog by Hasura employing their Instant Realtime GraphQL on Postgres, Next.js 8(React Framework) and ZEIT(A Serverless Platform) which looks like a solution provided by Hasura. #marketingalert. Hasura might be used for variety of applications too.
Not sure about this because most of these solutions might not be that helpful or optimum to use. Since, it is a marketing thing. Again we are looking for something easy to implement, use and extendible if possible. Nextjs does look interesting though. Their traffic seems to be increasing as well. Might learn Nextjs but would require to learn JS first so….
Came across this very specific guide, Serverless Stack - Learn to Build Full-Stack Apps with Serverless and React on AWS, for Full Stack Devs. Does look good but can't comment. Do add feedback if anyone has used or feels it is of help.
Serverless Django with Zappa and Aurora Serverless
This looks very detailed but we’ll know once we start working on this.
On a side note:
Me doing this is a bad idea since, I have an active project which I am putting on hold for this weekend because I am tired… Probably not the best thing to do this weekend but tired from the Sunburn Music festival featuring DJ Snake. So… Continuing.
Picked Up Hexo option and ran into some issues. Made a noob mistake of providing all files with 777 access and MacOS fucked me over. I will pick this up later as this seems the best option which matches my needs. Will definitely update once it is out.
For now, I have failed at this. So, setting up on Wix for now but will keep on exploring more options. Feel free to suggest more options which are for novice programmers. I can work with infrastructure better than I can code. So open to options.