On keeping it simple.
It's no coincidence I decided to write this post just after moving my site to Ghost. It's been around 18 months since I last wrote anything. Every month I say to my self 'I must write a blog post' and then never do, so what more of a trope-y, developer-esque, way to get myself to write a post than to make a drastic change to my site?!
On my journey (that lasted way too long) to rebuild my new site, I'd Google'd all the 'best new 2020' ways to build a blog and was in awe of all the shiny tools I could use.
Finding things out the hard way
I'd toyed with Gatsby and Gridsome previously, so I figured I could try again with these frameworks, and all their upgrades since last time. Vue.js is my jam so I gave Gridsome a spin as I began to get into the build things began to feel slow, unintuitive. I was spending more time in the docs trying to figure out how to add an image to the page than actually having something to show, figuring out how to do anything in GraphQL felt frustrating, so I quit.
Next I thought I'd try VuePress, I've used it before for documentation sites, and to be honest it wasn't half bad, there is a blog plugin/package so how hard could this be. After getting set up and starting to make some progress, those feelings of being slow and unintuitive found their way back, so much configuration, not enough progress, frustrating, so I quit, again.
The Revelation
Then after a long hard look in the mirror, ok, ok, it was just my screen. I stared at my screen. I had a 'fog lifting' moment; stop making things hard for yourself! Blogs and CMSs are a solved problem, why reinvent the wheel, especially when I have no readers anyway!
So I did. Within a few hours I'd signed up to Ghost Pro, moved my content and assets. A little later I made the DNS switch, Ghost Pro had issued me an SSL certificate and I was done. I now have a blog, where I don't have to worry about hosting, backed by an amazing team and I can keep it simple and focus on actually writing something.
Yeah, yeah, yeah, I hear you at the back muttering to yourself; 'well he clearly doesn't know JavaScript', 'he obviously is not a Vue developer'. You'd be wrong, I know JavaScript, I've worked with Vue.js for years but, maybe you're right, I don't use JavaScript every day, not like PHP.
There are still a load of optimisations I want to make to the site, but I have something which is more (and better) than I had yesterday. It's easy to fall into the trap of using the latest and greatest tech but the latest and greatest is useless if you never ship.
Final Thoughts
I'm a product developer, my goal is to ship, that's all that matters. I should have known that I was getting trapped by the new and shiny.
It's ok to buy and not build.
It's too easy, as a developer, to want to build everything, always try to keep in mind that everything you build comes at a cost, time, maintenance etc. If you can keep things simple then do it!
You can always improve and iterate, ship something now and improve as you go.
Learning something new can take its toll, it takes time and mental energy, so make things easier for yourself; which also reminds me of an article by a friend of mine David Thorpe, On Being Average.