These docs are intentionally concise because Bluefin aims to stay out of the way. The goal is to give contributors and users a short, opinionated reference for the parts of the Bluefin experience that are unique to this project.
This repository contains the Docusaurus site for Project Bluefin documentation. It combines end-user docs, contributor-facing project guidance, release notes, and generated data that powers dynamic pages like downloads, changelogs, and version dashboards.
docs/contains the main documentation pages, including installation, troubleshooting, downloads, contributor guidance, developer experience, and FAQ content.blog/contains release posts, announcements, status updates, and longer-form project storytelling.static/contains assets served as-is, plus generated JSON data consumed by the site.scripts/contains the fetch and generation scripts that build the data files used across the docs site.
New contributors usually want one of these starting points:
docs/installation.md,docs/introduction.md, anddocs/downloads.mdxfor core end-user onboarding contentdocs/tips.mdx,docs/troubleshooting.mdx, anddocs/FAQ.mdfor support-oriented docsdocs/contributing.md,docs/devcontainers.md, anddocs/local.mdfor contributor and developer workflow docsblog/for release history, announcements, and project updates
- Prefer linking upstream documentation with a short Bluefin-specific summary when the upstream project already owns the canonical docs.
- Use this repo for Bluefin-specific workflows, defaults, policy, release information, and project guidance.
- If something is undocumented, assume there may be a reason; check nearby docs and existing patterns before adding new content.
This site covers Bluefin-specific workflows, defaults, and project guidance. Generic GNOME, Fedora, or upstream-tooling documentation should usually stay upstream, with this site linking out and adding only the Bluefin-specific context contributors need.
docs/contains the main documentation pages for users and contributors.blog/contains release posts, announcements, and longer-form updates.static/contains unprocessed assets like images and other files served as-is by Docusaurus.- New docs pages should include Docusaurus frontmatter with at least
titleandslug;sidebar_positionis recommended for pages that belong in a sidebar, for example:
---
title: My Page
slug: /my-page
sidebar_position: 1
---- For the broader Bluefin contribution workflow, start with
docs/contributing.md.
This project uses just as a command runner for convenience.
Install it with brew install just or cargo install just.
just serve: Fetch all remote data, then build and serve the documentation locally.just dev: Fast hot-reload dev server — skips data fetching (runjust serveonce first to populate the cache).just build: Full production build (also fetches data).
Note:
just serveandnpm run startrun data-fetch scripts that call the GitHub API. SetGITHUB_TOKEN(orGH_TOKEN) in your environment to avoid rate-limit errors:export GITHUB_TOKEN=ghp_your_token_here just serveA fine-grained token with read-only public repository access is sufficient.
Manual setup
You've made some changes and want to see how they look?
You can install node and run it:
npm install --legacy-peer-deps
npm run start
Note: The
--legacy-peer-depsflag is required due to peer dependency conflicts between React versions. If you encounter "Cannot find module" errors (likexml2js), make sure you're using this flag during installation.
Alternatively, you can run the container:
docker compose up
Then make sure to format all your files with Prettier!
npm run prettier
If you encounter this error when running npm run start:
Error: Cannot find module 'xml2js'
This is typically caused by peer dependency conflicts during installation. To resolve:
- Remove existing node_modules:
rm -rf node_modules - Install with legacy peer deps:
npm install --legacy-peer-deps - Try running the command again:
npm run start
- Node.js 20+ (see
package.jsonengines field) just—brew install justorcargo install justGITHUB_TOKENorGH_TOKENenv var for data-fetch scripts (GitHub API calls)- This project uses npm for both local development and CI/CD builds