Your documentation is already in markdown format and perfectly structured. GitHub Pages with Jekyll will:
# In your openreef directory
cd /Users/davidchilds/Documents/Repositories/openreef
# Initialize Git (if not already)
git init
git add .
git commit -m "Initial OpenReef documentation"
# Create repo on GitHub
# Go to: github.com/new
# Name: openreef
# Public repository
# Don't initialize with README (you already have one)
# Push to GitHub
git remote add origin https://github.com/YOUR_USERNAME/openreef.git
git branch -M main
git push -u origin main
Create _config.yml in root:
# Site settings
title: OpenReef
description: Open-source automated water quality testing for phosphate and nitrate
baseurl: "" # Leave empty for username.github.io/openreef
url: "https://YOUR_USERNAME.github.io"
# Theme - Just the Docs (great for documentation)
remote_theme: just-the-docs/just-the-docs
# Color scheme
color_scheme: dark
# Logo
logo: "/assets/images/openreef-logo.png"
# Search
search_enabled: true
# Navigation
nav_sort: case_insensitive
# Footer
footer_content: "Copyright © 2025 OpenReef Project. Licensed under MIT."
# Aux links (top right)
aux_links:
"OpenReef on GitHub":
- "https://github.com/YOUR_USERNAME/openreef"
# Collections
collections:
docs:
permalink: "/:collection/:path/"
output: true
# Defaults
defaults:
- scope:
path: ""
type: "docs"
values:
layout: "default"
Add this to the top of each markdown file:
Example: docs/introduction/overview.md
---
layout: default
title: Overview
parent: Introduction
nav_order: 1
---
# OpenReef Automated System
(rest of your existing content...)
Example: docs/assays/phosphate.md
---
layout: default
title: Phosphate Assay
parent: Assay Protocols
nav_order: 1
---
# Phosphate Assay Protocol
(rest of your existing content...)
Create docs/index.md:
---
layout: default
title: Documentation
nav_order: 1
has_children: true
---
# OpenReef Documentation
Welcome to the OpenReef automated system documentation.
Your site will be live at:
https://YOUR_USERNAME.github.io/openreef/
In 2-3 minutes!
Takes: 1-2 hours to manually format everything
Perfect for software documentation.
docs/conf.py (Sphinx config)Great for: Pure documentation sites with search, versions, PDF export
Beautiful, modern documentation sites.
# Install Docusaurus
npx create-docusaurus@latest openreef-website classic
# Copy your markdown files to docs/
cp -r docs/* openreef-website/docs/
# Deploy to Netlify
# 1. Push to GitHub
# 2. Connect to Netlify
# 3. Auto-deploy on push
Result: Modern, fast, beautiful documentation site
| Feature | GitHub Pages | Google Sites | ReadTheDocs | Netlify |
|---|---|---|---|---|
| Setup Time | 15 min | 1-2 hours | 20 min | 30 min |
| Cost | Free | Free | Free | Free tier |
| Markdown Support | ✅ Native | ❌ Manual | ✅ Native | ✅ Native |
| Search | ✅ Yes | ⚠️ Basic | ✅ Excellent | ✅ Yes |
| Custom Domain | ✅ Yes | ✅ Yes | ✅ Yes | ✅ Yes |
| Version Control | ✅ Git | ❌ No | ✅ Git | ✅ Git |
| Auto Deploy | ✅ Yes | ❌ Manual | ✅ Yes | ✅ Yes |
| Mobile Friendly | ✅ Yes | ✅ Yes | ✅ Yes | ✅ Yes |
| Tech Level | Medium | Easy | Medium | Medium |
For OpenReef: GitHub Pages + Just the Docs
Why:
Time to live site: 15-20 minutes
I can create an automated setup script for you:
#!/bin/bash
# setup-website.sh
# Add Jekyll config
cat > _config.yml << 'EOF'
title: OpenReef
remote_theme: just-the-docs/just-the-docs
search_enabled: true
EOF
# Add front matter to all docs
find docs -name "*.md" -exec sed -i '' '1i\
---\
layout: default\
---\
' {} \;
# Initialize Git
git add .
git commit -m "Setup Jekyll for GitHub Pages"
git push
echo "Website will be live at https://YOUR_USERNAME.github.io/openreef/"
echo "Enable Pages in repo Settings → Pages"
Similar projects:
Total time: 15-20 minutes for GitHub Pages
Once your site is live, you can add a custom domain:
Your site: https://openreef.org
GitHub Pages Docs: https://docs.github.com/en/pages
Just the Docs Theme: https://just-the-docs.github.io/just-the-docs/
Need help? Let me know which option you choose and I can create the specific config files!