HugoPortfolio

strip — Hugo Portfolio Template

By m0hss

Strip is a Hugo portfolio theme that presents projects as colored paper strips on an air-traffic-control flight progress board, grouped into status bays, with support for amendment records and visual elements such as radar sweep.

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-10View source

What stands out

A quick read of the recorded project description.

01

Uses an air-traffic-control flight progress board as its visual model, with projects displayed as colored strips grouped by status

02

Supports amendment records: old text is struck through and new text appears in red handwriting

03

Includes themed components such as radar sweep, handover log, and squawk code tags

04

Provides dark and light color schemes, with color tokens centralized in a single CSS file

05

Self-hosts IBM Plex Mono, IBM Plex Sans, and Kalam fonts, and remains fully readable without JavaScript

Template Details

Strip is a Hugo theme for project portfolios that visually mimics an air-traffic-control flight progress board. Each project appears as a colored plastic strip in the bay corresponding to its status; when plans change, the old text is retained with a strikethrough, and the correction—an amendment—is shown beside it in red handwriting. The theme requires Hugo extended 0.146.0 or later and uses the newer layout system (layouts/_partials/, layouts/_shortcodes/, layouts/_markup/).

The content model is built around two content types: projects and logs. A project's status field (PENDING, ACTIVE, LANDED, DIVERTED) determines which bay it belongs to; date is used only to sort within the same bay, newest first. The type field maps to label colors such as SFTWR, DESGN, WRITE, or MISC. Projects with a missing or unknown status do not appear in any strip list, and a warning containing the filename is emitted at build time. An amendment requires three fields—old, new, and date; if any are missing, it is ignored and a warning is emitted. Logs are short dated notes displayed on a controller logbook-style page. Tags generate stable 4-digit squawk codes.

The theme offers two color schemes: dark (default, Radar room) and light (Tower in daylight), with color tokens centralized in assets/css/tokens.css. Fonts are self-hosted in static/fonts/ and include IBM Plex Mono, IBM Plex Sans, and Kalam for amendments only. All user-visible strings are in i18n/en.toml. Pages remain fully readable without JavaScript; the ZULU clock and radar sweep filtering are enhancements. The design source file Strip Theme.html is for reference only and is not loaded as a theme asset.

HugoPortfolio

Is it right for your project?

Use Cases

  • Building a portfolio site with an air-traffic-control visual style for personal or team projects
  • Showing project status transitions and scope changes, using amendment records to preserve decision history
  • Recording development or operations notes as short dated log entries
  • Categorizing and retrieving projects through tag squawk codes

Suitable For

  • Developers or design teams using Hugo who want a non-traditional portfolio look
  • Personal portfolios that need to show project status and change history
  • Sites that prefer a dark radar-room style or a light tower style interface

Getting started & customization

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

  1. 1

    Requires Hugo extended 0.146.0 or later

  2. 2

    Can be installed via Hugo Module or git submodule

  3. 3

    When starting from the example site, copy exampleSite/content/ and the [params] and [[menus.main]] configuration blocks from exampleSite/hugo.toml, but do not copy its [module] block

  4. 4

    The board only shows sections specified in params.boardSections (default: projects)

  5. 5

    The search page is a regular content page and requires layout: "search"

Read repository instructions

License & source material

Usage conditions & limitations

Free to use · keep license notice

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

Must comply with when using

  • You may use, modify, commercialize, and distribute the code of this version for free.
  • 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

  • Demo images, fonts, icons, and other third-party assets must be checked against their respective licenses and cannot be judged solely by the code's MIT license.
  • External services such as domains, hosting, databases, payments, or AI may incur separate charges.
  • Using this theme requires Hugo extended, and the version must be at least 0.146.0; standard Hugo cannot be used.
  • The theme relies on Hugo's newer layout system directory structure, and older Hugo layout approaches are incompatible.
  • The board only displays pages from the section specified in params.boardSections, which defaults to projects; other sections will not appear on the board.
  • Projects with a missing or unknown status do not appear in any list, and only a warning is emitted at build time.
  • Each amendment must provide all three fields—old, new, and date; if any is missing, it is ignored and a warning is emitted.
  • Only the tags taxonomy generates squawk codes; other taxonomies (such as the default categories) do not receive codes.
  • Strip Theme.html is only a design reference file and is not loaded as a theme asset; viewing it requires a browser with JavaScript enabled.
  • The fonts are self-hosted Latin subsets under the SIL Open Font License 1.1, which differs from the theme code's MIT license.
  • The online demo is built by Netlify from netlify.toml at the repository root, which is an external service dependency.
View Original Text Basis

Permission is hereby granted, free of charge

Original License Text

Hugo **extended 0.146.0 or later**.

Original README

The theme uses the newer layout system (`layouts/_partials/`, `layouts/_shortcodes/`, `layouts/_markup/`).

Original README

The board only shows pages from `params.boardSections` (`projects` by default).

Original README

A strip with a missing or unknown status is left off every strip list (board, radar scope, handover log, vectors, search, section and tag pages), and the build prints one warning that names the file.

Original README

Each amendment needs `old`, `new` and a `date` (`YYYY-MM-DD`); one that lacks any of them is left out, and the build prints a warning that names the file.

Original README

Only the `tags` taxonomy gets squawk codes: any other taxonomy a site builds, such as Hugo's default `categories`, is listed under its own name without codes.

Original README

`Strip Theme.html` is the design source of truth, exported from the Claude design canvas "Strip Theme". Open it in a browser with JavaScript enabled. It is a reference only: no layout loads it and it is not part of the theme's assets.

Original README

Fonts are self-hosted from `static/fonts/` (latin subsets, SIL Open Font License 1.1)

Original README

The live demo is this example site, built by Netlify from `netlify.toml` at the repository root on every push to `master`.

Original README
https://github.com/m0hss/strip/blob/master/LICENSEhttps://github.com/m0hss/strip/blob/master/README.md

Compiled by DeepSeek based on repository license and README ·2026-10-10. 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
GitHub
Documentation and maintenance reference score
More documented · 80 / 100
Technologies
Hugo
Website type
Portfolio
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-10-08
Screenshot last checked
2026-10-10

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-10

Inspect the recorded source material

SHA-256: 0f055e4ab4ded46f7c118213eb89f4cc02eb2aebbeb1774342d11e9117bfbfad

2026-10-10T13:10:06.431Z

Source file / repository
# Strip

A Hugo theme for project portfolios, styled as an air-traffic-control **flight progress board**. Each project is a coloured plastic **strip** in a **bay** for its status. When a plan changes, the old text stays visible, struck through, with the correction handwritten beside it in red pen: an **amendment**.


![The Strip operations board: four bays of coloured project strips, a radar scope and a shift handover log](https://raw.githubusercontent.com/m0hss/strip/master/images/screenshot.png)

**Live demo:** [strip-hugo.netlify.app](https://strip-hugo.netlify.app/)

## Requirements

Hugo **extended 0.146.0 or later**. The theme uses the newer layout system (`layouts/_partials/`, `layouts/_shortcodes/`, `layouts/_markup/`).

## Install

As a Hugo Module (recommended):

```bash
hugo mod init github.com/you/your-site
```

```toml
# hugo.toml
[module]
  [[module.imports]]
    path = "github.com/m0hss/strip"
```

Or as a classic theme, from your site's root:

```bash
git submodule add https://github.com/m0hss/strip.git themes/strip
```

```toml
# hugo.toml
theme = "strip"
```

Then:

```bash
hugo server -D
hugo --gc --minify
```

To start from the demo, copy `exampleSite/content/` into your site and the `[params]` and `[[menus.main]]` blocks from `exampleSite/hugo.toml` into yours (leave out its `[module]` block, which only points the demo at this repository). Replace the sample projects with your own.

The board only shows pages from `params.boardSections` (`projects` by default). A site without that section still builds: the bays show `SECTOR EMPTY`, and other sections render as plain lists and pages.

## Try the example site

```bash
cd exampleSite
hugo server
```

`exampleSite/hugo.toml` replaces the module with the repository root (`../..`), so you don't need a `themes` folder or a symlink. Every project and log in the example site is a fictional sample from the design.

The live demo is this example site, built by Netlify from `netlify.toml` at the repository root on every push to `master`.

## Configuration

```toml
[params]
  theme = "dark"                # "dark" (Radar room, default) or "light" (Tower in daylight)
  boardSections = ["projects"]  # sections whose pages become strips on the board
  description = "..."           # meta description fallback
  # kicker = "STRIP PORTFOLIO"  # optional: override the header lines
  # boardTitle = "OPERATIONS BOARD"
  [params.radar]
    enable = true               # radar scope under the board; false hides it
    bays = ["ACTIVE"]           # bays whose strips appear as contacts
  [params.handover]
    enable = true               # shift handover log beside the radar; false hides it
    entries = 3                 # latest logs and amendments listed, newest first
    logSections = ["logs"]      # sections whose pages count as log entries
    officer = "M. Sassi"        # officer line and signature; both left out when unset
  [params.footer]
    credit = true               # the "// BY FIXBYTE" link; false removes it

# Tags only. Hugo builds its default categories taxonomy unless the site
# declares its own, and a theme cannot switch it off.
[taxonomies]
  tag = "tags"

[[menus.main]]
  identifier = "board"   # identifiers board, logs, about, sweep pick up i18n labels
  name = "BOARD"
  pageRef = "/"
  weight = 10
[[menus.main]]
  identifier = "logs"
  name = "LOGS"
  pageRef = "/logs"
  weight = 20
[[menus.main]]
  identifier = "about"
  name = "ABOUT"
  pageRef = "/about"
  weight = 30
[[menus.main]]
  identifier = "sweep"
  name = "RADAR SWEEP"
  pageRef = "/search"
  weight = 40
```

The search page is an ordinary content page with `layout: "search"` (see `exampleSite/content/search.md`).

## Content model

### Projects (strips)

`hugo new projects/api-02-core-api-rewrite.md`

```yaml
---
title: "Core API Rewrite"
callsign: "API-02"
type: "software"     # software → SFTWR (blue), design → DESGN (pink),
                     # writing → WRITE (green), anything else → MISC (buff)
status: "ACTIVE"     # PENDING | ACTIVE | LANDED | DIVERTED
date: 2026-10-01     # shown as OPENED; orders strips within a bay
summary: "Migrating legacy REST endpoints to GraphQL."
opened_note: "Opened. Full REST-to-GraphQL migration planned."  # optional
amendments:
  - old: "Full schema migration for v1."
    new: "Scope reduced to read-only queries for v1."
    date: 2026-10-05
    rotate: -1       # optional: -1, 1 or 2 (degrees)
tags: ["graphql"]
draft: true
---
```

Status decides the bay. The date only orders strips within a bay, newest first. A strip with a missing or unknown status is left off every strip list (board, radar scope, handover log, vectors, search, section and tag pages), and the build prints one warning that names the file. The latest amendment appears on the strip; the project page shows the full **Amendment log**. Each amendment needs `old`, `new` and a `date` (`YYYY-MM-DD`); one that lacks any of them is left out, and the build prints a warning that names the file.

### Logs

Short dated notes in `content/logs/`, shown on a controller's logpad (ruled paper with a red margin line).

### Tags (squawk codes)

Each tag gets a stable 4-digit code made from its name (digits 0 to 7, like a real transponder code). Only the `tags` taxonomy gets squawk codes: any other taxonomy a site builds, such as Hugo's default `categories`, is listed under its own name without codes.

## Writing in Markdown

| Element | How |
| --- | --- |
| RX transcript | Any blockquote: `> Ship reads first.` gets the `> RX:` prefix |
| NOTAM | `{{</* notam */>}}Read-only mode in effect.{{</* /notam */>}}` (optional `title="..."`), or a GitHub-style alert `> [!NOTE]` |
| Amendment in text | `{{</* amend old="Cutover in November." new="Cutover moved to Q1." date="2026-10-05" */>}}` |
| Teletype | Fenced code blocks: green on near-black, keywords amber |
| Figure | Hugo's built-in `{{</* figure */>}}`, with a mono caption |

## Design

`Strip Theme.html` is the design source of truth, exported from the Claude design canvas "Strip Theme". Open it in a browser with JavaScript enabled. It is a reference only: no layout loads it and it is not part of the theme's assets.

- Colour tokens live in `assets/css/tokens.css` and nowhere else. The light and dark values come from the component sheet.
- Fonts are self-hosted from `static/fonts/` (latin subsets, SIL Open Font License 1.1): IBM Plex Mono for data, IBM Plex Sans for body text, and Kalam only for amendments.
- Every user-visible string lives in `i18n/en.toml`.
- The page reads fully without JavaScript. The ZULU clock and the radar sweep filter are enhancements.

## Licence

[MIT](LICENSE), ©2026 [FixByte](https://studio.fixbyte.be).
Report a correction

Explore similar templates

Compare previews and descriptions within the same stack and category.

hugo-PaperMod

hugo-PaperMod

A fast, clean, responsive Hugo theme for blogs and lightweight portfolios, with three layout modes (Regular, Home-Info, Profile), automatic and manual light/dark themes, Fuse.js client-side search, multilingual support, and built-in Open Graph, Twitter Cards, and Schema.org data.

Hugo · Portfolio

Congo

Congo

Congo is a minimal Hugo content theme built on Tailwind CSS 3.0, designed for blogs, portfolios, and lightweight content sites. It offers multiple homepage layouts, customizable dark mode, multilingual support including RTL, and built-in client-side search, Mermaid, Chart.js, and KaTeX.

Hugo · Blog

toha

toha

Toha is a Hugo theme for personal portfolios, featuring a minimalist, responsive design with configurable homepage sections such as about, experience timeline, and achievements gallery.

Hugo · Portfolio

hugo-profile

hugo-profile

hugo-profile is a mobile-first Hugo theme for personal portfolios and blogs, with multilingual support, light/dark themes, categories and tags, Google Analytics, Disqus comments, and Formspree contact forms.

Hugo · Portfolio

hugo-theme-introduction

hugo-theme-introduction

Introduction is a minimal Hugo theme that can be configured as a single-page site or a full site with multiple sections. Homepage sections are generated from Markdown files under content/home/, with weight sorting and optional images.

Hugo · Portfolio

hugo-theme-console

hugo-theme-console

A minimalist, responsive Hugo theme inspired by the system terminal and built on Terminal CSS. It includes blog posts, photo galleries, and custom pages, with light/dark theming and style overrides via CSS variables.

Hugo · Portfolio