In my last post, I explained my issue with Pelican and that I'm constantly in "programmer mode" instead of "writing mode" when I create posts. It's one reason why posts have dropped off as of late. So I was on the search for a new blogging platform.
So I looked at a ton of options. I was impressed with the sheer number of choices I could use. I spent most of my time with Skrivr. I gained a huge appreciation for all the limitations that Calepin and Pancake put on their users for similar services. There was just so many options that I was a bit overwhelmed. Being that it is in beta and not well documented, there wasn't much to help me through that sense of drowning.
The next one I got my hands on was Ghost and I was instantly impressed. It's very young, but I loved how it worked. It already has a ton of support from community members and the dedicated members alike. Since it is young, it was missing some key items I want so I'm waiting. Database support is very surprising since originally it was going to use an abstraction layer for most all database options, they changed to a tool that only works with SQL choices. That was pretty disappointing as I have been learning MongoDB. Regardless, after some maturity, I'm pretty sure Ghost will be my next blogging platform.
Automation Overcomes Issues
What was bothering me about Pelican? The fact that it takes some major setup every time I want to do things. Let's assume I'm setting up a new computer...
So there is so much I have to do just to get things setup. Also, what if I'm on a computer that I cannot load Python or anything onto? I wanted to have something that I can simply make a post and BOOM it gets added. My build script didn't allow that. So I needed to offload the the automation elsewhere.
CodeShip to the Rescue
I'm not a programmer, but noticing all the things you could do with Continuous Integration tools I thought this could do exactly what I want. I initially started with Travis-CI but couldn't find any good way to deploy to my server. If I was using Heroku or Amazon S3, I could...but not if you have a personal server. I also didn't want to offer up any of my server access details in my .travis.yml file. But CodeShip came to the rescue. It runs the same tests that Travis does. They also provide a RSA key that makes SSH'ing into my server simple...as well as using an rsync command so that it only transfers the changed files so the transfer is super quick.
I'm really like what Codeship does and how they do it. I may integrate a few more tools with true tests with it. Again, this is pretty amazing.
So with that complete, I can post from almost anywhere. I can even write a post directly on Github, save it and it will automatically be published to my server. That takes care of any computer. I'm a little picky about how each post looks, though. I normally want to preview it a couple times before making it official, so I'm still figuring this one out. What I'm thinking I can do is create a small Flask app that takes the new post and processes it in a similar style that Pelican will process it... Due to the need for images as well, I'm not completely sure how I'm going to do this. Maybe a drafts branch...hmmmm...