# hugo-eureka: a Hugo theme with Tailwind and a real documentation set

> Eureka is a Hugo theme for blogs and sites that ships a Tailwind CSS pipeline, right to left support, Font Awesome icons and a Hugo module with a Go dependency on the author's hugo-marble packages. Its tag history is frozen at 0.9.3 from 2022 while the repository keeps taking commits, which is the main thing to check before you adopt it.

**wangchucheng/hugo-eureka** — Eureka is a feature-rich and highly customizable Hugo theme.

- Repository: https://github.com/wangchucheng/hugo-eureka
- Website: https://www.wangchucheng.com/en/docs/hugo-eureka/
- Stars: 956 · Forks: 185
- Language: HTML
- License: Apache-2.0
- Published: 2026-10-20 · Updated: 2026-10-20 · Language: en
- Canonical page: https://hysenlabs.com/projects/wangchucheng-hugo-eureka

## A theme for people who want Tailwind, not a fixed design

Eureka is a Hugo theme, and the README is direct about its purpose: using Eureka allows you to customize and deploy your website quickly and easily. The topics attached to the repository say the same thing in a word list, blog, hugo, hugo-blog, hugo-blog-theme, hugo-site, hugo-theme, tailwind, tailwindcss and theme.

The Tailwind part is what distinguishes it from the fixed layout themes that are common in Hugo. The styling is built as a utility CSS pipeline rather than a stylesheet of hand written rules, which means a site owner changes the design by editing theme configuration and adding classes, not by fighting a prebuilt CSS file. The primary language of the repository is listed as HTML, which is what you would expect for a theme whose deliverable is templates and assets.

The repository layout confirms the structure of a Hugo theme with a build pipeline attached. layouts/ holds the templates, assets/ the styles and scripts, i18n/ the translation strings, data/ the data files Hugo exposes to templates, archetypes/ the content scaffolding, exampleSite/ a working site that shows the theme in use, and theme.toml the metadata Hugo reads. There is a resources/ directory, which is where Hugo writes its processed asset cache, and a _vendor/ directory for vendored dependencies.

The primary audience is someone who writes in Markdown and wants a blog that looks good without hiring a designer, and who is comfortable editing YAML and, if needed, HTML templates.

The licence is Apache-2.0, and the LICENSE file sits at the repository root alongside a CONTRIBUTING.md and a .prettierrc.

## The documentation pages are the real manual

Most Hugo themes ship a README that says install the theme and edit the config. Eureka instead publishes a documentation site with a specific sequence, and the README walks through it deliberately.

Getting Started is where you build and deploy a site with Eureka. Homepage Configuration covers the homepage. Content Management explains the content structure and the editing skills needed to write for the theme. Customize Eureka is the configuration and options reference. Multilingual Mode is the chapter on building a multilingual site. Update Eureka covers the different ways to update the theme.

The README frames these as a progression, each chapter assuming you finished the previous one, which is a good sign for a theme whose main risk is that a user changes something in the wrong order and cannot tell which part broke.

There is also a live demo at hugo-eureka.netlify.app and a project repository link, both offered as ways to explore the theme before committing to it. The demo matters more than usual here, because the appearance of a theme is the thing you cannot read in a config file.

The sites using Eureka list includes wangchucheng.com and ruiqima.com, and the README asks anyone else who uses the theme to add the hugo-eureka topic on their repository so others can find it.

One small inconsistency is worth flagging for anyone following the links: the English README links to a Simplified Chinese version at README.zh.md, while the top level of the repository also carries the main README.md and the documentation set itself is hosted on the author's own site under wangchucheng.com.

## Multilingual mode and where the configuration lives

Eureka supports building a multilingual site, and the mechanism is the standard Hugo one rather than something the theme invented.

The i18n/ directory at the repository root holds the translation strings, and the language configuration lives in config.yaml, which is the Hugo configuration file the theme ships. The documentation links to a dedicated Multilingual Mode page, and the theme has its own Chinese documentation, so the multilingual story is a first class feature rather than an afterthought bolted on for the maintainer's own site.

For a Hugo user this matters less than it might sound, because Hugo's multilingual support is already in the generator. What a theme adds is the set of translation strings and the templates that respect them, and Eureka has both. The risk is in the content side rather than the theme side: a multilingual site needs each translation of a page to exist, and the theme cannot create that for you.

The archetype directory handles the other half of the scaffolding. When you create content with hugo new, the archetype supplies the front matter shape the theme expects, which is what keeps a blog from accumulating posts whose metadata does not match the templates.

The exampleSite/ directory is the other piece worth understanding before you start. Hugo can copy an example site into a project as a starting point, and for a theme with as much configuration surface as Eureka has, that example site is likely to be faster and less error prone than starting from a blank site and following the documentation chapter by chapter.

## The Go module side: hugo-eureka depends on hugo-marble

The go.mod file is short and it is the part of the repository that surprises people who expect a theme to be pure templates.

```toml
module wangchucheng.com/hugo-eureka

go 1.17

require github.com/FortAwesome/Font-Awesome v0.0.0-20210804190922-7d3d774145ac // 5.15.4
```

The theme is distributed as a Hugo module, and it pulls in two packages from the author's own module path:

```toml
require (
	wangchucheng.com/hugo-marble/search v0.1.0 // indirect
	wangchucheng.com/hugo-marble/utils v0.1.0-alpha.1 // indirect
)
```

The hugo-marble/search and hugo-marble/utils modules are marked indirect, which means Hugo's module resolution brings them in rather than the theme's code calling them directly. A search module is a substantial dependency to inherit: search in a static site generator means building an index at build time, and a reader looking at this file is being told that the theme delegates that to a separate module.

Font Awesome is required directly, pinned to the 5.15.4 release. That pin is old enough that it is worth knowing, since Font Awesome 6 restructured the icon set and the free tier.

The Go directive says 1.17, which sets a floor on the Go toolchain needed for the module tooling rather than on Hugo itself. In practice this means a modern Hugo installation with Go module support enabled, which is now the default path for Hugo projects that use modules.

## The CSS pipeline: Tailwind 3, RTL, PurgeCSS and Prettier

The npm side of the theme is where the styling decisions become visible, and it is a real toolchain rather than a single dependency.

```json
        "@fullhuman/postcss-purgecss": "^4.1.3",
        "@tailwindcss/typography": "^0.5.2",
        "autoprefixer": "^10.4.2",
        "cssnano": "^5.1.1",
        "postcss": "^8.4.8",
        "postcss-cli": "^9.1.0",
        "tailwindcss": "^3.0.23",
        "tailwindcss-rtl": "^0.9.0"
```

Tailwind CSS 3.0.23 is the core, with the typography plugin for styling rendered Markdown, and tailwindcss-rtl for right to left layouts, which is what makes the theme usable for Arabic, Hebrew and Persian sites rather than only left to right ones. PostCSS runs the pipeline, autoprefixer adds vendor prefixes, cssnano minifies, and the PostCSS PurgeCSS plugin removes unused classes based on the content, which is what keeps a utility first stylesheet from shipping every utility to every visitor.

Prettier is there too, with two plugins: prettier-plugin-go-template so that Hugo Go templates format correctly, and prettier-plugin-tailwindcss so that class names are sorted in a consistent order. Both exist to keep diffs small when many people edit templates.

There is a browserslist in the same file covering the last version, more than one percent usage, maintained node versions and not dead, which is the input autoprefixer uses to decide which prefixes to emit.

What is not here is as informative as what is. The package.json declares devDependencies and no scripts, so the repository does not document a single command that builds the CSS, and the README does not add one. If you fork the theme and change the Tailwind configuration, you will be assembling that step yourself from the PostCSS CLI.

## Apache-2.0, a release line frozen in 2022 and commits that keep landing

The licence is Apache-2.0, which is the standard choice for a theme meant to be forked and modified, since it grants patent rights and does not require derived themes to be released under the same terms.

The release history is where you need to look carefully. The tagged versions are v0.9.3 from 2022-06-01, v0.9.2 from 2022-05-27 and v0.9.1 from 2022-03-09, and the version field in package.json still reads 0.9.3. Meanwhile the last push was on 2026-10-20, so commits are still landing on main.

That gap has two consequences. If you pin a tag, you are pinning a 2022 snapshot that predates most of the current work, and you also lose whatever fixes have landed since. If you track main, you get the current code with no release markers and no changelog to tell you what changed between the two.

The documentation has an Update Eureka page that describes different ways to update the theme, and it is the place to look for what the maintainer considers a safe upgrade path, since the release tags alone are not a reliable guide.

The main branch is also where development happens, which is a reason to read the repository's recent history before choosing how to consume the theme.

For a website that is a personal blog and can be rebuilt in seconds, tracking main is low risk. For anything with a deployment pipeline and published URLs, pin a commit you have built and tested yourself, because the newest tag is more than four years old.

## Conclusion

hugo-eureka fits a writer or team that wants a Hugo blog with Tailwind styling, right to left support and a documentation set covering configuration, content and translation. It does not fit a team that needs a maintained release train or a documented command line build pipeline. Verify first that the current main branch still builds with your Hugo version, since the newest tagged release is v0.9.3 from 2022-06-01 while the last push was on 2026-10-20, and read the Update Eureka page for the supported ways to upgrade.

## FAQ

### How do I get started with the hugo-eureka theme?

The README points to a Getting Started guide that covers building and deploying a Hugo site with Eureka, and to a live demo hosted on Netlify and the project repository. The documentation also covers homepage configuration, content management, customization, multilingual mode and updating the theme.

### Does hugo-eureka support multilingual sites?

Yes. Multilingual Mode is one of the documented chapters, the theme carries an i18n/ directory for translation strings and a config.yaml for configuration, and the project maintains Chinese documentation alongside the English one.

### Which CSS tooling does hugo-eureka use?

The package.json lists Tailwind CSS 3.0.23 with the typography plugin and tailwindcss-rtl, PostCSS with the PurgeCSS plugin, autoprefixer, cssnano and Prettier with plugins for Go templates and Tailwind class order. The package.json declares no scripts, so no build command for the CSS is documented.

### What are the Go module dependencies of hugo-eureka?

The go.mod declares the module wangchucheng.com/hugo-eureka on Go 1.17, requires github.com/FortAwesome/Font-Awesome at 5.15.4, and pulls in wangchucheng.com/hugo-marble/search and wangchucheng.com/hugo-marble/utils as indirect dependencies.

## Sources

- [License: Apache-2.0](https://github.com/wangchucheng/hugo-eureka/blob/main/LICENSE)
- [Project website](https://www.wangchucheng.com/en/docs/hugo-eureka/)
- [README](https://github.com/wangchucheng/hugo-eureka/blob/main/README.md)
- [Releases](https://github.com/wangchucheng/hugo-eureka/releases)
- [wangchucheng/hugo-eureka on GitHub](https://github.com/wangchucheng/hugo-eureka)

---

Hysen Labs editorial analysis, written from the project's own repository and release notes. Cite the canonical page: https://hysenlabs.com/projects/wangchucheng-hugo-eureka
