Blog Posts
You can publish time-sequenced content (aka a “blog”) on your Willamette site by adding new Markdown files (.md) to the src/_posts folder. You can also create subfolders to organize by year or even month-year (03-2027, 04-2027, etc.). These won’t be reflected in your post URLs (only data metadata is utilized, see Bridgetown’s Permalinks documentation).
Your post resources (see Resource documentation) should include the post date in the filename (aka 2027-02-05-your-post.md), and optionally you can include a full timestamp in your Front Matter.
Set Up Your Metadata #
Title & Date #
Use the title front matter variable to set the main title of your post.
The easiest way to add a full date/time is to run the bin/bt date command. This will output text such as Tue, 12 May 2026 12:55:02 -0700. You can then add that to your front matter:
---
title: Hello, Internet!
date: Tue, 12 May 2026 12:55:02 -0700
---
Description #
You can optionally add either subtitle or description front matter variables (functionality the same, so it’s up to you!) to control what is shown in certain template formats on the site as well descriptive metadata when using the SEO plugin.
Featured Image #
You can supply an image for your blog post, which will appear at the top of the post template and possibly on your main blog page (depending on how it’s configured).
Make sure you resize & compress your image appropriately for the web…a file over a few hundred kB is going to perform poorly and possibly not show up in SEO/SMO scenarios.
The easiest option is to use image in your front matter:
image: /images/path/to/image.jpg
By default, the alt text provided by the content.featured_post_image locale string is used. You can provide custom alt text by using a slightly more verbose syntax:
image:
path: /images/path/to/image.jpg
alt: A very lovely photo of my pet goldfish
In addition, if you would like to add a small caption (aka <figcaption> HTML tag) below the image, perhaps to give credit, you can add a caption variable:
image:
path: /images/starship-enterprise.jpg
alt: Space…the final frontier
caption: The intro to Star Trek
There’s a visual option you can toggle on via front matter if you want the featured image to display edge-to-edge, rather than fitting within the main content margins:
image_bleed: true
Other Metadata (Author, Taxonomies) #
You can designate a specific author for a blog post:
author: Margaret Atwood
You can also create an association between a name key and author information stored in site data. Create a file at src/_data/authors.yml such as:
yeats:
name: William Butler Yeats
Then use yeats as the author variable in a post.
It’s also possible to establish a default author in your site metadata at src/_data/site_metadata.yml:
author: Lynne Reid Banks
# or:
author:
name: Lynne Reid Banks
This is used when front matter isn’t available. Otherwise, the author is deemed to be Anonymous.
You can associate taxonomies and folksonomies (aka categories/tags) with posts for the purpose of classification and discovery. Learn more about this in Bridgetown’s documentation.
Enhance for SEO/SMO & Feed Readers #
To add a set of <meta> tags to aid in SEO (Search Engine Optimization) and SMO (Social Media Optimization) via Open Graph metadata, you’ll want to use the bridgetown-seo-tag plugin. You can add this to your site quickly by running the Bundled Automation:
bin/bridgetown configure seo
Double-check your <head> partial template (located in src/_partials/head.erb) to make sure you remove the existing title/meta tags which will be duplicated by the SEO plugin.
You’ll want to add an RSS feed (technically it’s in the equally-compatible Atom format) to your site so new blog posts will go out to all your feed subscribers. Install the bridgetown-feed plugin, also available via a Bundled Automation:
bin/bridgetown configure feed