This repo contains the source for hiero.org.
- Next.js
16.1.7 - React
19.2.3 - TypeScript
5 - Tailwind CSS
4 pnpmfor dependency management and scripts
The site uses the App Router under src/app, renders blog content from content/posts, and serves static assets from public/.
- Node.js
20or newer pnpm10or newer- Git
pnpm installPlatform-specific setup help:
- Linux: docs/setup/linux_setup.md
- Windows: docs/setup/windows_setup.md
- macOS: docs/setup/Macbook_setup.md
Start the development server:
pnpm devThe site will be available at http://localhost:3000.
pnpm dev runs pnpm sync:repo-stats first, then starts Next.js in development mode.
Lint the codebase:
pnpm lintFormat source files:
pnpm formatCheck formatting without changing files:
pnpm format:checkBuild the production app:
pnpm buildRun the production build locally:
pnpm start- Contributor docs index: docs/README.md
- Local Next.js setup: docs/nextjs-setup.md
- Repo overview: docs/01-repo-overview.md
- Content folder guide: docs/02-content-folder.md
- Adding pages: docs/03-adding-pages.md
- Contributor workflow: docs/workflow.md
- Blog writing guide: docs/blogs.md
- First contribution checklist: docs/05-first-contribution-checklist.md
- Testing and quality checks: docs/06-testing-and-quality-checks.md
- GitHub automation guide: docs/07-github-automation.md
Blog posts are loaded from top-level Markdown files in content/posts.
Hiero does not currently support translations or localized content variants, so new posts should be authored as a single English source file.
- Create a new file such as
content/posts/my-first-post.md. - Use TOML front matter with
+++delimiters. - Add the required post metadata.
- Write the body in standard Markdown.
- Add any images to
public/images/.... - Run
pnpm devand preview the post at/blog/<slug>.
Use this template:
+++
title = "My First Post"
date = 2026-03-15
draft = false
featured_image = "/images/my-first-post/hero.png"
categories = ["Blog"]
tags = ["Example", "Community"]
duration = "4 min read"
abstract = "A short summary used in the blog list and metadata."
slug = "my-first-post"
[[authors]]
name = "Your Name"
title = "Maintainer"
organization = "Hiero"
link = "https://github.com/your-handle"
image = "/images/authors/your-name.png"
+++
Write the rest of the article here in Markdown.Important notes:
- Use
+++, not YAML---. - The current site only scans
.mdfiles directly insidecontent/posts. - If
slugis omitted, the filename becomes the URL slug. - If
draft = true, the post is skipped locally and in production. - Raw HTML is not rendered in blog content. Use Markdown syntax instead.
- Hugo shortcodes like
{{< ... >}}and{{% ... %}}are stripped out by the current parser.
For the full field reference and workflow, see docs/blogs.md.
We welcome contributions such as:
- Code additions or changes
- Blog posts
We have several Open Issues at the Hiero website that need help.
Read Workflow Guide to get started.