5 min read

It's a New (JAMstack) World Baby

Steve Shupe 

[tl;dr -- I created a new faster website for the SSS Blog more-or-less on my own. This post talks about why and how. Those not interested in a 10,000-foot overview of the web development world should skip this and wait for the next post.]

Welcome to the new svelte SSS Blog.

Why a new blog, when the existing one works fine?

For the past six or seven years, I've been learning computer programming as a hobby. I started with Python and learned most of the basic programming paradigms. Python is outstanding in the area of data analysis and machine learning, so I learned a bit about that, too. I dabbled in R (which is totally focused on data analysis) and know a small amount of C (enough to know I don't want to deal with it).

With a lot of time on my hands, I branched into other languages, just out of curiousity. I dabbled in "LISP" languages like Steel Bank Common Lisp and Clojure. The LISP languages have an entirely different style of programming, which I found very cool. Unfortunately, the ecosystem surrounding those languages is not user-friendly -- it seems you have to know the languages in order to learn them (that's even true for Racket, supposedly a "teaching" language) Beginners find it hard to make their way very far (at least I did). I also took up the Julia language, which is similar to Python but faster and more comprehensive (its programming style is partly functional, like Clojure). Julia is a sweet language, it's easy for beginners to pick it up, and the community is friendly. I used it to make good headway in a few online coding-challenge sites (Project Euler and CodeWars).

More recently, I decided to start learning more web-centric "front end" languages and frameworks. I've always put off learning HTML, CSS, and JavaScript (the three base components of the web) because they seemed clunky and obtuse. But I've realized that whereas ten years ago the desktop was everything, now the web (and mobile apps) are dominant.

HTML (Hypertext Markup Language) is the language in which web pages are written; a browser like Chrome translates the HTML into the web page that you see in the browser. You can click "Control-U" on a web page to see the underlying HTML. CSS is a sort-of-language that applies styles like colors and fonts to the HTML page. JavaScript is a "real" programming language that a browser can run in conjuction with a web page. JavaScript allows a web page to be dynamic and respond to user inputs.

What I've found is that my original belief about the clunkiness and obtuseness (is that even a word?) of HTML, CSS, and JavaScript was, if anything, an underestimate. The paragraph above should give insight into part of the problem -- there are three separate tools that have to combine to create web pages. To fight that clunkiness, a raft of different "frameworks" have developed as a way to simplify the task of developing web pages. But these frameworks can't undo the underlying complexity of HTML, CSS, and JavaScript, and each of those frameworks has its own unique, complicated syntax and structures that you have to learn.The entire web development landscape is chopped up and confusing. It's taken me some time to find my way through this landscape, and the pace has been frustratingly slow.

Another motivation of mine was to free the blog from WordPress. I've always found WordPress (which I use for the existing SSS Blog) to be overkill for what I need. It's a wonderful framework for folks with few programming or technical skills, especially those who want to build out a more complex set of web pages. But that comes with a cost in terms of size and speed. Since my blog is mostly words and pictures, it doesn't take a lot of complexity to bring it into being. I also wanted to learn more about the "guts" of web development, and you can't get that from WordPress.

More and more web sites are turning away from the traditional web paradigm (which requires databases and servers that literally build new web sites and pages anew each time they are requested) to a new one called the JAMstack. The idea behind the JAMstack is to generate websites and pages that are static -- that is, they are rendered in advance, not built anew each time someone requests them. This makes the sites much faster. Frameworks that work with the JAMstack also allow for the creation of content in "Markdown," a framework that can provide much of what clunky old HTML does with a much cleaner, simpler syntax. You should find this site to be faster than the old one.

I'm using a program/framework called Gridsome to create this new static site. Gridsome comes with a number of "themes" that take away a lot of the pain of building a site from scratch, while allowing a user to change the site to his or her liking. I'm also using Tailwind CSS for the styling of the blog. As you can see from the address bar, the new is hosted on a subdomain of my existing domain name newblog.ssshupe.com. For the foreseeable future, I'll be posting content on both the old and new site, as the longevity of Gridsome (or my continued desire to wrestle with it, as I've had to do) is uncertain.

One negative change you'll note has to do with comments. WordPress had its own comment system baked in. I considered using the Disqus comment system, which is widely used by many serious publishers (including, I think, by my former local paper, the Press Democrat). I'd use it for this site, but users have to sign up to comment, and I don't know what Disqus does with that information. Disqus also shows ads, which I don't want to impose on readers. I'm also planning to implement a system to allow folks to subscribe to (or at least follow) the new blog. I'm still sussing through how to get a comment and subscription system up and running on this site, so stay tuned for that.

Other than the change in form, you'll continue to see the same kind of content as on the existing SSS Blog. And pictures, of course, like these:

Suzie and our New Dog

Suzie and our New Dog

San Francisco Skyline and Berkeley Pier from the Marina

SF Skyline from Berkeley Marina

I hope you enjoy the new site!