HugoPortfolioBlog

lekh — Hugo Portfolio Template

By ba11b0y

lekh is a minimal Hugo-based personal portfolio theme focused on text content, offering dark mode, social links, RSS, and GoatCounter analytics.

Explore the design

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

2 previews
Desktop homepage1 / 2
Desktop captureTop of page

Actual screenshot captured by the server browser.

All pages & views 2

Screenshots show visual appearance; interactive behavior may differ.

Recorded 2026-10-01View source

What stands out

A quick read of the recorded project description.

01

Text-centric minimal portfolio and blog layout

02

Built-in dark mode, taken from gwern.net

03

Configure name, bio, email, and resume filename via params in config.toml

04

Supports multiple social profile links, which can be added individually in the configuration

05

Built-in RSS output, and GoatCounter analytics can be enabled via GoatCounterCode

06

Content is written in Markdown, and the number of homepage posts is controlled by PostLimit

Template Details

lekh is a Hugo theme for personal portfolios and blogs, emphasizing text content and minimal typography. The code is adapted from Vegard's personal site, and the dark mode is taken from gwern.net. The theme configures name, bio, email, resume filename, number of posts shown on the homepage, and multiple social profile links (such as GitHub, Twitter, Goodreads, LinkedIn) via params in config.toml. Content is written in Markdown, and posts can be created with hugo new posts/...; the number of homepage posts is controlled by PostLimit. RSS output is built in, and GoatCounter analytics can be enabled by filling in GoatCounterCode. The theme repository uses the MIT license and can be used, modified, and distributed for free, but third-party assets such as demo images, fonts, and icons require separate license verification; external services like GoatCounter may also have their own pricing terms. The repository was last updated in 2023, and the README does not describe additional features or maintenance status.

HugoPortfolioBlog

Is it right for your project?

Use Cases

  • Building a personal portfolio page focused on text introductions
  • Maintaining a lightweight personal blog with RSS output
  • Personal sites that need dark reading mode and basic analytics
  • Managing content with Hugo and Markdown, and adjusting site information centrally through a configuration file

Suitable For

  • Personal site authors who prefer minimal text typography and do not need complex visual components
  • Developers who use Hugo and are familiar with config.toml configuration
  • Users who need a combined portfolio and blog and want to integrate GoatCounter analytics

Getting started & customization

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

  1. 1

    Install Hugo first, then run hugo new site <site_name> to create a site

  2. 2

    In the site directory, add lekh to themes/lekh via git submodule, and set theme = "lekh" in config.toml

  3. 3

    Copy themes/lekh/exampleSite/config.toml to the site root, and modify the personal information and social links in params as needed

  4. 4

    Create posts with hugo new posts/title-of-post.md; hugo server -D previews drafts, while hugo server shows only published content

  5. 5

    When GoatCounterCode is left empty, analytics is not enabled; to enable analytics, register with GoatCounter and fill in the corresponding code

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 applies to that version's code and does not mean external services or third-party assets are free.

Must comply with when using

  • The code of this version may be used, modified, used commercially, and distributed 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

  • GoatCounter is an external analytics service; you must register and obtain a code to fill in GoatCounterCode. The service may have its own pricing or usage terms, and the theme itself does not provide an analytics backend.
  • The dark mode styles are taken directly from gwern.net; the license for that material must be verified separately and is not granted along with the theme's MIT license.
  • The theme is adapted from Vegard's personal site; if you reuse its original assets or code, you must verify the upstream license and attribution requirements yourself.
  • Demo images, fonts, icons, and other third-party assets must be checked under 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.
View Original Text Basis

Permission is hereby granted, free of charge

Original License Text

GoatCounter counts(analytics). Know more about GoatCounter [here](https://goatcounter.com)

Original README

Dark mode (taken from https://www.gwern.net/ as it is.)

Original README

Simple, text-focussed and minimal personal portfolio theme based on https://github.com/vegarsti/vegarsti.github.io

Original README
https://github.com/ba11b0y/lekh/blob/master/LICENSE.mdhttps://github.com/ba11b0y/lekh/blob/master/README.md

Compiled by DeepSeek based on repository license and README ·2026-10-01. 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 · 77 / 100
Technologies
Hugo
Website type
Portfolio · Blog
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
2023-05-06
Screenshot last checked
2026-10-01

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.

Automatically checked against source and license rules; no manual editorial review.

Inspect the recorded source material

SHA-256: 78bad74bf6e810ccd37d73525851b1f0748ce63414bf1099aef0548373aea852

2026-10-01T00:52:57.269Z

Source file / repository
# Lekh
Simple, text-focussed and minimal personal portfolio theme based on https://github.com/vegarsti/vegarsti.github.io

## Screenshot ([Live Demo](https://agitated-yonath-d9c445.netlify.com/))
![Screenshot](https://raw.githubusercontent.com/invinciblycool/lekh/master/images/screenshot.png)

## Features
* Social media links
* Markdown supported
* Easy to personalize
* RSS feed
* Dark mode (taken from https://www.gwern.net/ as it is.)
* GoatCounter counts(analytics). Know more about GoatCounter [here](https://goatcounter.com)


## Installation

### Installing Hugo

```sh
# For Linux
sudo apt-get install hugo

# For Mac
brew install hugo

# Detailed instructions at https://gohugo.io/getting-started/installing#readout
```

### Creating a new site

```sh
hugo new site <site_name>
```

### Adding lekh as a theme

```sh
cd <site_name>
git init
git submodule add https://github.com/ba11b0y/lekh.git themes/lekh
echo theme = \"lekh\" >> config.toml

```

Here's Hugo's [official guide](https://gohugo.io/getting-started/quick-start/) for more details.


## Personalization

Hugo looks for a `config.toml` in the root of your site.
To personalize the theme, copy the default config shipped with the theme

`cp themes/lekh/exampleSite/config.toml config.toml`

And then customize accordingly.

Or simply copy the below config and customize accordingly.

```toml

baseURL = "https://example.com/"
languageCode = "en-us"
title = "Example Lekh Site"
theme = "lekh"

[params]
Name = "Agent Smith"
About = "We're not here because we're free. We're here because we're __not__ free. There's no escaping reason. No denying purpose. Because as we both know without purpose, we would not exist.<br/> Read more [here](https://matrix.fandom.com/wiki/Agent_Smith)"
Email = "[email protected]"
Resume = "" # Add the filename with file extension.
PostLimit = 4 # Sets the number of posts to display on the front page
GoatCounterCode = ""

[[params.profiles]]
name = "GitHub"
url = "https://github.com/ba11b0y"

[[params.profiles]]
name = "Twitter"
url = "https://twitter.com/ba11b0y"

[[params.profiles]]
name = "Goodreads"
url = "https://www.goodreads.com/user/show/91520565-rahul-tiwari"

[[params.profiles]]
name = "LinkedIn"
url = ""

```

## Creating posts

```sh
# This creates a new draft post in content/posts
hugo new posts/title-of-post.md
```

## Serving it up

```sh
# This will show up your draft posts as well.
hugo server -D
#OR

#This will show up only your published posts.
hugo server
```

## Credits

* Thanks to [Vegard's](https://github.com/vegarsti) personal site from which the theme was heavily inspired.
* Also to https://www.gwern.net/ for the dark mode.

Feel free to contribute and open issues.
Report a correction

Explore similar templates

Compare previews and descriptions within the same stack and category.