Nerdy is a nerd-vibed Hugo theme for personal portfolios and blogs.
Live demo and documentation: https://nerdy.hugo-themes.com
The demo site also serves as the documentation site.
- Nerd-vibed design.
- Interactive terminal for exploring the author.
- Card-style sidebar for an at-a-glance author overview.
- Group posts by subject, topic, and series.
- Data-driven configuration.
- Light and dark theme.
- Hugo
0.162.1or newer - Node.js 24 or newer and npm for Tailwind CSS, Portless, and JavaScript dependencies
- Go for Hugo Modules; the example site and recommended install path both use them
- Optional: mise for local tool and task management
Nerdy is intended to be used as a Hugo Module:
module:
imports:
- path: github.com/hugo-themes/nerdyEnable Hugo build stats so Tailwind can discover classes generated by Hugo templates:
build:
buildStats:
enable: trueYour site also needs the npm dependencies used by the theme's asset pipeline. The dependencies in this repository's package.json are the reference set.
For the full setup flow, required data files, and customization options, use the documentation posts at https://nerdy.hugo-themes.com.
Clone the repository and run the bundled example site:
git clone https://github.com/hugo-themes/nerdy.git
cd nerdy
npm install
npm run serverThen open https://nerdy.localhost.
Portless is installed as a development dependency and provides the stable local DNS name. On first run, it may ask to trust its local HTTPS certificate. If your browser still marks the page as not secure, run npm run portless:trust, restart the browser, and open https://nerdy.localhost again.
If https://nerdy.localhost shows a Portless 404, stop any stale Portless proxy with portless proxy stop, then run npm run server again. If the proxy was started with elevated privileges, use sudo portless proxy stop once before restarting.
To bypass Portless and run Hugo directly instead:
npm run server:localThen open http://localhost:1313.
The repository root contains the reusable theme. The demo and documentation site lives in exampleSite/ and is what the local server runs.
npm run buildThe generated site is written to exampleSite/public/.
Use the npm scripts instead of calling hugo directly. They add node_modules/.bin to PATH and run a lightweight in-memory Hugo pass first so hugo_stats.json exists before Tailwind compiles the final stylesheet.
| Command | Description |
|---|---|
npm run server |
Start the example/documentation site through Portless at https://nerdy.localhost. |
npm run dev |
Alias for npm run server. |
npm run server:local |
Start the example/documentation site directly on http://localhost:1313. |
npm run build |
Build the production example/documentation site. |
If you use mise, the repository includes matching tasks:
mise install
mise run server
mise run buildmise run server uses the same Portless-backed flow as npm run server. Use mise run server-local to bypass Portless and serve directly on http://localhost:1313.
The mise tasks install npm dependencies automatically before running server or build commands.
layouts/- theme templates and partialsassets/- CSS, JavaScript, icons, and images processed by Hugo PipesexampleSite/- live demo, documentation posts, sample content, and sample datapackage.json- Tailwind, Alpine.js, and local development scripts
Nerdy is released under the MIT License.