Skip to content

hiero-ledger/hiero-website

Hiero Website

OpenSSF Scorecard CII Best Practices License

This repo contains the source for hiero.org.

Current Stack

  • Next.js 16.1.7
  • React 19.2.3
  • TypeScript 5
  • Tailwind CSS 4
  • pnpm for 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/.

Requirements

  • Node.js 20 or newer
  • pnpm 10 or newer
  • Git

Install Dependencies

pnpm install

Platform-specific setup help:

Run Locally

Start the development server:

pnpm dev

The site will be available at http://localhost:3000.

pnpm dev runs pnpm sync:repo-stats first, then starts Next.js in development mode.

Build and Checks

Lint the codebase:

pnpm lint

Run the unit tests:

pnpm test

Update existing snapshots after an intentional UI change:

pnpm update-snap

Format source files:

pnpm format

Check formatting without changing files:

pnpm format:check

Build the production app:

pnpm build

Run the production build locally:

pnpm start

Project Docs

Creating a New Blog Post

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.

  1. Create a new file such as content/posts/my-first-post.md.
  2. Use TOML front matter with +++ delimiters.
  3. Add the required post metadata.
  4. Write the body in standard Markdown.
  5. Add any images to public/images/....
  6. Run pnpm dev and 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 .md files directly inside content/posts.
  • If slug is 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.

Contributing

We welcome contributions such as:

  • Code additions or changes
  • Blog posts

Code Changes and Additions

We have several Open Issues at the Hiero website that need help.

Read Workflow Guide to get started.

Blog Posts

See the Detailed Guide on Creating a Blog Post.

About

Official Hiero website built with Next.js, TS/React, and Tailwind CSS. Includes content, theming, and tooling for maintaining the Hiero web presence. Open-source and community-driven.

Topics

Resources

License

Code of conduct

Contributing

Security policy

Stars

Watchers

Forks

Contributors