The title is paraphrased from a quote that is incorrectly attributed to Abraham Lincoln:
To Cut Down a Tree in Five Minutes Spend Three Minutes Sharpening Your Axe
Anyway, what I think the quote is trying to say is, it’s okay for things to take time. That is, if you’re actively working on making the end result much better.
Since I am a world renowned champion of doing things the easy way™ but also doing things good enough™, I have found that the only reliable method for both those phrases to be true is if I take time to understand/study/figure out what the problem is 1.
Click here to jump to the tl;dr
Case study for this case to study (working title)
This site for instance -
- I want to document my writings/thoughts, and have a personal portfolio page.
- I do not want to spend too much time in fixing the content styling for each post.
- I do not want to write on Facebook/LinkedIn/Instagram posts/Substack/Medium/*insert some other extremely centralised site here* that controls most of the internet's traffic.
This above requirements left me with hosting on wordpress/wix/squarespace/webflow/bear/etc. instead. WordPress.com is great, and I used to have a blog on there from 2016, however the domain name isn’t personal (if you choose the free plan) and the posts - and by extention all the data within are saved in the XML format. This isn’t ideal since XML isn’t the best format to directly read and write to for the web - that would be Markdown.
I could go for the free Wordpress.org - And I did so in 2020 when I moved my web services gig, now defunct, and the blog on there. However, you would still need to host this somewhere, and normally that would be a cloud provider who you would have to pay. When I had my agency up, it was fine to pay for hosting, but now that it was closed, and I just wanted a smaller blog site, I wanted a free or near free alternative.
I could have a raspberry pi server running 24/7, but that was not appealing to me and there is also the constant time on of the pi. And so my list of requirements grew.
- I would like the maximum cost of free to host the blog/portfolio site
- I do not want to run a local server
The fix pt.1
I then found out that Vercel/Netlify/GitHub offered free hosting for static sites. This was great news! I fired up my trusty IDE and got to writing some barebones HTML and CSS. This worked extremely well (think really fast load times, no unnecessary bloat) when I only had a landing page, but this approach broke down when I wanted to begin blogging on the same page.
My initial solution involved writing in markdown2 first, converting this to html (via a plugin) and then cleaning up and standardising code. Also with each blog post, I would have to fiddle quite a bit with things to prevent things breaking. A lot of it due to the plugin doing the bare minimum to convert markdown to HTML, but also the fact that I was randomly duct taping stuff together to just have a usable website.
This caused in no small part, quite a bit of friction and meant I spent much less time writing and more time doing admin3.
The fix pt.2 an improvement
Most of the aforementioned hosters encourage the use of a static site generator to run a blog. I tried to not do that all this time because of reasons such as unwillingness, fear, belief in my way or the highway. But in the back of my mind, there was this constant voice: why am I doing this to myself?
So going back to the drawing board, I decided to implement frameworks for the CSS (so I wouldn’t have to fix another uncentered div myself) and a generator for the blog, which I could then link to the main landing page.
In my case this would be TailwindCSS and Hugo + Papermod. I could have saved a ton of headache earlier, by spending some time with the really well written documentation online. Many of the problems I did encounter were not unique to me, and could be fixed with a quick stop at Google or the provided documentation4.
TailwindCSS
Have great adoption, fantastic documentation, minimalist components that I like the style of very much. Added bonus, the classes are styled to be responsive.Hugo + Papermod
Hugo is super lightweight and and looked like it had a lot of people using it (which would make troubleshooting easier). Papermod is a theme for Hugo, which helped with initial setup and avoiding having to rummage around in themeing.This was great in theory, but routing the main page to the blog was still annoying. And there was still a ton of fixing I would manually have to do in order to make the landing page and the Hugo blog work well together. Also, at this point I was uploading the files to GitHub and hosting was handled by Cloudflare pages. I would have to have two repositories, which I felt was one too many.
- I would like just one repository to upload to
- I want the routing between the main page and blog to be seamless
the fix pt.3 this is the end surely
By now, I had spent about two weeks time just trying to get a blog up. This is not very good return on time invested. Being quite tired at this point and exasperated (mostly with myself), I decided to start (yet again) from scratch, but this time, pick a framework5, and use one of the static-site-generators that are closely integrated with it from the get go.
I ran a quick search to see what static site generators work well with Tailwind and picked one from the several lists available. My choice was Astro, because it was at the top of the rankings of one of the sites. At this point I really didn’t care. I picked a theme that looked nice (Astro nano) and ran with it.
Sure the language is unfamiliar to me (but sort of similar to JavaScript), and I had to do a lot of reading. But in about a week, I was able to fulfil all the requirements I had, and this post is now up.
what am I trying to say here?
I recognise that the example here is very specific to web development, but really this is for anything.
Starting a woodcutting project? perhaps it is good to spend some time reading up on the process involved to get to a final product. The pain of needing two electric drills (one to use with screws and another for drilling) when only one is on hand is all too real.
P.S I also recognise the fact that sometimes, it is better to fail quickly multiple times, so you can learn faster.
tl;dr
xxThe exception that proves the rule
If you are a serial procrastinator, perhaps avoid doing this. You might end up sharpening your axe for much longer than necessary.
Footnotes
-
This mostly rings true, but there are times when it is better to start doing and stop studying ↩
-
Why choose Markdown is an entire article in itself, and many other people have covered the topic better than I might. But the gist is this; open source, been around for ages, super simple syntax. ↩
-
This is also known in certain circles as the devil’s busywork ↩
-
Don’t write from scratch if you can avoid it guys. Avoid NIH syndrome. ↩
-
Why a framework first? I wanted to cut down on the amount of time I spent on the CSS and focus on getting to write a blog as quickly as possible. This is not strictly true, and other things may be more important for your use case. ↩