shipyard’s blog package supports authors and tags with auto-generated pages for each.
Define authors directly in blog post frontmatter:
---
title: My Post
description: A blog post
date: 2026-01-15
authors:
- name: Jane Doe
title: Lead Developer
url: https://janedoe.dev
image_url: https://example.com/jane.jpg
---
For shared author data, you can create an authors.yml file in your blog directory:
# blog/authors.yml
jane:
name: Jane Doe
title: Lead Developer
url: https://janedoe.dev
image_url: https://example.com/jane.jpg
email: jane@example.com
john:
name: John Smith
title: Technical Writer
url: https://johnsmith.io
image_url: https://example.com/john.jpg
Note: String author references (e.g.,
authors: jane) are not currently resolved fromauthors.yml. This feature is planned but not yet implemented. For now, use inline author objects in frontmatter as shown in the example above, or use simple strings which will display as names only.
| Property | Type | Required | Description |
|---|---|---|---|
name | string | Yes | Author’s display name |
title | string | No | Author’s role or title |
url | string | No | Author’s website URL |
image_url | string | No | Author’s avatar image |
email | string | No | Author’s email address |
When authors are configured, shipyard auto-generates:
/blog/authors — Index of all authors/blog/authors/[author] — Posts filtered by authorAdd tags to blog post frontmatter:
---
title: TypeScript Tips
description: Useful TypeScript patterns
date: 2026-01-15
tags:
- typescript
- best-practices
---
For custom tag labels, descriptions, and permalinks, create a tags.yml file and configure it in your Astro config:
# blog/tags.yml
typescript:
label: TypeScript
description: Posts about TypeScript programming
permalink: /typescript
best-practices:
label: Best Practices
description: Recommended patterns and approaches
Then configure the path in astro.config.mjs:
shipyardBlog({
tagsMapPath: './blog/tags.yml',
// ... other options
})
Note: The tags.yml file is not automatically discovered. You must specify tagsMapPath in your configuration for tag metadata to be loaded.
| Property | Type | Required | Description |
|---|---|---|---|
label | string | No | Display name (defaults to tag key) |
description | string | No | Tag description shown on tag page |
permalink | string | No | Custom URL path for tag page |
shipyard auto-generates:
/blog/tags — Index of all tags with post counts/blog/tags/[tag] — Posts filtered by tagBlog feeds are automatically generated and include author and tag metadata:
| Feed | URL |
|---|---|
| RSS 2.0 | /blog/rss.xml |
| Atom | /blog/atom.xml |
| JSON Feed | /blog/feed.json |
The blog archive groups posts by year:
/blog/archive — Chronological listing of all posts grouped by yearThe archive is generated automatically and requires no configuration.