The ABCs of the web

We like to say it’s easy to build a website, and to build it on top of WordPress. Maybe it is, maybe it isn’t. But for just about anyone, it can be intimidating when you’re just digging in. You’ve got to learn your ABCs before you can tell a great story. On the web — especially as it gets more complicated — there’s a lot to learn to build and maintain a modern website.

I wanted to change my primary URL, and also setup HTTPS on my new VPS.

So, I bought an SSL cert that required I add a TXT record to get a verification email. The domain was new so I needed Google MX records added to receive the new email. Ah, but I also changed the DNS provider where I put those records. Thankfully, the TTL for new records was short and I got squared away so I could submit a CSR and get the SSL. I had to make sure to choose a CDN provider to support SSL too, and it happened to be the same place that handles my DNS now. This service also GZIP compresses as much as it can.

The domain is square now so I SSH’d into my new VPS to set a few things straight. For one, I needed to edit the MySQL DB with WP-CLI to search and replace the new URL. But I accidentally forgot to exclude the GUIDs so my RSS went haywire.

My VC is kinda jacked for deployment purposes, though I’m learning to handle dependencies and repo management with a JSON file via Composer. But I’ll still need to deploy my Git repo with something like Dploy.io. For now I had to cowboy up and SCP some new stuff to the server, since it doesn’t have (bad practice) FTP. Then I noticed I screwed something up, so I used Vi to edit it live, like a madman.

My new CDN provider not only delivers but also caches HTML, CSS, and JS. That’s on top of what JS-based Grunt does on the theme side, where my front-end JS is concatenated and minified, and my Sass is pre-processed to CSS. Grunt is also managed with a JSON config file, where I can do these things and more: like linting, combing, .pot generation, and auto-prefixing my Sass. I can even generate RTL-specific CSS if I need to. I’m told that hardly scratches the surface still.

In order to do these things, I work locally with VVV, so these scripts can run. That lets met setup custom LEMP stacks to my heart’s content, stored in a www folder. I can even do auto-site generation with one of many custom shell scripts, though you have to watch out if the project structure isn’t the same as yours. VVV supports WP-CLI too, so that’s nice.

Now the live site is HTTPS instead of HTTP, and because of new tools and modern browsers (that support stuff like SPDY and SVG) my website has fewer HTTP requests, and weighs less than a single MB.

Also, I better not forget to 301 the old URLs to the new URLs with the domain change; that’s easy with nginx and will help me keep my SEO.

Of course, these things are happening while building my site with my CMS of choice, which is also the one largely considered the easiest to work with: WP. And I’m not even close to done. I have so much to learn, APIs to explore, and mistakes to make.


The moral of this silly story, is that building and maintaining websites is still pretty complicated. In fact, I think it may be more complicated than ever. I always feel like a kid learning his ABCs, but that shouldn’t stop us. Don’t get intimidated. Dig in. Eventually we learn to string a few sentences together, or even a story.