HugoStarter

hugo-air — Hugo Starter Template

By fducat18

Hugo Air is a starter theme based on Hugo and Bootstrap, offering responsive layout, galleries, single-page landing pages, and multilingual support under the MIT license.

Explore the design

Compare the page layouts and mobile experience. Open any screenshot for a closer look.

3 previews
Desktop homepage1 / 3
Desktop captureTop of page

Actual screenshot captured by the server browser.

All pages & views 3

Screenshots show visual appearance; interactive behavior may differ.

Recorded 2026-10-03View source

What stands out

A quick read of the recorded project description.

01

Responsive layout based on Bootstrap

02

Supports automatic loading of custom header images and card thumbnails from page bundles

03

Provides Instagram-style and Masonry galleries, usable as a page type or shortcode

04

Supports a single-page landing homepage, ordering pages by weight

05

Built-in Google Maps embed, Smoobu booking, and multilingual shortcodes

06

Includes an exampleSite and hugo.yaml configuration example

Template Details

Hugo Air is a starter theme for Hugo sites, intended to provide a starting point for new projects that includes basic features and common development practices (performance, accessibility, rapid development). The theme includes responsive layout and Bootstrap support, can automatically load custom header images and card thumbnails from page bundles, and offers two gallery presentation modes: Instagram-style and Masonry-style, usable either as a page type or via shortcode. It also supports a single-page landing homepage, embedded Google Maps, a Smoobu booking shortcode, and a multilingual shortcode.

For usage, the theme can be installed as a Git submodule, and the repository includes an exampleSite with sample content and a hugo.yaml configuration that can be copied into a project. Configuration options include the primary color params.mainColor, Google Maps address params.gmaps_url, footer text, menu structure, and Google Analytics service ID. Header images and card images are read from static/img by default, and can be overridden by placing featured-image.jpg or card.jpg in a page bundle.

Limitations: the material does not specify the required Hugo version, nor does it provide complete documentation beyond the example site; features such as galleries and landing pages depend on page bundles and front matter configuration and must be set up manually according to the README. Licenses for third-party assets such as demo images, fonts, and icons must be checked separately and cannot be determined solely from the code's MIT license.

HugoStarter

Is it right for your project?

Use Cases

  • Setting up a starting point for a new Hugo site with responsive layout and basic components
  • Creating image-focused pages using page bundles to generate Instagram or Masonry galleries
  • Building a single-page landing page that combines multiple pages into one long page by weight
  • Embedding a Google Maps location or Smoobu booking entry in a site
  • Hugo projects that need multilingual shortcode support

Suitable For

  • Developers using Hugo who want a quick start based on Bootstrap
  • Content sites that need common page forms such as galleries and landing pages
  • Hugo projects that accept managing the theme via Git submodule
  • Users who can manually configure front matter and hugo.yaml according to the README

Getting started & customization

Use these recorded setup notes alongside the repository instructions for your chosen version.

  1. 1

    Install as a Git submodule: git submodule add https://github.com/fducat18/hugo-air.git themes/air

  2. 2

    Run the example locally: hugo server -s exampleSite --themesDir ../..

  3. 3

    For a quick start, copy exampleSite/content to the project content, and copy exampleSite/hugo.yaml to the project root (this will overwrite existing configuration and must be merged manually)

  4. 4

    Override the primary color via params.mainColor, and set the Google Maps address via params.gmaps_url

  5. 5

    Galleries require setting type: gallery-masonry or gallery-insta in front matter, or using the gallery-masonry / gallery-insta shortcode with the page bundle name passed in

Read repository instructions

License & source material

Usage conditions & limitations

Free to use · keep license notice

This entry covers the free version under the MIT license in the public repository; the free scope applies to that version's code and does not mean external services or third-party assets are free.

Must comply with when using

  • Free use, modification, commercial use, and distribution of this version's code are permitted.
  • When distributing copies or substantial portions of the code, retain the original author's copyright notice and the full MIT license notice.
  • The code is provided as is; warranties and limitations of liability are governed by the original license and applicable law.

Additional costs & items to verify

  • Embedding Google Maps requires providing gmaps_url in the configuration; actual use depends on Google Maps services and may be subject to Google's terms of service.
  • Enabling Google Analytics requires entering a Google Analytics ID in the configuration; it is an external service, and you are responsible for the corresponding account and compliance requirements.
  • The Smoobu booking shortcode depends on the third-party Smoobu booking service; a corresponding service account is required before use.
  • Custom favicons require generating or providing icon files yourself; third-party generation sites have their own terms of use.
  • Demo images, fonts, icons, and other third-party assets must be checked against their respective licenses and cannot be determined solely from the code's MIT license.
  • External services such as domains, hosting, databases, payments, or AI may incur additional charges.
View Original Text Basis

Permission is hereby granted, free of charge

Original License Text

Embedded Google Maps

Original README

Setup Google Analytics

Original README

Smooobu Booking **shortcode**

Original README

Use your favicon or generate it using [favicon.io](https://favicon.io/).

Original README
https://github.com/fducat18/hugo-air/blob/main/LICENSEhttps://github.com/fducat18/hugo-air/blob/main/README.md

Compiled by DeepSeek based on repository license and README ·2026-10-03. Results only cover the materials read; dependencies, images, fonts, and subsequent term changes are subject to their respective original texts.

Project checks & description sources

Template Information

Source platforms
Hugo Themes
Documentation and maintenance reference score
More documented · 79 / 100
Technologies
Hugo
Website type
Starter
How this score is calculated

Our heuristic uses license records (up to 30), a demo link (12), a preview (10), stars (15), recorded maintenance (15), description completeness (8), feature records (5) and classification data (5). It is not a code, security or performance test, or a Google score. A link does not establish tested functionality.

What to verify for this project

Repository update recorded
2026-09-30
Screenshot last checked
2026-10-03

A demo link is listed. Check it with your own content and viewport sizes; its presence does not confirm that forms, authentication or payments work.

The catalog identifies Hugo as the primary stack. Check the actual dependency manifest and lockfile for versions and hosting requirements. These notes use recorded metadata, not a code audit or a deployment test.

Use a selection guide →

How this description was prepared

AI-assisted description based on catalog records and repository material. Repository authors are not automatically the reviewers of this description.

Review declaration: [email protected] · 2026-10-04

Inspect the recorded source material

SHA-256: 9d3339f31dc2f08696ebfb4588ae1a8033585af629ebdab2967c8abe39cb41e0

2026-10-03T23:47:21.984Z

Source file / repository
# Air, a theme for [Hugo](https://gohugo.io/).

The intent of this theme is to provide a solid starting place for Hugo sites with basic features and include best practices for performance, accessibility, and rapid development.

## Live Demo

Just visit [fducat18.github.io/hugo-air-demo](https://fducat18.github.io/hugo-air-demo)

## Local Demo

1. Clone this repository into a folder named `air`:
   ```bash
   git clone https://github.com/fducat18/hugo-air.git air
   ```
2. Enter the folder: `cd air`
3. Run the demo:
   ```bash
   hugo server -s exampleSite --themesDir ../..
   ```


## Features

|    	  Awesome features                                                          |
|---------------------------------------------------------------------------------|       
| ✨ Full **Responsive**                                                          |
| ✨ **Bootstrap** ready                                                          |
| ✨ **Custom Header Image** from page bundle                                     |
| ✨ Shortcode **Image Gallery** from page bundle (Instagram or Masonry Style) 	 |               
| ✨ Page Type **Image Gallery** from page bundle (Instagram or Masonry Style)    |
| ✨ **Single-page** landing homepage   	                                         |
| ✨ Embedded Google Maps                      	                                   |
| ✨ Smooobu Booking **shortcode**      	                                         |
| ✨ **Multilingual** Support shortcode      	                                   |

## Installation

### First Installation: as a git submodule

Install Air Theme as a Git Submodule. Naviguate to the folder of your Hugo site run:

```bash
git submodule add https://github.com/fducat18/hugo-air.git themes/air
```

If you clone a Hugo site that already uses this theme as a submodule, initialize it with:

```bash
git submodule update --init --recursive
```

### Update an existing installation

If you already have Air Theme installed, naviguate to the folder of your Hugo site run: 

```bash
git submodule update --remote --merge
```

## Quick Start with Example Site

To get started quickly with the example content:

1.  Copy the contents of `themes/air/exampleSite/content` to your project's `content` directory.
2.  Copy `themes/air/exampleSite/hugo.yaml` to your project root. **Note:** This will overwrite your existing configuration. If you have existing settings, merge them manually.
3.  The `hugo.yaml` file contains essential configuration for the theme, including:
    - **Menu Structure**: `menu.main` and `menu.footer`.
    - **Theme Params**: `params.mainColor`, `params.gmaps_url`, etc.

## Usage

### Edit your config file

```yaml
baseURL: https://example.com/
languageCode: en-us
title: Example Site
theme: air
params:
  author:
    name: François
    siteUrl: https://notes.ducatillon.net/
  gmaps_url: https://www.google.com/maps/d/u/0/embed?mid=1UySq5HRbcRKL90dKuFpX6PRRtx0&ehbc=2E312F
  mainColor: "#386641"
  footer: "Hugo Air theme is great and customizable"
menu:
  main:
  - name: Home 
    url: /
    weight: 20
    params:
      target: 
  - name: Features 
    url: /features
    weight: 30
    params:
      target: 
  - name: Shortcode Gallery
    pageRef: /features/shortcode-gallery/
    parent: Features
    weight: 20
  - name: Landing Page
    url: /landing-page
    weight: 40
    params:
      target: 
  footer:
  - name: Home 
    url: /
    weight: 20
    params:
      target: 

markup:
  goldmark:
    parser:
      attribute:
        block: true
    renderer:
      unsafe: true
```

### Customize main color

In your config file, add:

```yaml
params:
  mainColor: "#386641"
```

This will override the main.scss

```css
/*
=======================================================
=                   CSS Variables                     =
=======================================================
*/

/* 
Main color for the website
It can be overridden in the config file by setting "Params.mainColor" to any color value
*/
:root {
  --main-color: #035c8c; /* default color */
}
```

### Set Google Maps url

In your config file, add:

```yaml
params:
  gmaps_url: https://tinyurl.com/mr3uesbx
```

### Customizing Favicon

To change the favicon of your site:

1.  Use your favicon or generate it using [favicon.io](https://favicon.io/).
2.  Copy the generated file (e.g. `favicon.ico`) to your `static/` directory.

### Setup Google Analytics 

In your config file, add:

```yaml
services:
  googleAnalytics:
  id: G-12345  #Replace with your Google Analytics ID
```

### Image Gallery

#### Use as partial
In your `.md` file, specify the type of the page with `type: gallery-masonry` or  `type: gallery-insta` like this:

```yaml
---
title: Air is a great hugo theme
type: gallery-masonry
---
Air is a great hugo theme with outstanding features like image gallery from page bundle
```

#### Use as shortcode

Assuming your folder structure would look something like this

```yaml
content/
└── pages/
    └── my-page/                # Page Bundle
        ├── index.md            # Page content
        ├── featured-image.jpg  # Image Resource used as gallery image 1
        ├── card.jpg            # Image Resource used as gallery image 2 AND as card featured image
        ├── photo1.jpg          # Image Resource used as gallery image 3
        ├── photo2.jpg          # Image Resource used as gallery image 4
        └── photo3.jpg          # Image Resource used as gallery image 5
```

In your `.md` file, add this block to display your instagram image gallery

`{{` `< gallery-masonry page="my-page" >` `}}` 


where "my-page" is the page bundle object passed as a variable to the shortcode

Alternatively, use instagram gallery style with

`{{` `< gallery-insta page="my-page" >` `}}`

### Custom Header image

Add one image called `featured-image.jpg` in your page bundle.

#### Use as a featured header image in `single.html`
Automatically loaded as a header image on your page

##### Use the default featured header image
Automatically loaded from the `static/img` folder.
- `header-960.jpg` for screens higher than 960px
- `header-480.jpg` for screens lower than 960px

### Custom Bootstrap Card image

#### Use as featured card image in `list.html`
When listing pages/posts, it displays bootstrap cards with a thumbnail image.  
By default it uses the card image from  `static/img/card.jpg`
Customize the card image by adding one image called `featured-image.jpg` or `card.jpg ` in your page bundle.  

### Single-page landing homepage

Add pages to a folder. These page will render as a single-page.

Example with this page bundle:

```yaml
content/
└── landing-page/
    └── page-1/                 # Page Bundle
        ├── featured-image.jpg  # 
        ├── index.md            # Page 1
    ├── _index.md               # File that calls the landing-page type
    ├── page-2.md               # Page 2
    ├── page-3.md               # Page 3
    ├── page-4.md               # Page 4
    └── page-5.md               # Page 5
```

Edit your  `content/landing-page/_index.md` to add `type: landing-page`

```yaml 
---
title: Landing Page
catchline: Awesome One Page Landing Page
type: landing-page
---
```

Add a weight to each page to render them by weight ✨: 

```yaml
---
title: Page 1
weight: 10
---
Content of Page 1
```

## Theme Development

If you are developing this theme inside a Hugo site (usually in `themes/air`), remember that this is a **Git submodule**.

### Making changes
1. Enter the theme directory: `cd themes/air`
2. Ensure you are on the main branch: `git checkout main`
3. Make your changes, then commit and push from within the theme directory:
   ```bash
   git add .
   git commit -m "Your feature"
   git push origin main
   ```
4. Go back to your Hugo site root and update the theme pointer:
   ```bash
   cd ../..
   git add themes/air
   git commit -m "Update theme pointer"
   git push origin main
   ```

## Screenshot

 ### Mobile
![screenshot](https://fducat18.github.io/hugo-air/img/hugo-air-theme-mobile.jpg)
 
 ### Desktop
![screenshot](https://fducat18.github.io/hugo-air/img/hugo-air-theme-desktop.jpg)
Report a correction

Explore similar templates

Compare previews and descriptions within the same stack and category.

hugo-xmin

hugo-xmin

hugo-xmin is an extremely minimal Hugo theme written by Yihui Xie for template beginners. HTML and CSS total about 140 lines, with no external dependencies, and it uses the MIT license.

Hugo · Starter

hugo-theme-gallery

hugo-theme-gallery

A Hugo Extended photo gallery theme that organizes images with Page Bundles, automatically generating album lists and gallery pages with a Justified layout and PhotoSwipe lightbox.

Hugo · Starter

reveal-hugo

reveal-hugo

reveal-hugo is a Hugo theme that converts Markdown content into Reveal.js-based HTML presentations. It supports slide separation with `---`, shortcodes for fragments, slides, sections, notes, Markdown, and MathJax, and organizes content as root or section presentations with order controlled by weight.

Hugo · Starter

anatole

anatole

Anatole is a minimalistic two-column Hugo theme ported from farbox-theme-Anatole, featuring dark mode, multilingual and RTL support, and optional portfolio, comments, analytics, KaTeX, and Mermaid integrations. It suits personal blogs, portfolios, or documentation sites built with Hugo.

Hugo · Starter

hugo-theme-diary

hugo-theme-diary

A Hugo diary-style theme ported from the Hexo theme Journal, with a grid homepage for essays and daily notes. It supports six languages, dark mode, table-of-contents scroll positioning, reading time, code highlighting, and configurable sidebar, fonts, and colors.

Hugo · Starter

risotto

risotto

risotto is a minimalist, responsive Hugo theme inspired by terminal ricing aesthetics. It uses semantic HTML and pure CSS with no JavaScript, and its layout relies on CSS Grid for native responsiveness without manual breakpoints.

Hugo · Starter