The question from the topic.. is not easy to answer.
Currently I use Pelican to generate my blog but recently I have realized that it's inconvenient for me. Let's point out what I need to do to write a single blog post.
I need to have a local repository with all my files. It's one time operation (
git pull) but should be mentioned on this list.
To start writing I need to create a new file and add title, date, category, etc. It looks like this:
``` Title: What is the best blogging platform? Date: 2017-05-18 19:22:13 Category: Reviews Tags: wordpress, ghost, jekyll, pelican Slug: what-is-the-best-blogging-platform Lang: en ```
I can start writing. I use PyCharm for this because I didn't find a good markdown editor for Linux. I have some basic preview of my note but it doesn't look good and for example it doesn't show images. When I want to add an image to my post I need to copy it to directory with images and add a path manually.
To see my note I need to run Pelican development server and open my blog in the browser. At this stage I can see what my blog post looks like.
Let's say that I want to publish my post. I need to kill development server, generate blog once again and run a command to compile my blog. I don't have a lot of content so it takes 5 seconds.
I have to run a command to upload all my files to AWS S3 bucket. It usually takes 5-10 seconds.
I have to log in to AWS and invalidate Cloudfront cache.
I want to save my work so I need to commit changes to my repository and push changes to GitHub account.
All those steps were.. sufficient for me. Until today.
I realized that writing a notes is not as pleasant as it should because of this how I need to write them.
I started searching for the better alternative. I made a list with what I need from blog platform/software.
- It should be simple.
- It should allow to use Markdown to write posts.
- It should allow me to use tags.
- It should allow me to generate sitemap and RSS.
- Creating themes should be simple.
- It should allow to generate a backup.
- I want to know that it's my blog and everything belongs to me.
- It should have a live preview when I’m writing a post.
- It should allow me to insert images easier than writing path manually.
- It should allow me to generate AMP pages.
- It shouldn't cost too much. (I have about 70 posts and my blog is not visited very often. I don't make money on it. It doesn't make sense for me to pay very big price to create/host it.)
- If I have to host it I don't want to spend too much time on it.
- It should be possible to use my custom domain.
- It should be possible to use SSL.
- It should be able to use Disqus comment system.
So.. what choice do we have?
Wordpress! I can’t believe I’m saying that but still it's probably the most popular blogging platform. I used it a long time ago and I don't want to do it again. First, it's too big for my needs. I don't need all those plugins, I don't want to use WYSYWIG and HTML for my posts. I don't want host it on my own server. I can use hosted version from wordpress.com but it's limited version (you can't install plugins for example) and still it's not what I want. For me Wordpress is big, slow, not very secure... and written in PHP ;-) Let's forget about it.
What's next? Maybe Blogger? I though that Google still develops its own blogging platform.. but currently it looks like an abandoned and unmaintained system. It's big, ugly and uses HTML. I don't want to write a theme for Blogger. I don't feel like I can use it because Google can discontinue work on it in the near future.
Medium. It looks great, it's fast, it's a pleasure to write a post using it but.. I don't feel like it's my content. I want to have my own small blog, not a huge community. I've read recently about some idea of payments for reading posts (?!) or something like that. It's not for me.
Tumblr? It's simple but I don't like it. I can create a blog there with funny images and gifs but I cannot imagine writing my blog there.
Squarespace? Wix? Weebly? Svbtle? Postach? Other blogging platforms? The one good thing is I can simply create an account and start blogging but I want to have more control over my content. I want to know and show to users that it's mine. What if after one year one of those platforms decides to close it? What if someone decides that my content broke the rules and closes my blog? How can I easily export all my content with all comments? Would it be easy to import everything to another blogging platform? If I have access to a copy of all my posts I can add them manually but what about comments? Would it be possible to migrate Medium or Blogger comments to another system? I don't think so. If some service gives me the word that it will exist forever and work the way I wanted to, then I can use it but that won't happen.
Ghost. I like it very much. It's the best blogging platform I’ve ever seen. It's simple, clean, uses Markdown, allows to easily include images, creating a theme is not hard. So why won't I use it? I don't want to host it. It's not hard, I’ve done it many times but I don't have time to maintain server only for Ghost blog. Updating the system, checking if it's secure, updating Ghost, creating backups, making a good configuration to protect from DDOS attacks or at least from huge traffic. It's boring. It's better for me to spend that time on writing a new post or working on my projects. The time when it was funny has passed. I want to write a note and forget about it. It should work, without any issues. There is also a possibility to use a hosted Ghost. All updates, security issues and other things are done by Ghost team. I can create a copy of all my content through admin panel, setup my own Ghost instance and import it. I can also write a simple script and convert the backup file (JSON) to another format like Markdown files. It's the most ideal option except for pricing. Minimum price for a blog is $29 per month. You pay $29 and you don't have to care about anything. Additionally, you are helping with Ghost development. For some time I was inclined towards this option but then I realized it's too expensive for me. I mean, I can pay $29 monthly but is it worth it for me? Is it worth paying $29 for my personal blog when it's possible that 90% of traffic comes from bots? Monthly it's not a big price but if I calculate price for a year, two years, ten years.. nope. It's a bad idea. I really like Ghost and I would really like to help with its slow development but it's much too expensive.
There is also one common problem for all blog software. Themes. I can find a theme (usually paid) which looks OK but I didn't find an ideal theme for me. There is always something missing or something I want to change.
I've returned to the same place - static blog generators. It looks like this is the best for me. Using static site generators I can do whatever I want. Most of the points from my list are met, except for writing posts. Let's say the truth. There is no problem hosting it. I've configured my domain, SSL, S3 and Cloudfront and I don't need to change that. I can configure generating and deploying my blog automatically on every change committed to Github, it's not a problem. I like that I have a full control over my content, theme and I can host my blog everywhere. It's fast, small, clean. One thing is still unresolved. Writing posts.
I don’t like using Pycharm for writing a Markdown. I want to have a Markdown editor which can show me a good preview of my note with images and code highlighting. It should contain menu with all markdown actions - I don't remember everything and sometimes it's easier to click an icon or use shortcut to insert link or image. This editor should allow me to specify where I store images or allow to run it in my content directory and use it as a root directory (if I write
/images/2017/image.jpg it should display image from
./images/2017/image.jpg). I tried to find good Markdown editor.. without success.
What now? I don't want to spend more time searching for a good place for my blog posts. I've decided to stick with static site generators. I want to try to find something better than Pelican. It seems to me that Jekyll is better planned, has better documentation and looks like a more mature software but.. it's written in Ruby. I'm not a Ruby developer. Another problem with static site generators is that sometimes I need to write a plugin. Do I want to write plugins in Ruby? What about Hexo? It looks like good piece of software and it would be easier for me to write plugins in JS instead of Ruby but.. I'm not sure which is the best. Should I even care about which software is used to generate my blog? All my posts are in Markdown. I can change the blog generator in the future.
What's next? My plan is to:
- Decide which static generator I should use.
- Write missing plugins.
- Improve my theme.
- Create automatic deployment and cache invalidation.
- Find a good markdown editor.
When I finish my plan, I will write about it in the next post.
How about you? What's your opinion? Do you use static blog generators? Which one? What's your opinion on blogging software? Do you know some good Markdown editor which works on Fedora system (without converting .deb to .rpm ;-))? What do you use for automatic deployment?