HugoKit no longer changes anything without a diff – and everything it changes can be undone.
New
- Snapshots: before HugoKit writes to any file in your site – a preflight fix, a config save, a content edit, a theme switch – it keeps a copy of the file as it was. If the copy can’t be taken, the write doesn’t happen
- Per-file diffs: every change is captured at write time – read it in the new Snapshots sheet (in the site’s ⋯ menu), or copy it out
- Two-level undo: restore a whole operation, or a single file – and restoring snapshots first, so an undo can itself be undone
- Per-site snapshot settings: turn the layer off for a site, or set how many versions of each file to keep
- Front matter inspector: beside your content – edit title, description, date, draft, tags and categories in a panel next to the file, with tag and category suggestions drawn from the site’s own taxonomies. It edits the same text as the Raw tab, so nothing you didn’t touch is reformatted
- Taxonomy overview: every tag and category across the site, with duplicate spellings flagged – and Rename changes one everywhere in a single pass, taken as one snapshot you can undo in one go
- Git URL import: paste the repository, choose where to clone it, and HugoKit clones and adds the site in one step. A GitHub token is only ever attached to github.com URLs
- Archive a site: hide it from the sidebar, the counts and All Sites without touching a single file, and bring it back from Settings when you want it again
- Sidebar groups: collapsible folders of your own, so Clients, Personal and the ones you rarely open aren’t all in one list
- Build flags per site: choose Hugo’s build flags (garbage collection, minify and a build environment) and see the exact command line on the Deploy page before it runs
- Publish to All Targets: one button on the Deploy page when a site has two or more active destinations
- Per-target status: each deploy target now shows its own status and history, not just the site as a whole
- Target health: after a successful publish HugoKit probes the live URL, and Check if Live in the target’s ⋯ menu runs the probe on demand
- Git state on Deploy: the Deploy page now shows the site’s git state before you publish – uncommitted work, a branch or remote that doesn’t match what’s being pushed – and warns when a GitHub Pages publish would send something other than what you see
- Deprecation inbox: Hugo’s deprecation notices are collected into one list on the dashboard – each notice once, with a count of how often it fired
- Copy Diagnostics: in the Help menu, one click gathers a sanitised support report: HugoKit and Hugo versions, macOS, the settings that matter and the latest log, with no credentials or personal paths in it
- Crash reports: caught on the next launch and shown as a readable report you can open and send yourself. No telemetry, nothing phoned home
Improved
- Page bundles: a leaf bundle shows as a single post with its images, not a folder of loose files, and the inspector lists the bundle’s resources with thumbnails
- Parallel publishing: publishing to several targets at once builds each to its own folder and uploads them in parallel – every target reports its own result, and the run is timed by the slowest, not the sum
- Automatic lastmod: a page’s lastmod is updated on save, but only when the field is already there, so nothing new is added behind your back
- Starter template: now has an archive, a colophon, sidenotes, a timeline archive view, a ⌘K search palette, a sharing image drawn per page and the whole site as llms.txt
- Redesigned window: one warm surface with the sidebar and content as floating panes
- Background surface: now a choice of Flat, Warm Gradient, Quartet or Liquid Glass, set in Settings
Fixed
- Dotfiles: FTP/SFTP publish no longer skips them – .htaccess, .well-known and .nojekyll upload like everything else; only .DS_Store junk is filtered
- Symlinked paths: FTP smart sync compares files correctly when the project path goes through a symlink
- GitHub sign-in: the dialog named the wrong app – connecting to GitHub asked you to authorise ‘hugodex’, a leftover from the project’s earlier identity. It reads HugoKit now
- Config diffs: changing one field no longer lights up every other string field in Review Changes – a quote-normalisation quirk made untouched lines look changed. You see only what you touched
- Template Preview: single.html no longer reloads in a loop – a missing trailing slash was sending Hugo into a redirect on every refresh
Notes
- Requirements: macOS 26 (Tahoe) or later