The activity log section shows a dated timeline on the home page. It can mix manual activity items, GitHub activity generated by a workflow, and automatically generated entries for published posts.
It is enabled from data/home/sections.yaml and configured from data/home/activity-logs.yaml.
Basic configuration
id: activity-logs
type: activity
icon: clock
title: Activity Log
activityLimit: 10
lookbackDays: 15
includePosts: true
postSection: posts
items:
- activityDate: 2026-06-24
type: merged-pr
info:
number: 1042
title: Improved hook dependency bailout optimization for edge cases
url: https://github.com/facebook/react/pull/1042
repo: https://github.com/facebook/react
Useful section fields:
id: HTML anchor used on the rendered section.type: must beactivityfor the built-in activity log section.icon: icon beside the section title. It must match an SVG file inassets/icons/.title: heading text for the section.activityLimit: maximum number of activity entries to show after sorting newest first.lookbackDays: only show entries with an activity date within this many days.includePosts: whentrue, add published posts to the activity log.postSection: content section to read published posts from. The example site usesposts.dateFormat: optional date format for manual activity and post entries. The default isJan 2, 2006.
The newest visible activity is highlighted automatically with the glowing timeline dot. Activities from the same day are grouped under one date label to keep the timeline compact.
Manual activity dates
Manual items require activityDate. It is the source for sorting, lookbackDays, and the displayed date label.
items:
- activityDate: 2026-06-21
type: release
info:
version: v2.3.5
url: https://github.com/gopher/cli-task-manager/releases/tag/v2.3.5
repo: https://github.com/gopher/cli-task-manager
Manual entries without activityDate fail the build because Nerdy cannot sort or filter them reliably.
Automatic updates from GitHub activity
Instead of editing the items list by hand, you can let GitHub Actions refresh it on a schedule with the hugo-themes/activity-log-updater action.
Create .github/workflows/update-activity-log.yml in your site repository:
name: Update activity log
on:
workflow_dispatch:
schedule:
- cron: "0 6 * * *"
permissions:
contents: write
concurrency:
group: update-activity-log
cancel-in-progress: true
jobs:
update:
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v7
- name: Update activity log
uses: hugo-themes/activity-log-updater@v1.1.0
with:
github-user: your-github-user
organizations: your-github-org
lookback-days: 30
activity-limit: 15
include-merged-pr: true
include-releases: true
output-file: data/home/activity-logs.yaml
This workflow can be run manually from the Actions tab because of workflow_dispatch. It also runs every day at 06:00 UTC from the schedule trigger. The action writes the generated activity entries to data/home/activity-logs.yaml, so keep output-file pointed at the same data file that configures your home page activity section.
Update these inputs for your site:
github-user: GitHub username whose activity should be included.organizations: organization owner to scan for activity. Use your GitHub organization name if you want organization repository activity included.lookback-days: how far back the updater should search for GitHub activity.activity-limit: maximum number of generated entries to write.include-merged-pr: include merged pull requests.include-releases: include GitHub releases.output-file: path to the Nerdy activity log data file in your site repository.
The generated file still uses the same Nerdy activity schema:
items:
- activityDate: 2026-06-24
type: release
info:
repo: https://github.com/hugo-themes/activity-log-updater
url: https://github.com/hugo-themes/activity-log-updater/releases/tag/v1.1.0
version: v1.1.0
- activityDate: 2026-06-22
type: merged-pr
info:
number: 1194
repo: https://github.com/hugo-themes/toha
title: Fix language related warning
url: https://github.com/hugo-themes/toha/pull/1194
Published post activity
With includePosts: true, Nerdy reads regular pages from postSection, adds each page as a published-post activity, sorts those entries together with manual items, then applies activityLimit.
For example, this front matter can appear as Published post Quick Start. in the activity log:
---
title: Quick Start
date: 2026-06-14
summary: Install the theme and run the example site locally.
---