Sunday, January 16, 2022

January 16, 2022

👋
I’m trying the idea of morning pages, where I write three pages in the morning of whatever’s on my mind. It’s mostly for me, but I’m publishing them too because why not.

Good morning! I’m sitting in bed in 7 ºF Lexington, MA.

How did yesterday’s to-do list go?

Good! It was fairly light (because it contained mostly fun stuff, like improving this blog), but I felt good about what I got done.

Mostly, I felt good because I felt more confident in the decision to move a client towards using Shopify instead of a custom-built online store that I was building for them.

I think I made the mistake of thinking that I could do it “better” (more aligned with their specific needs), instead of just picking up Shopify and seeing that it has almost anything you’d ever need built out already. It might feel a bit pricey, $29/month, but the amount of development time it will save makes it completely financially worth it.

I think that I might’ve been scared that using off-the-shelf software makes me less of a developer, or that they wouldn’t need me if they were just using something that anyone could set up.

But I think I want to see whether I can be general “tech support” for small businesses. Sometimes that means writing code, but sometimes that means knowing what tools to use and how to connect them in order to take the load of technology stuff off of the business. I want it to be a longer-term relationship, where they can email me whenever they need help with something tech-related, instead of just building a website once.

Using Ghost to build a regular website

I’m building out a “brochure”-like website for the same client, which I was doing using React and Remix. However, I built a prototype of recreating the website in Ghost (the blogging software that powers this blog) a couple days ago, and I think I really like it.

What I love most about Ghost is the flexibility that comes out of the box — the client can create new pages that have all sorts of images, files, and embedded content, and then add that page to the navigation, all without any code changes. For small business websites that are 90% text documents, I think it’s quite a good fit.

There’s three kinds of pages that I can make using Ghost:

  • Rich text pages
    • These are pages that are just rich text (text, images, files, etc), styled nicely to fit with the style of the website.
  • Augmented rich text pages
    • These are also pages that are just rich text, but I can add code that adds some sort of interactive functionality (a contact form, a live calendar, etc)
  • Custom pages
    • These are pages where I rip out the normal “blog post” look, and completely rearrange the page to have a custom design.

With Ghost, rich text pages are super easy. I can also augment certain pages by editing the custom theme I create for the client (I’m bending the definition of a “theme” for this, because it’s really more like editing the HTML/CSS for the website directly).

Custom pages are also possible (mostly by rearranging things with clever JavaScript DOM manipulations), but it’d be best to keep them to only pages where we want some extra oomph: not only do they take more time to code up, but they usually also end up being less flexible because what the website shows isn’t one-to-one with what the client types in the text editor. Making changes might require me to come in and tweak some of the code.

I also love the simplicity of Ghost: I can throw it up on a $6/month DigitalOcean droplet, and it seems like that’ll be plenty for most small-to-medium traffic websites.

Plus, Ghost has membership and newsletter functionality built in, so if the client ever wants to start collecting email addresses and sending updates to them, it’s all within the same admin interface.

But overall, it comes down to a feeling that I can’t quite quantify: something about throwing Ghost up on a small server feels simple and stable. There’s no complicated static site builders or build pipeline — we’re just putting good-looking text documents on the internet.

Today’s to-do list

I’ll list it here to keep myself accountable. Just a couple quick things I want to do today: