This is about what made the website you're currently looking at - a GhostCMS publishing platform back-end supporting a static web application based on a JavaScript, API and Markup (Jamstack) solution stack.


Back End

Source code for GhostCMS, MariaDB, Nginx, Let's Encrypt and Certbot is engineered into Docker images on a local developer device and versioned in a back-end GitHub repo.

This infrastructure hosts content and images used by the front-end. It is deployed on DigitalOcean as a cloud Droplet. Cron scripts back up content to local and remote hosts.

An Author role edits content over a TLS connection administers the platform securely over a TLS connection, and edits trigger an automatic front-end rebuild and release on Netlify.

Front End

Source code for the static web application is developed with GatsbyJS, ReactJS, LunrJS, Yarn and Node on a local developer device, and versioned in a front-end GitHub repo.

Repo updates trigger a CI/CD pipeline which rebuilds and publishes a new release of the app on Netlify cloud. Every build uses GraphQL to retrieve content from the back-end CMS.

The result is a decoupled, static-first, progressively enhanced, secure, and headless static web application that currently features:

  • A 100% client-side search engine
  • A dark/light toggle mode
  • Hierarchical tags
  • Syntax highlighting for code snippets

Role: Personal

Location: Canby, Oregon

Year: 2019 to present