Cloud Security Office Hours Banner

🀝 Contributing to CSOH.org

Your ideas and contributions help us serve 2000+ cloud security professionals

See Contribution Types Add a Resource
✨ No coding required! This guide covers all changes you can suggest to the websiteβ€”whether it's adding news sources, fixing typos, improving descriptions, or reporting bugs. You don't need to be a developer.

πŸ“– What You'll Learn

  1. Types of contributions
  2. Adding resources
  3. Adding news sources
  4. Improving content
  5. Reorganizing resources
  6. Reporting issues
  7. Automated workflows
  8. Creating pull requests
  9. FAQ
  10. For developers

⏱️ Time needed: 5-20 minutes depending on what you're contributing

🎯 Types of Contributions

Here are seven common ways you can help improve CSOH:

πŸ“š Adding Resources

Add tools, labs, certifications, or job resources to the catalog

Examples: Cloud security tools, hands-on labs, certifications, job boards

Why it matters: Resources help people learn and grow in cloud security

See how β†’

πŸ“° Adding News Sources

Suggest RSS feeds we should pull news articles from

Examples: A security blog, vendor blog with good research, news aggregator

Why it matters: More sources = better, more diverse news for readers

See how β†’

πŸ“ Improving Descriptions

Fix grammar, clarify confusing text, update outdated info

Examples: Fix a typo, improve clarity, update a certification, clarify a tool's purpose

Why it matters: Clear text helps people learn and find what they need

See how β†’

🏷️ Better Categorization

Suggest reorganizing, adding tags, or moving resources

Examples: A resource has wrong tags, combine similar sections, new tag would help discovery

Why it matters: Good organization helps people discover resources

See how β†’

🏠 Homepage Improvements

Suggest changes to the main page or any page's header/footer

Examples: Update outdated content, add new featured resources, clarify navigation

Why it matters: The homepage is people's first impression of CSOH

See how β†’

πŸ› Bug Reports

Report broken links, display problems, or errors

Examples: Broken link, text looks wrong on mobile, button doesn't work

Why it matters: We want the site to work perfectly for everyone

See how β†’

✨ Feature Suggestions

Ideas for new pages, tools, or functionality

Examples: New page for interview prep, "recently added" section, community ratings

Why it matters: Great ideas help CSOH grow and stay useful

See how β†’

πŸ“š Adding Resources (Manual or Script)

Want to add a new resource to the site? You have two easy options:

Option A: Manual (Web-Based Guide)

  1. Open the Resource Contribution Guide
  2. Follow the step-by-step instructions for adding a resource card
  3. Open a pull request when done

Option B: Interactive Script (Fastest)

This script asks questions, validates your URL, generates HTML, and prepares a PR:

python3 tools/submit_resource.py

What it does for you:

Preview images: If you skip a preview image, a workflow will capture a screenshot after you open a PR and update preview-mapping.json automatically.
Common errors (and quick fixes):
  • python3 not found: Install Python from python.org and reopen your terminal
  • git not found: Install Git from git-scm.com
  • Not in a git repo: Run cd csoh.org before the script
  • Working directory not clean: Commit or stash changes, then retry
  • URL flagged as unsafe: Use the official site or GitHub repo URL

See the full script guide β†’

πŸ“° Adding News Sources

News articles power our News page. The more sources we have, the better articles our readers see.

Fastest option: Run the interactive script below to add a feed automatically.
python3 tools/submit_news_source.py

See the full script guide β†’

Step 1: Find the News Script

  1. Go to update_news.py on GitHub
  2. Click the pencil ✏️ icon to edit

Step 2: Add Your Feed

Look for this section:

FEEDS = [ {"name": "AWS Security Blog", "url": "https://aws.amazon.com/blogs/security/feed/"}, {"name": "BleepingComputer", "url": "https://www.bleepingcomputer.com/feed/"}, # ... more feeds ]

Add your new feed to the list:

FEEDS = [ {"name": "AWS Security Blog", "url": "https://aws.amazon.com/blogs/security/feed/"}, {"name": "BleepingComputer", "url": "https://www.bleepingcomputer.com/feed/"}, {"name": "Your Source Name", "url": "https://your-source.com/feed.xml"}, # ← Add here ]

Step 3: Commit and Create a Pull Request

  1. Scroll down and click "Commit changes"
  2. Write a message: "Add [Source Name] to news feeds"
  3. Create a pull request (see Creating a Pull Request below)
πŸ’‘ Tips:
  • Many websites have RSS feeds (look for an RSS icon πŸ”˜)
  • Try common URLs: /feed, /feed.xml, or /rss
  • Check the feed actually contains cloud security articles
  • Use reputable sources (established news sites, vendor blogs, research orgs)
  • Try Feed Finder to discover feeds
Common errors (and quick fixes):
  • python3 not found: Install Python from python.org and reopen your terminal
  • git not found: Install Git from git-scm.com
  • Not in a git repo: Run cd csoh.org before the script
  • Feed URL rejected: Use the RSS/Atom feed URL (not the homepage)
  • Working directory not clean: Commit or stash changes, then retry

πŸ“ Editing Content & Descriptions

Whether you're fixing a typo or rewriting a section, the process is the same.

Step 1: Find the File to Edit

Different content is in different files:

Step 2: Open the File for Editing

  1. Click on the file name above
  2. Click the pencil ✏️ icon to edit

Step 3: Find What You're Changing

Use Ctrl+F (or Cmd+F on Mac) to search for the text you're changing.

For example, if you're fixing a resource description, search for the resource name.

Step 4: Make Your Edit

Just type! You're editing text like a document:

Example - Fixing a typo:

<p>Learn cloud security with hands-on laps.</p> <p>Learn cloud security with hands-on labs.</p>

Step 5: Commit and Create a Pull Request

  1. Scroll down and click "Commit changes"
  2. Write a helpful message explaining what you changed
  3. Create a pull request (see below)

🏷️ Suggesting Reorganization

Want to suggest moving a resource, adding new tags, or reorganizing sections?

Option A: Edit the File Directly

If it's a simple change (moving a resource, fixing a tag):

  1. Open resources.html
  2. Find the resource card
  3. Change the tag lines to add/remove/fix tags
  4. Move the resource block to a different section if needed
  5. Commit with a message like: "Move [Resource] to correct category"

Option B: Suggest It in a Pull Request

If you're not sure exactly how to do it, make the changes and explain your reasoning:

**Suggestion:** Move Redis Labs to "Security Tools" instead of "Labs" **Reason:** Redis Labs is a vendor tool, not a training lab **Benefit:** Better organization helps users find what they're looking for

πŸ› Reporting Issues & Feature Requests

Found a bug or have a great idea? You can create an Issue on GitHubβ€”no coding required!

Step 1: Go to Issues

  1. Visit github.com/CloudSecurityOfficeHours/csoh.org
  2. Click the "Issues" tab

Step 2: Create a New Issue

  1. Click "New Issue"
  2. Give it a clear title
    Examples: "Broken link in Resources page" β€’ "Mobile display issue on homepage" β€’ "Feature: Interview prep resources"
  3. Describe the problem or suggestion
  4. Click "Submit new issue"

Example for a bug report:

**What's broken:** The link to CloudGoat doesn't work **Where it is:** Resources page, CTF section **What should happen:** The link should go to https://github.com/RhinoSecurityLabs/cloudgoat **What's happening instead:** 404 error / page doesn't load

Example for a feature request:

**The idea:** Create a new "Interview Prep" category with resources for cloud security job interviews **Why it would help:** Many community members ask interview questions. A dedicated section would help them prepare. **Example content:** - Behavioral interview guides - Technical interview prep - Mock interview platforms
That's it! Maintainers will discuss your issue and take action.

πŸ€– Automated Workflows (What Happens After You Submit)

We use automated checks to keep the site safe and consistent. You do not need to run these manually.

Note: If your PR comes from a fork, preview images are generated but may not be pushed back automatically. Maintainers can apply them or you can run the preview script locally.

πŸ“ Creating a Pull Request

What's a pull request (PR)? It's how you submit your changes for review. Think of it like raising your hand in class to share an idea.

Beginner-Friendly Method: GitHub's Web Interface

You don't need command-line. Here's the easiest way:

1

Fork the Repository

  1. Go to github.com/CloudSecurityOfficeHours/csoh.org
  2. Click "Fork" button (top-right)
  3. This creates your own copy of the project
2

Make Your Changes

In your fork:

  1. Click on a file you want to edit
  2. Click the pencil ✏️ icon
  3. Make your changes
  4. Click "Commit changes"
  5. Write a commit message
  6. Click "Commit changes" again

Repeat for any other files you're changing.

3

Create the Pull Request

  1. Go back to your fork's main page
  2. You'll see a banner: "This branch is ahead of CloudSecurityOfficeHours:main"
  3. Click "Contribute" β†’ "Open pull request"
  4. Check the changes look right
  5. Add a Title: What did you change?
    "Add Snyk to Security Tools" β€’ "Fix HomeLab description" β€’ "Add 5 new news sources"
  6. Add a Description: Why did you change it?
    **What I changed:** - Added Snyk to Security Tools section - Tagged with: Tool, CSPM, Vulnerability Management **Why:** Snyk is a popular tool that wasn't listed. Many community members use it.
  7. Click "Create pull request"
πŸŽ‰ Done! A maintainer will review your contribution.

Using Git Commands (Optional)

If you're comfortable with command-line, use Git:

# Clone the repository git clone https://github.com/CloudSecurityOfficeHours/csoh.org cd csoh.org # Create a new branch git checkout -b add-news-sources # Edit files nano update_news.py # or use your editor # Stage changes git add . # Commit git commit -m "Add TechCrunch security feed" # Push to your fork git push origin add-news-sources # Go to GitHub and create a pull request

Learning resources:

πŸ“‹ Pull Request Checklist

Before you submit, make sure:

❓ Frequently Asked Questions

Q: Do I need to be a developer?

A: No! All examples above use GitHub's web interface. No coding experience needed.

Q: What if I make a mistake?

A: You can edit your PR before it's merged. Or maintainers can suggest fixes. Mistakes are learning opportunities!

Q: How long until my change is published?

A: Usually 1-3 days. Maintainers review each PR to maintain quality.

Q: Can I suggest changes I don't know how to make?

A: Yes! Open an issue with your suggestion. You don't have to code it.

Q: What if my pull request gets rejected?

A: That's okay! You'll get feedback on why. You can discuss it or try again.

Q: Can I make multiple changes at once?

A: It's better to do one thing per PR. But you can have multiple PRs open.

Q: What qualifies as a good news source?

A: Reputable sources with regular cloud security content. Not spam, not paywalled (usually).

Q: Can I suggest a resource for myself/my company?

A: Sure! Disclose that it's yours. If it's genuinely useful to the community, it'll be accepted.

Q: How do I know if something is "good enough" to suggest?

A: If it would help a cloud security professional learn or advance, it's worth suggesting. The community decides!

🎁 Recognition

Contributors get:

πŸš€ Ready to Contribute?

Every contributionβ€”from fixing a typo to suggesting a whole new sectionβ€”helps our community grow.

πŸ› οΈ For Developers

Want to preview changes locally before submitting a PR? Our Local Development Guide gets you up and running in 3 commands:

git clone https://github.com/CloudSecurityOfficeHours/csoh.org cd csoh.org python3 -m http.server 8091

No Node.js, no build tools, no package manager. The site is pure HTML/CSS/JS.

πŸ“ž Need Help?