Our Tech Stack++

I (Kevin) figured I'd publish a brief write-up on the technology stack that powers The Kartography—and the philosophy that birthed it...

The Philosophy

I believe that every good tech stack starts with the philosophy that undergirds it. Interesting as it always is to learn how someone did something, I tend to be equally curious to know why they've done it: What was the catalyst behind the drive to create it? What degree of deliberateness went into the decision-making?

Sometimes this turns out very darkly, of course: Mark Zuckerberg ostensibly created Facebook to help people connect with each other and make the world a better place, for example; yet, virtually every decision he makes seems to be entirely at odds with this mission.

Weird... Seems like his luck might change, should society one day decide that his actions speak louder than his words.

And, this is exactly why the philosophy behind a project matters to me: Why has a person built the thing that he or she built? The progression from the initial impetus ("it'd be really cool if X were a thing...") to the actual implementation ("...how would I go about making X a thing?") is a fascinating journey from the emotional realm to the logical; but, that first spark—that inaugural kernel of inspiration, before wishfulness cedes to ambition—never goes away: It remains the nucleus of the project—no matter how many layers of logic (techno- or otherwise) might eventually enshroud it.

Impetus

So, I had met this wonderful woman right around Thanksgiving; and, in mere weeks, I'd realized how deeply I cared for her. We were doing all these things and making all these memories together; but, even three months later when I began shopping for a ring—and five months later when I proposed to her—the majority of my family and friends had no idea I had even been seeing anyone, let alone that she was by now my future wife.

Athennia's situation was much the same: She and the kids were always busy; her family and friends were always busy; and, there just never seemed to be time to catch up with anyone—let alone with everyone.

We each had our "distant" loved ones—both in the sense of physical farawayness, as well as those who might be "just around the corner" but busy living their own respective lives—and it would be phenomenal to be able to let them share in our adventures...

Setting up a family blog seemed like a worthwhile undertaking!

Implementation

I spent two months kicking around the idea and thinking about how I'd do it—not because the task was tremendously difficult (I'm a software engineer: start to finish, it took about 15 minutes), but because I'm very deliberate about how I use the internet: My travels and endeavors have taught me that privacy is too precious to forfeit—whether out of casual carelessness, willful "care less"-ness, or simple convenience.

Naturally, I try to instill this awareness in the people around me—and my future wife and step-daughters are certainly no exception. But, I'm a lifelong proponent of individual liberty in all its forms: Privacy just happens to be one of the facets with which I most frequently spend time, hailing from a comp-sci background.

One of the ways this manifests is through my avid and exclusive use of free and open source software—that is, software that respects its users' privacy and freedom to audit, share, and modify the underlying code. I never settle for anything less, on any machine I own. I will not touch the likes of Microsoft Windows, or Facebook, or any of the myriad other popular offerings that are not only casually harmful to privacy (and individual liberty as a whole), but actively hostile and undeniably antithetical to it—as their every move repeatedly demonstrates to whomever chooses to pay attention.

So, much of the time that I spent brainstorming how to implement this blog went toward identifying a happy medium between harnessing a tech stack that would put our family firmly in control of our data while providing a user experience that our loved ones would actually enjoy.

The Technology

Hosting

As much as I'd love—and as trivial as it would've been—to spin up a server on my own hardware, our electricity seems to go out every time a giraffe farts in Africa. I've found that people generally enjoy websites that work all the time more than websites that work, say, 30% of the time; so, I decided to host the site on a VPS in DigitalOcean's New York data center.

Linux

It was a given that I'd power the server with some flavor of Linux; and, though I've never had much interest in running Ubuntu on any of my "daily-driver" desktops or laptops (I prefer Debian, Mint, and Manjaro), I've never reached for anything else in provisioning servers for almost two decades now. It just works, and it works very very well. <shrug>

Ghost

As for content management, I decided to give Ghost a try: I'd launched so many WordPress sites over the years, and had been reading about Ghost's meteoric rise for several years now. And, there's no denying the sleekness and usability that Ghost provides "out of the box."

The only two "shortcomings" I've perceived with Ghost thus far are the lack of an in-built commenting system (by which our readers may share their thoughts and well-wishes), and the lack of in-built mail-sending functionality—though this second one is the inevitable result of the fractious and chaotic world of email (with most of the major providers rejecting messages from new or unknown domains, due to the prevalence of spam).

Fortunately, these issues can both be resolved relatively easily: Comments can be integrated via popular services like Disqus (which I personally will not use, as it's proprietary), or a FOSS alternative such as Isso or Commento. Mail functionality can be similarly configured: Ghost's development team prioritizes and recommends Mailgun—which I've actually used in the past, and opted for this time around as well.

Want to Run a Blog Yourself?

I'm super passionate about all of this, and I'd love to help anyone who wants to try a DIY approach instead of settling for some walled-garden social media or blogging platform. If you're interested in launching a blog for yourself or your family but feel like it's too far outside your wheelhouse, don't hesitate to reach out for help—directly or through Athennia :)

Cheers!

~wintermute (Kevin)