Zero to Live

Aaron Ross

Aaron Ross

Software Engineer / Web Developer @ EyeCue Lab

Creating a website/blog and hosting it has never been faster or easier, but with so many options how should one decide? Here are some of my key considerations when creating this site:

Content Creation#

The well known saying attributed to Bill Gates has proven to be quite accurate throughout the ever changing landscape of media and technology over the last 25 (yikes!) years and since the entire point of a blog is the content then this is where design should start.

As a software developer important features for me are and easy developer experience and the ability to easily include the things that are important to me and (potentially) my audience like code (or even full components) or ease of integration with a git based workflow. This lead me naturally to wanting to use Markdown (more specifically MDX) as the markup language for my blog posts.

For those unfamiliar with mdx is allows one to combine jsx and markdown in the same format. So you can write some mdx like this:

#### A Heading For Jsx Content
<div style={{ padding: '2rem', background: '#f4f4' }}>
<p style={{ color: 'black' }}>you got <em>jsx</em> in my <strong>markdown</strong></p>
<p style={{ color: 'brown' }}>No, you got <em>markdown</em> in my <strong>jsx</strong></p>
</div>

and it will look like this:

A Heading For Jsx Content#

you got jsx in my markdown

No, you got markdown in my jsx

But we can take mdx a step further and actually import React components right into our mdx:

import MDXButton from '../src/components/MDXButton'
#### A Heading for React component
<div style={{ padding: '2rem', background: '#f4f4' }}>
<MDXButton />
</div>

and get a result like:

๐Ÿ™„ Click Me ๐Ÿ™„

The final piece to consider in content creation is if I need a CMS of some sort. However, the technical nature of posts here, the desire to import my react components directly into blog posts and the fact that I will be the sole maintainer led me to reject a git workflow based headless cms approach in favor of just writing posts in my ide and committing the results to my github repository. With that said, I took a good long look at netlifyCMS and if I ever add additional contributors to this site or perhaps as a future blog post I will consider them strongly again.

Build Chain#

After a few different experiments with NextJs and Gatsby as server side or static site generation for a personal portfolio and blog site I've decided to use Docusaurus v2 as my static site generator of choice.

While all of them (also shout out to Jekyll and GitBook) would allow me to work in react and to use .mdx in creating my blog posts I was swayed by the minimal complexity of setting up a docusaurus site and the baked in support it should have throughout and beyond alpha since it is used and maintained by Facebook.

I'm not going to go though the pros and cons of each of these here but they are all probably good choices, depending on your situation. I'll let you research your project.

Hosting#

There are many ways and places to host static sites these days and a lot of terms end up getting thrown around like CDN (or edge server), ๐Ÿ”ฅ๐Ÿ”ฅblazing fast๐Ÿ”ฅ๐Ÿ”ฅ, JAMStack or many others when researching in this area, however the big players tend to be:

Which, again, all offer different pros and cons, but I decided for now to go with Netlify for hosting this page as they have github integration, automatic deployment https availability, deploys on push, previews of deploys on pull requests and lots of other features. (To be honest vercel and netlify have extremely similar offerings so choosing between the two is really personal preference).

However, I mostly used this service because I was quickly able to purchase a domain I wanted ashmortar.io and get this blog build and deployed in a single day. I plan to move the deployment for this site to github pages with a step in between via Github Actions to perform the actual build step and any testing that introduce for other non-blog pages.

Wrap up#

Once getting my initial site up and deployed to Vercel I also added custom styling and the splash page so as to move away from the default style. Also look out for upcoming blogs involving synthesizers (specifically an incredible Moog Minitaur that an amazing friend gifted me), Raspberry Pi(s), trail cams, solar power and e-ink displays

...though not necessarily all together and not necessarily in that order.