Open-source project
Fechin/reference avatar
Fechin/reference

Fechin/reference: a Hexo site that builds developer cheat sheets from Markdown

⭕ Share quick reference cheat sheet for developers.

10,883 stars1,322 forksEJSGPL-3.0

At a glance

What is it?
Fechin/reference is a Hexo-based static site project behind cheatsheets.zip, a collection of developer cheat sheets written in Markdown and EJS. It is a content repository first and a software project second, and that shapes who should clone it.
Who is it for?
Clone Fechin/reference if you want to self-host a cheat sheet site, contribute a sheet in Markdown, or study how a Hexo theme is wired with Tailwind and gulp. Do not adopt it as a documentation framework for an API or product docs, and do not treat it as a searchable reference service you can query programmatically, because the project exposes no API or CLI.
Can I use it commercially?
Yes, with conditions. GPL-3.0 is a copyleft licence: if you distribute software that includes it, you must release that software's source code under the same licence. Running it internally without distributing it does not trigger that obligation.
Is it still maintained?
Yes. The repository last received commits 96 days ago.
What is it written in?
Mainly EJS, according to GitHub's language statistics.

Answers come from the project's GitHub data, last synced on September 30, 2026, and from our analysis. They are not legal advice.

Editorial analysis

What Fechin/reference actually is, and who it is for

The repository describes itself as "a collection of cheat sheets contributed by open source angels" that shares quick reference sheets "in a nice layout." That sentence is the whole product. The code exists to render Markdown cheat sheets into static HTML pages, and the README points readers at cheatsheets.zip as the primary and maintained domain, noting that the original quickref.me domain was acquired by a US-based company.

The audience is narrow and specific. It is for people who want a self-hosted or forkable cheat sheet site, and for contributors who want to add a sheet for a language or tool. The README lists sheets across two broad groups: programming (Bash, C, C++, C#, CSS 3, Dart, Docker, ES6, Go, GraphQL, Hook, HTML, INI, Java, JavaScript, jQuery, Kubernetes, LaTeX, Laravel, MATLAB, Markdown, PHP, Python, Rust, Sass, TOML, VHDL, YAML) and a toolkit group (ChatGPT, VSCode, Mitmproxy, XPath, Emacs, Emmet, and more).

If you arrived hoping for a library you import, or a service you call, this is the wrong repository. There is no package to install into an application. The primary language is listed as EJS, which is the templating layer of the Hexo theme, not an application runtime you embed.

Hexo, Tailwind, gulp: the build pipeline behind cheatsheets.zip

The architecture is a conventional static site pipeline with a few moving parts. package.json pins hexo 7.3.0 and declares scripts that split into development and build paths. The dev script runs dev:hexo and dev:css in parallel with run-p, so the site server and the Tailwind watcher run together. The build script runs sequentially: clean the Hexo cache, delete db.json, compile the Tailwind source, generate the site, then run gulp with a 4096 MB heap.

That gulp step is the interesting part. It is not decoration. The build:gulp script passes --max-old-space-size=4096, which is a signal that the post-processing step on a full build of this many pages needs headroom. Anyone running this on a small container should expect that number to matter.

The theme lives under themes/coo, with JavaScript under themes/coo/source/js and the Tailwind entry point at themes/coo/source/css/style.tailwindcss, compiled by postcss into style.css. Content sits under source/. The Dockerfile mirrors the same shape in three stages: a node:19 build stage that installs pnpm, runs pnpm install and pnpm run build, an nginx:alpine stage that copies /app/public and replaces the default config with the repository's nginx.conf, and a final alpine image that installs nginx, exposes port 80, and defines a HEALTHCHECK that wgets http://localhost:80. The CMD is nginx -g daemon off.

One detail worth flagging: the build stage uses node:19, which is past end of life. That is a maintenance cost, not a functional bug, but it is the kind of thing that shows up when a dependency audit runs.

Installing Fechin/reference and rendering your first cheat sheet

The repository does not ship a step-by-step install guide in the README. What it does give you is a package.json with a complete script surface, which is enough to reconstruct the workflow. You need Node.js and pnpm, since the lockfile is pnpm-lock.yaml and the Dockerfile installs pnpm globally before running pnpm install.

The install script is declared in package.json as prepare and runs husky, so the git hooks are set up as part of the install:

json
"prepare": "husky"

For local development, package.json declares dev as run-p dev:*, which starts the Hexo server and the Tailwind watcher together:

json
"dev": "run-p dev:*",
"dev:hexo": "npx hexo clean && npx hexo server",
"dev:css": "npx postcss themes/coo/source/css/style.tailwindcss -o themes/coo/source/css/style.css --watch"

The Hexo server serves the generated site locally, and the CSS watcher rebuilds style.css from style.tailwindcss whenever you edit the source. If you only need the CSS side, dev:css is the narrower command.

To produce a deployable site, package.json declares build as run-s build:*:

json
"build": "run-s build:*",
"build:clean": "npx hexo clean",
"build:rm-db.json": "rm db.json || exit 0",
"build:css": "npx postcss themes/coo/source/css/style.tailwindcss -o themes/coo/source/css/style.css",
"build:generate": "npx hexo generate",
"build:gulp": "npx gulp --max-old-space-size=4096"

That chain cleans, removes db.json, compiles CSS, runs hexo generate, and then runs gulp. The output lands in public/, which is the directory the nginx stage of the Dockerfile copies into /usr/share/nginx/html/. The Dockerfile itself declares the container build and the port it exposes:

dockerfile
FROM node:19 AS build-app
WORKDIR /app
COPY . .
RUN npm install -g pnpm
RUN pnpm install
RUN pnpm run build

The image exposes port 80, and its health check polls http://localhost:80 inside the container, so the site should answer on that port once nginx starts.

Where the project gets in your way

The biggest limitation is that the repository is optimized for being the upstream of one specific website, not for being a general-purpose documentation tool. There is no documented content schema, no plugin API for injecting data, and no test suite beyond lint:check and format:check. The test script is literally run-s lint:check format:check, which checks ESLint and Prettier, not rendered output. A broken layout would not be caught by pnpm test.

The README also does not document deployment, rollback, or versioning of the generated site. There are no retrieved releases, so there is no changelog to read before upgrading. If you fork this and Hexo, gulp, or Tailwind moves, you are reading commit history, not release notes.

The build is heavy for what it produces. The 4096 MB heap on gulp, the parallel dev watcher, and the three-stage Docker build all assume a machine with real resources. On a constrained CI runner the gulp step is the one that will fail first.

Finally, the licence is GPL-3.0. That is a strong copyleft. If you fork the theme and distribute a modified version, the licence terms travel with it. The README does not discuss this, and nothing here is legal advice, but it is a real constraint on how you can reuse the theme in a commercial product.

How it compares to docs frameworks and static site generators

The honest alternative for most teams is not another cheat sheet site. It is a documentation framework such as Docusaurus or MkDocs, or a general static site generator like Hugo or Eleventy. The difference in approach is structural.

Docusaurus and MkDocs assume you are documenting your own product. They give you versioned docs, a sidebar derived from the file tree, search integration, and a plugin ecosystem aimed at API references. Fechin/reference gives you a curated, flat collection of sheets and a theme tuned for dense reference content. It has no versioning story in the README and no documented search layer.

Hugo and Eleventy are closer in spirit, since they also turn Markdown into static HTML. The trade-off is that you would be rebuilding the theme, the Tailwind pipeline, and the gulp post-processing yourself. What you get from this repository is the layout work already done for a specific content shape: short, dense, scannable sheets rather than long-form pages.

If your goal is a personal or team cheat sheet collection, the comparison that matters is against a plain Markdown repo plus GitHub Pages. That is simpler and has no build step. What it lacks is the rendered layout and the cross-sheet navigation the theme provides.

Maintenance, upgrades and what the repository tells you

The last push to the default branch was on 2026-06-26. The repository is not archived. That is the extent of what the metadata supports; the README does not make a maintenance promise, and there are no retrieved releases to anchor an upgrade cadence.

Upgrade cost is dominated by the dependency graph. package.json includes an audit script (pnpm audit --audit-level moderate), an audit:fix script, a security:check script that runs pnpm audit and pnpm outdated together, and deps:check and deps:update scripts built on npm-check-updates. The presence of those scripts is a fair signal that the maintainers expect dependency drift to be a recurring chore. Running pnpm run security:check is the fastest way to see how far behind a fork has fallen.

The build stage pins node:19 in the Dockerfile, which is no longer a supported Node line. If you build the image as written, you are building on an unsupported runtime. Changing that base image is the first thing a fork should consider, and it is a one-line edit.

On licence: GPL-3.0 covers the repository. The README links to the LICENSE file for the full text. If you plan to redistribute a modified theme, read that file rather than assuming permissive terms.

Editorial conclusion

Clone Fechin/reference if you want to self-host a cheat sheet site, contribute a sheet in Markdown, or study how a Hexo theme is wired with Tailwind and gulp. Do not adopt it as a documentation framework for an API or product docs, and do not treat it as a searchable reference service you can query programmatically, because the project exposes no API or CLI. Before you commit, run pnpm install and pnpm run build locally, confirm the gulp step completes under 4096 MB, and read the GPL-3.0 LICENSE to decide whether a derivative theme fits your distribution plans.

Frequently asked questions

What is Fechin/reference?

It is a collection of developer cheat sheets contributed by open source contributors and rendered through a Hexo-based static site. The README describes it as sharing quick reference sheets in a nice layout, with the live site at cheatsheets.zip.

How do I install Fechin/reference?

The repository ships a pnpm lockfile and a prepare script that runs husky, and the Dockerfile installs pnpm before running pnpm install and pnpm run build. The README does not document install steps directly; these come from package.json and the Dockerfile.

What is the difference between Fechin/reference and a docs framework like Docusaurus?

Fechin/reference is built around a curated set of short, dense cheat sheets and a Hexo theme, while Docusaurus and MkDocs target versioned product documentation with sidebars and search. The README does not describe versioning or a search layer for this project.

Which cheat sheets does Fechin/reference include?

The README lists programming sheets including Bash, C, C++, C#, CSS 3, Dart, Docker, ES6, Go, GraphQL, HTML, Java, JavaScript, Kubernetes, Markdown, PHP, Python, Rust, and YAML, plus toolkit sheets such as ChatGPT, VSCode, Mitmproxy, XPath, Emacs, and Emmet.

Is Fechin/reference free to use?

The repository is licensed GPL-3.0 and links to the LICENSE file for the full text. The README does not discuss commercial reuse, so anyone redistributing a modified theme should read the licence terms directly.

Official sources

  1. Fechin/reference on GitHub
  2. Issues
  3. License: GPL-3.0
  4. Project website
  5. README
Add this badge to your README

If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.

Add this badge to your README

markdown
[![Hysen Labs](https://hysenlabs.com/badge/fechin-reference.svg)](https://hysenlabs.com/projects/fechin-reference)