After months of pondering, I went with the Django Wagtail CMS. I'm using StreamFields over RichTextFields mainly because the former makes it easier to insert blocks of formatted code (via the CodeBlock plugin).
I really liked the idea of a totally static site, so went with Wagtail-netlify to achieve this.
I've pushed the entire site to github, including the sqlite db. Perhaps a next step is to use a github Action to automate the push of updates to Netlify.
Frontend wise, I'm using Bootstrap4 for reasons of familiarity. I'm using BootSwatch's Darkly theme as it most closely resembles the Darcula theme I spent the majority of the day buried in. I'm using Pycharm to develop the site.
import pkg_resources
installed_packages = [d.project_name for d in pkg_resources.working_set]
anyascii
appdirs
appnope
argon2-cffi
arrow
asgiref
backcall
beautifulsoup4
bibtexparser
boto3
botocore
certifi
cffi
chardet
cryptography
decorator
Django
django-appconf
django-bakery
django-compressor
django-debug-toolbar
django-environ
django-extensions
django-filter
django-model-utils
django-modelcluster
django-snippet-image
django-stubs
django-taggit
django-treebeard
djangorestframework
draftjs-exporter
et-xmlfile
factory-boy
fake-useragent
Faker
free-proxy
fs
future
html5lib
idna
ipdb
ipython
ipython-genutils
jdcal
jedi
jmespath
l18n
lxml
mypy
mypy-extensions
openpyxl
parso
pexpect
pickleshare
Pillow
pip
prompt-toolkit
ptyprocess
pycparser
Pygments
pyOpenSSL
pyparsing
PySocks
python-dateutil
python-dotenv
python-slugify
pytz
rcssmin
requests
rjsmin
s3transfer
scholarly
selenium
setuptools
six
snippet-image
soupsieve
sqlparse
stem
tablib
text-unidecode
traitlets
typed-ast
typing-extensions
Unidecode
urllib3
wagtail
wagtail-bakery
wagtail-metadata
wagtailcodeblock
wagtailnetlify
Wand
wcwidth
webencodings
Werkzeug
whitenoise
Willow
xlrd
XlsxWriter
xlwt