Skip to main content

Activity Log Section

3 min read
#homepage #activity #data #github-actions

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 be activity for the built-in activity log section.
  • icon: icon beside the section title. It must match an SVG file in assets/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: when true, add published posts to the activity log.
  • postSection: content section to read published posts from. The example site uses posts.
  • dateFormat: optional date format for manual activity and post entries. The default is Jan 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.
---