Introduction to Static Sites S26
What are Static Sites?
Static sites are web pages that are delivered directly to the user’s browser exactly as they are stored. Unlike dynamic sites that generate content on-the-fly using databases and server-side processing, static sites consist of fixed HTML, CSS, and JavaScript files. This simplicity offers numerous advantages for digital humanities and sustainable web practices.
This course site is an example of a very simple static site built in Jekyll in Github Pages.
Here are some customized ones:
- The Programming Historian - also Jekyll and in Github.
- Stanford Literary Lab - they explain why they adopted a static site here
Advantages of Static Sites
Speed: Static files load quickly since there are no server-side processing or database queries.
Cybersecurity: They have fewer moving parts and no dynamic backend processing, so static sites have fewer vulnerabilities.
Simplicity: Static sites are straightforward to understand, maintain, and deploy. No complex server configurations or database management required.
Version Control: Because static sites are typically .txt (plain text) files (often Markdown), they integrate with version control systems, enabling collaborative development. Both of the examples above are collaboratively managed.
Sustainability: Minimal server requirements mean lower resource consumption for more sustainable digital humanities projects.
Inexpensive: Hosting static sites is inexpensive, with many platforms offering free hosting options like GitHub Pages. What is required is some basic know how in versioning systems and Markdown.
Static Sites and GitHub Pages
GitHub Pages is a hosting service that makes it easy to publish static sites directly from a GitHub repository. You can
- Write content in Markdown
- Version your entire site in VSCode
- Deploy changes with a simple push in VSCode or Github Desktop (for an added sanity check)
- Use themes for your site’s appearance, and when you grow more confident, pass on to customization
- Maintain a complete history of all changes
Elements required:
- A GitHub account
- A text editor (we will use VS Code, etc.)
- Git and GitHub Desktop installed
- Familiarity with Markdown
Sustainability, Static Sites and Digital Humanities
As Wikle and Williamson argue in their Code4Lib Journal article, static web methodology represents a shift in how digital humanities practitioners approach infrastructure.
This philosophy aligns with principles of minimal computing in the digital humanities—asking what is truly necessary when developing digital scholarship under real-world constraints.
To read:
-Static Web Methodology as a Sustainable Approach to Digital Humanities Projects by Olivia Wikle and Evan Peter Williamson (Code4Lib Journal, 2025). This article provides insight into why static web approaches are gaining traction in academic and digital humanities contexts, over web publishing methods such as WordPress or Drupal.
-The Questions of Minimal Computing by Roopika Risam and Alex Gil (DHQ, 2022). The introduction to a special issue of DHQ frames “minimal computing” as a way of thinking about digital humanities that prioritizes necessary and sufficient technologies under real-world constraints, using four questions (what is needed, what is available, what must be prioritized, and what can be sacrificed) to foreground practices that resist equating innovation with scale or resource intensity.
Exploring the Components of the Minimal Mistakes Template
The Minimal Mistakes Jekyll theme, which powers this course site, is built from several key components:
- Layout Files (
_layouts/): HTML templates that define the structure of different page types (default, post, archive, etc.) - Include Files (
_includes/): Reusable HTML snippets (navigation, footer, header) that are embedded into layouts to avoid repetition - Assets (
assets/): Stylesheets (CSS), JavaScript files, and images that control the site’s appearance and functionality - Configuration (
_config.yml): The main settings file controlling site title, theme, plugins, and other global behaviors - Content (
_posts/,_pages/): Your actual content files written in Markdown that Jekyll processes into HTML pages - Data Files (
_data/): YAML or JSON files containing structured information (like navigation menus) that templates can access and display
When you start with Minimal Mistakes, these components work together without issue. If you change things too quickly in the beginning you can break the site. As you gain confidence, however, you can customize individual pieces—changing colors in the CSS, modifying navigation structure in _data/navigation.yml, or adjusting layouts to create unique page designs—all without needing to rebuild the entire system.
Let’s start by looking at a few elements _data/navigation.yml, _pages, _posts and _config.yml