About > Site

What's with the name?

I would like to say that it was divine revelation, but the name is actually the result of a process of trial and error. Most of the domain names that originally came to mind were already registered. Finally, "SonSpring" was decided upon because it symbolizes glorifying Christ as our wellspring of life.

SonSpring pixel font

Plus, I was really into hand drawing pixel fonts back then. Something about this one felt right. I liked how the letterforms enforced capitalization of S characters within the logo. And the dot over the i seemed to be carved from negative space under the r.


Cloud computing technology is increasingly considered a commodity. Yet when it comes to choosing a company to host your sites, the old adage still rings true.

"You get what you pay for."

I have tried a myriad of hosting providers, from low-budget to high-end, each with mixed results.

Now I host all my sites with DreamHost. I have found their service strikes a good balance between features and ease of use, all without breaking the bank. They offer…

  • Unlimited bandwidth
  • Unlimited storage
  • https certificates
  • multi-factor security

Content management

In past iterations, this site has run on Textpattern and Drupal respectively. Both are fine sytems in their own right, but I grew tired of keeping up with various CMS updates and PHP deprecations.

The current version of this site was built using the static site generator Eleventy, which runs on Node.

  • Page templating is handled via Nunjucks.

  • Content is authored in Markdown.

  • HTML Minifier compresses all of my markup into the smallest possible payload.

I use Sass to write my styles, with some extras.

  • Autoprefixer handles browser compatibility flags like -moz-tab-size, etc.

  • PurgeCSS compares HTML throughout the site, and removes unused CSS selectors.

When I am ready to deploy, everything compiles down nicely to flat HTML and CSS files.

NPM packages

These are the devDependencies used to generate this site.

Refer to the NPM docs to read more about installing packages.

	"devDependencies": {
		"@11ty/eleventy": "^2.0.1",
		"@11ty/eleventy-navigation": "^0.3.5",
		"@11ty/eleventy-plugin-rss": "^1.2.0",
		"@11ty/eleventy-plugin-syntaxhighlight": "^5.0.0",
		"autoprefixer": "^10.4.19",
		"browserslist": "^4.23.0",
		"cross-env": "^7.0.3",
		"eleventy-plugin-lazyimages": "^2.1.2",
		"eslint": "^9.2.0",
		"eslint-config-prettier": "^9.1.0",
		"eslint-plugin-prettier": "^5.1.3",
		"html-minifier-terser": "^7.2.0",
		"lint-staged": "^15.2.2",
		"luxon": "^3.4.4",
		"markdown-it": "^14.1.0",
		"md5": "^2.3.0",
		"npm-run-all": "^4.1.5",
		"postcss": "^8.4.38",
		"postcss-cli": "^11.0.0",
		"prettier": "^3.2.5",
		"purgecss": "^6.0.0",
		"rimraf": "^5.0.5",
		"sass": "^1.76.0",
		"simple-git-hooks": "^2.11.1",
		"terser": "^5.31.0"