Welcome! This repository holds the source code for the Women of Open Source website, a community platform supporting women who contribute to open source projects.
The site is built with Jekyll and hosted on GitHub Pages. It uses Markdown for content and includes collections for speakers, partners, and blog posts.
We welcome contributions! Whether you're fixing a typo, improving documentation, or adding new features, your help is appreciated.
-
Fork and Clone
First, fork this repository to your own GitHub account by clicking the "Fork" button at the top of this page.
Then clone your fork to your local machine:
git clone https://github.com/YOUR-USERNAME/womenofopensource.github.io.git cd womenofopensource.github.io -
Install Dependencies
You'll need Ruby 3.3.4 installed. A version manager is strongly recommended — the repo pins the version via
docs/.ruby-version, so rbenv picks it up automatically once you're in thedocs/folder (where the build commands run).- macOS:
brew install rbenv ruby-build, thenrbenv install 3.3.4 - Linux: install
rbenv+ruby-build(or your package manager), thenrbenv install 3.3.4 - Windows: Use RubyInstaller (Ruby 3.3.x)
Ruby 3.3.4 ships with Bundler 2.x. The committed
Gemfile.lockis resolved with Bundler 2.5.11 (the known-good version) — Bundler 2.5.11 or newer will work. Install project dependencies from the docs folder:cd docs bundle installThis installs the
github-pagesgem, which pins Jekyll and all plugins to the exact versions GitHub Pages uses in production — so local builds match the live site.macOS/Linux local-build note: if
jekyll buildfails withInvalid US-ASCII character, your shell isn't using a UTF-8 locale. Fix it withexport LANG=en_US.UTF-8 LC_ALL=en_US.UTF-8(GitHub's build servers are UTF-8 already). - macOS:
-
Run Locally
Start the Jekyll development server:
bundle exec jekyll serve --livereloadOpen your browser and visit: http://127.0.0.1:4000
The site will automatically reload when you make changes to files (thanks to the
--livereloadflag). -
Make Your Changes
Create a new branch for your work:
git checkout -b descriptive-branch-name
Make your changes, test them locally, then commit:
git add . git commit -m "Brief description of your changes"
-
Submit a Pull Request
Push your branch to your fork on GitHub:
git push origin descriptive-branch-name
Go to the original repository and you'll see a prompt to create a pull request from your branch. Click "Compare & pull request" and provide:
- A clear title describing what you've changed
- A description of the changes and why they're needed
- Any relevant issue numbers (e.g., "Fixes #123")
We'll review your pull request and provide feedback or merge it!
All website files are in the docs/ folder:
docs/
├── _config.yml # Jekyll configuration
├── _data/ # Data files
│ └── settings.yml # Site-wide settings
├── _includes/ # Reusable HTML components
├── _layouts/ # Page templates
│ ├── default.html # Base layout
│ ├── page.html # Standard pages
│ ├── post.html # Blog posts
│ ├── speaker.html # Individual speaker profiles
│ └── partner.html # Individual partner profiles
├── _posts/ # Blog posts (YYYY-MM-DD-title.md)
├── _speakers/ # Speaker directory entries
├── _partners/ # Partner/sponsor profiles
├── _sass/ # SCSS stylesheets
├── about.md # About page
├── application.md # Application form
├── contact.md # Contact page
├── index.html # Homepage
├── speakers/ # Speakers directory page
│ └── index.html
└── partners/ # Partners directory page
└── index.html
- _config.yml: Site configuration, collections, and defaults. Changes here require a server restart.
- _data/settings.yml: Contact form settings and other site-wide data
- _sass/: SCSS files organized by component (use responsive mixins for mobile-first design)
Blog Posts: Create a new file in _posts/ named YYYY-MM-DD-title.md
Speakers: Add profiles to _speakers/ with frontmatter for name, location, expertise, etc.
Partners: Add profiles to _partners/ with company details and testimonials
Each Markdown file starts with YAML frontmatter between --- markers:
---
title: Page Title
description: Meta description for SEO
featured_image: /images/path-to-image.jpg
---
Your content here...- Live Reload: Use
--livereloadflag for automatic browser refresh - Config Changes: Restart the server after modifying
_config.yml - Styles: SCSS files are in
_sass/and compile automatically - Collections: Changes to
_config.ymlcollections require a restart
Port already in use?
lsof -i :4000
kill -9 [PID]Bundle issues?
bundle update
bundle installBuild errors? Check for YAML syntax errors in frontmatter (especially quotes and indentation).
Please note that this project follows our Code of Conduct. By participating, you agree to abide by its terms.
- Issues: Open an issue for bugs or feature requests
- Discussions: Use GitHub Discussions for questions
- Community: Connect with us through our main community channels
This project is licensed under the terms specified in the LICENSE file.
Thank you for contributing to Women of Open Source! 💜