Contributions are always welcome.
- Add resources to the appropriate markdown files in
docs/en/directory. - Use the table format:
| [Name](https://example.com) | Short description. | - Keep descriptions concise and factual.
- Ensure links work and lead to legitimate resources.
- Use clean URLs without trailing slashes for homepages:
https://example.comnothttps://example.com/ - Add new sections only when necessary.
- Keep PR focused: one primary logical change per PR.
- Use a clear title, for example:
Add Terraform to infrastructure tools. - Test your changes locally if possible using
just dev.
- Main content is in
docs/en/directory - Website is built from these markdown files
- README.md serves as a landing page directing to the website
- Changes to
docs/en/automatically update the website
- Use issues to report broken links, errors, or suggestions.
- Provide a short and clear description.
Local setup is only required if you want to preview the site or work on larger changes.
- Install
uv(Python package manager):
curl -LsSf https://astral.sh/uv/install.sh | sh- Install
lychee(Link checker)
cargo install lycheeNote: You need to install
cargobefore:curl https://sh.rustup.rs -sSf | shOr read the guidelines.
1. Fork and clone the repository:
git clone https://github.com/YOUR_USERNAME/awesome-cloud-computing.git && cd awesome-cloud-computing2. Setup Python environment (Python 3.13):
Option A - Automatic (Recommended):
uv sync --extra devOption B - Manual virtual environment:
uv venv --python 3.13
source .venv/bin/activate # On Windows: .venv\Scripts\activate
uv pip install -e ".[dev]"3. Start development server:
uv run mkdocs serveThe site will be available at http://127.0.0.1:8000
If you want to use the task runner for convenience:
# On macOS: brew install just
# On Linux: cargo install just
# Or visit: https://github.com/casey/just#installation
# Then you can use:
just dev # Start development server
just lint # Run quality checks (fast, no link checking)
just check-links # Check for broken links only
just check-all # Run all checks including links (slower)
just create-lang <code_lang> # Create new language structure
just install-hooks # Install pre-commit hooksWithout justfile, you can run commands directly:
# Start development server
uv run mkdocs serve# Run all quality checks (includes markdown linting)
uv run pre-commit run --all-files# Check for broken links only
lychee docs/en/**/*.md# Create new language
uv run python scripts/create-language.py <code_lang>To automatically run quality checks before each commit:
# Install pre-commit hooks
uv run pre-commit install# Run all checks (excludes link checking for performance)
uv run pre-commit run --all-filesThe pre-commit hooks will automatically:
- Fix trailing whitespace and end-of-file issues
- Check markdown formatting with markdownlint
- Format Python code with ruff
- Format other files with prettier
Note: Link checking is handled separately via just check-links for better performance.
If you don't want to use uv:
# Create virtual environment
python -m venv venv
source venv/bin/activate # On Windows: venv\Scripts\activate
# Install dependencies
pip install -e ".[dev]"
# Start development server
mkdocs serveTo add a new language:
just create-lang es
just sync-langs
# Or manually
python scripts/create-language.py es
python scripts/sync-languages.pyjust lint
just check-links
# Or manually
markdownlint README.md docs/**/*.md
lychee README.md docs/en/**/*.md