What it is
Hexo is a static site generator for blogs, built on Node.js and distributed as the hexo package through npm. The project is written in TypeScript, licensed under MIT, and lives in the Node.js and JavaScript ecosystem alongside the broader set of static site generators tracked under the static-site-generator topic. It has been published for roughly 14 years, carries about 41,766 stars, and points users to a dedicated website and documentation set at hexo.io.
The problem it solves is the gap between writing posts in plain files and publishing a finished website. Instead of running a database-backed content management system, a writer initialises a project, creates posts as Markdown files, and runs a command that renders those files into static output. Generation is described as fast, and the resulting files can be deployed to GitHub Pages, Heroku, or similar hosts with a single command. Extensibility is handled through a documented API plus community themes and plugins, so the framework covers the pipeline from source text to published pages without requiring a server-side application.
Key capabilities
- Fast static file generation from Markdown source.
- Support for GitHub Flavored Markdown and most Octopress plugins.
- One-command deployment to GitHub Pages, Heroku, and similar targets.
- A documented API for building extensions.
- Hundreds of community themes listed on the project wiki.
- Hundreds of community plugins listed on the project wiki.
- Distributed through npm, with a Homebrew formula available for macOS and Linux.
Who uses it and how
- Personal bloggers who write posts in Markdown and publish generated HTML rather than maintaining a CMS.
- Writers migrating existing Octopress content, since most Octopress plugins are supported.
- Developers who deploy the generated output to GitHub Pages or Heroku using the built-in deploy command.
- Theme and plugin authors who build against the published API and distribute work through the community listings.
- Contributors taking part in Hacktoberfest, which the repository topic list explicitly names.
Getting started
Install the command line tool globally with npm install hexo-cli -g, or use brew install hexo on macOS and Linux. Then