MIT Digital Humanities Website

Introduction

This website is built using the Jamstack to achieve world-class performance, security, and scalability, as well as top-notch DX (Developer Experience).

In our case, the following core components make up this website:

  1. Eleventy — A simple static site generator. Think Jekyll, but written in Node.
  2. Sanity — Sanity is a powerful and flexible headless CMS.
  3. Netlify — Netlify is where we host the statically generated files that make up the front-end of the website. Netlify also makes it easy to automate deployments via Github integrations and webhooks. We've set up a webhook to notify Netlify when new content has been published in Sanity.

Requirements

  • Node.js — Version 13.6.0 recommended. I would strongly encourage you to set up Node Version Manager so you can manage multiple versions of Node.js on one machine and easily switch between versions on command.
  • Yarn — Yarn is a layer on top of NPM (Node's default package manager) that enables basic monorepos via Yarn Workspaces

Project Structure

This project is structured as a monorepo using Yarn Workspaces. There are 2 workspaces:

  1. /web — The front-end of the website
  2. /studioThe Sanity Studio

Quickstart

Clone the repository, and cd into the root directory.

# Install dependencies
yarn

# If using nvm, activate Node 13.6.0
nvm use

# For front-end development
yarn start

# For Sanity development
yarn start:studio