Posts
How to Add Search to a Hugo Site
Hugo is fast, flexible, and opinionated in all the right ways — but it ships without built-in search. Since Hugo generates a static site, there is no server-side query engine to call. Search has to be handled either at build time, client-side in the browser, or through a third-party service. Each approach has tradeoffs worth understanding before you commit to one.
This guide covers the main options and walks through the implementation that works best for most publishing workflows.
Posts
How to Use Taxonomies in Hugo
Taxonomies are Hugo’s system for classifying and grouping content. Used well, they provide the structural backbone of a publishing site — the navigation paths, archive pages, and content relationships that let readers move through a site meaningfully. Hugo’s taxonomy system is flexible and powerful, but it requires deliberate configuration to use effectively.
What Hugo’s Taxonomy System Does A taxonomy is a classification dimension. Tags and categories are the two built into Hugo by default, but you can define any number of custom taxonomies — series, authors, topics, formats, locations — and Hugo will generate archive pages and RSS feeds for each.
Posts
Hugo Archetypes: Automating Content Frontmatter
Hugo archetypes are content templates that pre-populate frontmatter when you create new content with hugo new. They are a small feature with a disproportionate practical impact on a publication’s day-to-day workflow: every new post or page starts with the correct structure, required fields are present, and authors do not need to remember the exact frontmatter format.
The Default Archetype Hugo ships with a single default archetype at archetypes/default.md:
--- title: "{{ replace .
Posts
Hugo Image Processing: Resizing, Optimizing, and Serving Images
Hugo has a built-in image processing pipeline that handles resizing, format conversion, and optimization at build time — no external service, no plugin, no JavaScript-based lazy loading required. For publishing sites where images are a significant part of content, understanding Hugo’s image processing is worth the investment. The result is faster pages with properly sized images served in modern formats, generated automatically from source files.
Page Resources vs Global Resources Hugo works with images in two contexts:
Posts
Hugo Partials: Building Reusable Template Components
Hugo partials are reusable template fragments — the building blocks of a maintainable Hugo theme. Any piece of HTML that appears in more than one place belongs in a partial: site headers, footers, navigation menus, article cards, SEO meta tags, social sharing blocks, author bios. Once defined, a partial is called with a single line from any template.
This guide covers the full range of how partials work and patterns that make them practical for a publishing site.
Posts
Hugo Pipes: Asset Processing and Bundling
Hugo Pipes is Hugo’s built-in asset processing pipeline. It handles Sass/SCSS compilation, CSS and JavaScript minification, fingerprinting for cache busting, and bundling — at build time, without external build tools like Webpack or Vite. For publishers running Hugo sites, understanding Pipes is the difference between manually managing compiled CSS and having the build handle it automatically.
The Assets Directory Hugo Pipes works with files in the assets/ directory. Unlike static/, which copies files verbatim to the output, assets/ is a processing source — files there are available to Pipes functions but are only written to the output if explicitly processed and referenced.
Posts
Hugo Shortcodes: How to Create and Use Them
Hugo shortcodes are reusable template fragments that can be embedded in Markdown content. They bridge the gap between Markdown’s intentional simplicity and the richer, more structured HTML that publishing sites often need — figure captions, callout boxes, video embeds, custom alert blocks, styled pull quotes — without requiring authors to write raw HTML in their content files.
Hugo ships with a small set of built-in shortcodes and provides a straightforward system for building your own.
Posts
JAMstack for Publishers: What It Means and Why It Matters
JAMstack is an architectural approach to building websites that has reshaped how publishers think about performance, security, and hosting. The term has become somewhat elastic with use — vendors apply it broadly — but the underlying principles are specific and worth understanding clearly.
What JAMstack Actually Means JAM stands for JavaScript, APIs, and Markup. The original definition describes a web architecture with three characteristics:
JavaScript handles all dynamic functionality, running in the browser rather than on the server.
Posts
Migrating from WordPress to Hugo: A Practical Walkthrough
Migrating a WordPress site to Hugo is one of the most common transitions in publishing infrastructure. The reasons vary — performance, hosting cost, maintenance overhead, security exposure — but the path through the migration is broadly the same regardless of why you are making the move. This is a practical walkthrough of what the process actually involves.
What You Are Gaining and What You Are Giving Up Before starting, be clear about the tradeoffs.
Posts
Newsletter Platforms Compared: Beehiiv, Substack, Ghost, and ConvertKit
Email newsletters have become a primary publishing medium — not supplementary to a website but often the core product itself. The platform you build on shapes how you write, how you grow, how you monetize, and critically, how much of your operation you own. Choosing between the leading options requires understanding what each one actually is and who it is built for.
Substack Substack is a publishing platform built around the newsletter as a standalone product.