Thank you for contributing to the Bluefin documentation! This guide covers how to contribute to this documentation repository specifically.
New to contributing? Here are some great ways to get started:
- Fix a broken or outdated link — If you find a link that no longer works or points to old information, submit a fix.
- Add a missing step to an existing guide — If a guide assumes prior knowledge or skips a step, fill in the gap.
- Improve code block language tags — Ensure every code block has a language tag (e.g.,
bash,yaml,json) for proper syntax highlighting. - Check issues labeled "good first issue" — We tag beginner-friendly issues to help you find a place to start.
If something confused you, it probably confuses others too. Don't hesitate to open an issue or PR for anything unclear.
- Bluefin-specific features, workflows, and customizations
- Integration guides (Homebrew, Flatpak, distrobox usage on Bluefin)
- Getting started guides and installation instructions
- Community-specific information (values, mission, FAQ)
Prefer linking to upstream documentation with a brief summary rather than duplicating content.
Link to upstream docs for:
- General Linux/GNOME usage
- Flatpak, Podman, or distrobox documentation
- Upstream Fedora or Universal Blue features
- Third-party application documentation
Example: Instead of documenting how to use VSCode, link to VSCode's official docs and note any Bluefin-specific setup (like using it in a dev container).
- Conversational and welcoming: Think "helpful friend" not "technical manual"
- Concise: Bluefin docs are intentionally sparse—keep it scannable
- Assume competence: Our audience includes developers and power users
- Use frontmatter with
titleand optionalslug:--- title: Your Page Title slug: /your-slug ---
- One H1 (
#) per page (typically the title) - Start sections with H2 (
##), subsections with H3 (###) - Use tip/info/warning admonitions for callouts:
:::tip This is a helpful tip! :::
- Always specify the language for syntax highlighting:
```bash rpm-ostree status ```
- Use
bashfor shell commands,yamlfor configs,jsonfor JSON, etc. - For multi-line commands, use
\for line continuation
- Prefer absolute paths for internal docs:
/introductionnot./introduction.md - Use descriptive link text:
[install Homebrew](/command-line)not[click here](link)
- Click Fork on the repository page.
- Clone your fork:
git clone https://github.com/<your-username>/documentation.git cd documentation
- Add the upstream remote:
git remote add upstream https://github.com/projectbluefin/documentation.git
Always branch from main:
git checkout main
git pull upstream main
git checkout -b docs/my-improvementBranch naming conventions:
| Prefix | Use for |
|---|---|
docs/ |
New or updated documentation content |
fix/ |
Fixing broken links, typos, errors |
feat/ |
New features or pages |
chore/ |
Maintenance tasks (deps, config) |
Edit or create .md or .mdx files in docs/. Follow the Style Guide below.
Preview your changes locally:
npm install --legacy-peer-deps
npm startThe site will be available at http://localhost:3000.
Run Prettier before committing (required):
npm run prettierThen commit and push:
git add .
git commit -m "docs: describe your change"
git push origin docs/my-improvementCommit message format: <type>: <short description> (e.g., docs: add nvidia driver guide, fix: correct broken link in FAQ).
Go to your fork on GitHub and click Compare & pull request. Fill in the template, reference any related issues with Fixes #<number>, and submit.
- Node.js 20+
- npm
# Install dependencies (required due to peer dependency conflicts)
npm install --legacy-peer-deps
# Start development server
npm run startThe site will be available at http://localhost:3000.
just serve # Build and serve locally
just build # Build onlydocker compose upNew to open source? Here's the full flow from fork to merged PR.
- Click Fork on the documentation repo to get your own copy.
- Clone your fork locally:
git clone https://github.com/<your-username>/documentation.git
cd documentation- Add the upstream remote so you can pull in future changes:
git remote add upstream https://github.com/projectbluefin/documentation.gitAlways work on a feature branch — never commit directly to main:
git checkout -b docs/my-changeUse a short, descriptive name that reflects the change: docs/fix-broken-links, docs/add-homebrew-guide, docs/update-installation-steps.
Edit or create .md / .mdx files in docs/, blog/, or wherever is appropriate. Preview locally (npm run start) as you go.
npm run prettier # REQUIRED before every commit
npm run start # verify the page renders correctlygit add .
git commit -m "docs: brief description of what you changed"
git push origin docs/my-changeGo to your fork on GitHub and click Compare & pull request. Fill in the PR template: explain what changed and why, and reference any related issue with Fixes #N or Related to #N.
Before starting a new branch, sync with upstream to avoid conflicts:
git fetch upstream
git checkout main
git merge upstream/mainREQUIRED: Run Prettier before submitting your PR:
npm run prettierThis formats all files according to the project's style (80-char width, 2-space indent, LF line endings).
- Preview locally to ensure formatting looks correct
- Verify links work (internal and external)
- Check that code blocks render with proper syntax highlighting
- Create a descriptive PR title:
docs: add installation guide for Nvidia drivers - Reference related issues:
Fixes #123orRelated to #456 - Keep PRs focused: One topic per PR when possible
- Expect feedback: Reviewers may suggest content placement or style changes
- Content placement: Does this belong here or upstream?
- Tone consistency: Does it match the conversational Bluefin style?
- Prettier compliance: Are files formatted correctly?
- Link validity: Do all links work?
- Clarity: Is it scannable and easy to understand?
- Create your
.mdor.mdxfile in thedocs/directory - Add frontmatter with
titleand optionalslug - Update
sidebars.tsif you want it in the navigation - Follow the style guide above
- Run
npm run prettierbefore committing
- Open a discussion for questions
- Check existing issues for known topics
- See the main Contributor's Guide for broader project contribution info
- To contribute translations, see TRANSLATING.md
Remember: There's likely a reason why something is undocumented. When in doubt, link to upstream docs!