Open-source project
Libera-Chat/libera-chat.github.io avatar
Libera-Chat/libera-chat.github.io

Libera Chat's website is a Jekyll site with a style guide instead of a framework

The website of Libera Chat, providing documentation and news

569 stars145 forksCSSMIT

At a glance

What is it?
The Libera Chat website repository holds the documentation, news and policy pages for the Libera Chat IRC network, built with Jekyll and styled by hand-written CSS. Its most distinctive artefact is a README that is a style guide, covering British English, 78 character lines and logical CSS properties.
Who is it for?
Adopt this repository as a reference if you are running a volunteer-run community site with a lot of policy and documentation text, because the style guide and the content/code licence split are the reusable parts. Skip it if you want an application framework, since this is a static site with a Gemfile and a couple of npm scripts and nothing else.
Can I use it commercially?
Yes. MIT is a permissive licence: you can use, modify and sell software built on it, as long as you keep its copyright and licence notices.
Is it still maintained?
Yes. The repository last received commits 8 days ago.
What is it written in?
Mainly CSS, according to GitHub's language statistics.

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

Editorial analysis

A site that is mostly text, policy and minutes

The repository is described as the website of Libera Chat, providing documentation and news, and the top-level file listing is the clearest statement of what the site actually is. There is `index.md`, `about.md`, `bylaws.md`, `caec.md`, `chanreg.md`, `guidelines.md`, `guides.md`, `policies.md`, `privacy.md` and `security.md` as individual pages, plus a `news.html`, a `minutes.html` and a `404.md`. Then there are directories for `content/`, `contributing/`, `registration/`, `annual-reports/`, `static/`, `assets` equivalents, and the site plumbing itself: `_config.yml`, `_data/`, `_includes/`, `_layouts/` and `_plugins/`. This is a Jekyll site, which the `Gemfile` and `Gemfile.lock` confirm, and the primary language recorded for the repository is CSS, which tells you the styling is hand-written rather than pulled from a framework.

The style guide is the real engineering artefact

The README is not a description of the project, it is a style guide, and the level of specificity is unusual for a documentation site. The content rules start with British English, with two stated exceptions, content copied verbatim from external sources such as LICENSE files, and content that must comply with technical standards. Then come the formatting rules that only make sense for a project with many non-native English contributors. Channel names, nicknames, channel modes, user modes and IRC verbs and commands should be escaped as code, with the example given being `/join #libera`. In examples, required arguments are marked with `<>` and optional ones with `[]`. Filenames become the URL slug and must use lowercase alphanumeric characters only. Internal links must be root-relative. And lines should be no longer than 78 characters, so that people in 80-column terminals can edit the text without their editor paging over horizontally. Every one of those rules exists to remove a specific kind of friction for a specific contributor.

The CSS rules point at a deliberately small JavaScript budget

The code section of the style guide is where the design decisions are most visible. Indentation is two spaces. The instruction to be mindful about making the site accessible to all users, including those with screen readers or text-only web browsers, is a requirement rather than a preference. For CSS, the guidance is to prefer logical properties, with `margin-inline-start` given as the example instead of `margin-left`, and to define lengths in `rem` units. There is also a split between inline and external CSS: CSS that is absolutely necessary to generate the layout should go in the appropriate inlined CSS, and other CSS should be loaded separately. For JavaScript the guidance is blunt, you probably don't need JavaScript, and if you do, format it with standard.js. For HTML, prefer elements with semantic meaning, with `<main>` and `<article>` as the examples. The result is a site that is mostly HTML and CSS with a small amount of JavaScript, which is the correct shape for a documentation site and unusual for a modern one.

Linting markdown, and nothing else

The npm side of the project is one dependency and two scripts, which is the honest measure of how much JavaScript this site contains.

json
  "scripts": {
    "lint:md": "markdownlint -p .gitignore '**/*.md'",
    "lint:md:fix": "npm run lint:md -- --fix"
  },

The only devDependency is `markdownlint-cli`, and the lint script passes `.gitignore` as the ignore path so that vendored and generated directories are skipped, with a glob over all markdown files. There is a fix variant that runs the same thing with `--fix`, and the config lives in `.markdownlint.yml` with a `.markdownlintignore` alongside it. The `package.json` version is 1.0.0, the dependencies object is empty, and the repository field points at the Libera-Chat organisation. The `Gemfile` and `Gemfile.lock` handle the Jekyll side, and there is a `CNAME` file for the custom domain and a `.well-known/` directory, which is where a site publishes things like security contact information. The `package.json` homepage field points back at the repository README rather than the live site.

Two licences, and the gap between them matters

The licensing section splits the project in two, and the split is the part an adopter has to think hardest about. The content of the project itself is licensed under the CC BY-NC-SA 4.0 International Public License, in the file `LICENSE-content.txt`, and the underlying source code used to format and display that content is licensed under the MIT licence, in `LICENSE-code.txt`. For a community network's documentation that is a defensible arrangement. The prose stays shareable and remixable with attribution, the non-commercial clause keeps it from being lifted into a product, and the share-alike clause keeps derivatives circulating. For an organisation that is not a community group, the non-commercial element is the constraint, and the British English rule in the style guide is a signal of the intended audience. The rest of the site follows the same split in practice, with a `LICENSE.txt` in the content of the pages and the same two files at the repository root.

What the repository tells you about the project around it

Some things about the site only make sense once you know what Libera Chat is, and the repository shows them. The channel registration page and the `chanreg.md` file are about registering channels on the network, the `bylaws.md` and `policies.md` files are the governance documents, and `caec.md` is the community and abuse handling policy. The `annual-reports/` directory holds the network's annual reports, and the `contributing/` directory holds contribution guidance. A separate `minutes.html` at the top level suggests meeting minutes are published alongside the policies, which is the kind of transparency a network that operates public channels and has a legal entity behind it tends to provide. The `guides/` pages, the `news.html` and a `sponsors.md` file complete the picture of a site whose job is to hold the institutional knowledge of a volunteer-run network. The last push to the repository was on 2026-10-15, and there are no GitHub releases, since a documentation site is deployed rather than versioned.

Editorial conclusion

Adopt this repository as a reference if you are running a volunteer-run community site with a lot of policy and documentation text, because the style guide and the content/code licence split are the reusable parts. Skip it if you want an application framework, since this is a static site with a Gemfile and a couple of npm scripts and nothing else. Before you copy anything, read the two licence files separately, because the content is CC BY-NC-SA while the code is MIT, and a non-commercial restriction on the prose is a real constraint for an organisation that is not a community group.

Frequently asked questions

What is the Libera Chat website repository?

It is the source of the Libera Chat website, holding the documentation, news, policy and governance pages for the Libera Chat IRC network, built as a Jekyll site with hand-written CSS and a small amount of JavaScript.

How are the content and the code of the Libera Chat website licensed?

Separately. The content is licensed under the CC BY-NC-SA 4.0 International Public License in `LICENSE-content.txt`, and the source code used to format and display it is under the MIT licence in `LICENSE-code.txt`.

What are the style rules for contributing to the Libera Chat website?

British English, IRC terms escaped as code, filenames as lowercase URL slugs, root-relative internal links, lines no longer than 78 characters, two-space indentation in code, logical CSS properties with lengths in rem, semantic HTML elements, and as little JavaScript as possible.

How is the markdown in the Libera Chat website checked?

With markdownlint-cli as the only devDependency. The `lint:md` script runs `markdownlint -p .gitignore '**/*.md'`, and `lint:md:fix` runs the same with `--fix`. The configuration is in `.markdownlint.yml` with a `.markdownlintignore` alongside it.

Official sources

  1. Issues
  2. Libera-Chat/libera-chat.github.io on GitHub
  3. License: MIT
  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/libera-chat-libera-chat-github-io.svg)](https://hysenlabs.com/projects/libera-chat-libera-chat-github-io)

Was this useful?