Skip to content


Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?

Latest commit


Failed to load latest commit information.
Latest commit message
Commit time

This is the repo for the Future of Coding website.

The website is a mix of personal logs and projects by Steve Krouse, episode pages for the Future of Coding podcast, and some pages about the Future of Coding community. Steve has turned over the website to community ownership, so things are in flux while we decided what should go where. Still, if you see any typos or have any suggestions, issues and PRs are welcome.

Steve also kept a number of "virtual webpages" when a GitHub issue is a better format for them than a regular webpage. These might be of interest if you are following along with his research work.

Admin stuff

The domain is registered and DNS'd with Hover. Ivan is the only person who has access to the account (TODO: should probably be shared, to reduce bus factor).

Mariano runs the history., links., newsletter., search., and people. subdomains. Currently that stuff is hosted on a Digital Ocean server. I should probably see if he wants to document some of the details here.

The podcast is hosted on OmnyStudio. Don't love that, will probably move it elsewhere.

Developing notes

Remove large media files locally

First run:

git config core.sparsecheckout true

Then put the following into .git/info/sparse-checkout:


And then run

git read-tree -mu HEAD

Add _data/git-log.json changes

This is how I generage

First, pip install git2json as explained here.

Then create .git/hooks/post-commit with the following contents:

previousMessage=$(git log -1 --pretty=%B)

if [ "$previousMessage" != "updated git log" ]
    git2json > _data/git-log.json
    echo 'fileName' > _data/files.csv && find . -regextype posix-egrep -regex ".*\.(md|html)$"  -not -path "./_site/*" >> _data/files.csv

    git rm --cached _data/files.csv
    git reset _data/files.csv

    git add _data/git-log.json
    git add _data/files.csv
    git commit -m "updated git log"

exit 1

Quick access to journal

Add the following to ~/.bashrc:

function empty_message {
  sleep 0.1
  echo -e "## Title\n\n* TOC\n{: toc }\n\n" > .git/COMMIT_EDITMSG

function journal {
  empty_message &
  git commit --allow-empty --cleanup=verbatim