Skip to content

Conversation

jeffpaul
Copy link
Member

Description of the Change

This pull request introduces a major restructuring and modernization of the documentation site. It reorganizes content into clearer sections for starting, maintaining, and growing open source projects, adds new landing pages for these sections, updates the homepage to guide users by project stage, and improves navigation and plugin support. The most important changes are summarized below:

Site Structure and Navigation Overhaul

  • The homepage (index.md) is redesigned to provide a more user-friendly, stage-based navigation with clear paths for starting, maintaining, and growing projects, including new visual cards and improved introductory content.
  • New landing pages are added for the "Maintaining" (maintaining/index.md), "Growing" (growing/index.md), and "GitHub Process" (maintaining/github-process.md) sections, each outlining who the section is for, what it covers, and next steps. [1] [2] [3]
  • The maintenance section is further split into detailed pages for the maintenance process (maintaining/maintaining.md) and testing (maintaining/testing.md). [1] [2]

Content Organization and Migration

  • A new content-migration-mapping.csv file is introduced to map current content to the new site structure, indicating where each document now lives and providing notes for repository management files.

Configuration and Plugin Support

  • The _config.yml file is updated to include the jekyll-redirect-from plugin, enabling URL redirects for improved navigation and backwards compatibility.

These changes collectively make the documentation easier to navigate, more maintainable, and better aligned with the needs of users at different stages of open source project development.

Closes #19.

How to test the Change

  1. Build & Serve
bundle exec jekyll serve

Visit: http://localhost:4000/Open-Source-Best-Practices/

  1. Check: Landing Page
  • New "Choose Your Path" homepage loads
  • 4 path cards display (Starting, Maintaining, Growing, References)
  • All "Explore full section" buttons work
  1. Check: Navigation
  • Click "Starting" → goes to /starting/
  • Click "Maintaining" → goes to /maintaining/
  • Click "Growing" → goes to /growing/
  • Click "References" → goes to /references/
  1. Check: Content Migration
  • /starting/community/ - Community content displays
  • /starting/releasing/ - Releasing content displays
  • /maintaining/maintaining/ - Maintenance content displays
  • /maintaining/github-process/ - GitHub process content displays
  • /maintaining/testing/ - Testing content displays
  1. Check: Redirects (Most Important)
  • /community/ → redirects to /starting/community/
  • /releasing/ → redirects to /starting/releasing/
  • /maintaining/ → redirects to /maintaining/maintaining/
  • /github-process/ → redirects to /maintaining/github-process/
  • /testing/ → redirects to /maintaining/testing/
  1. Check: Mobile
  • Landing page looks good on phone
  • Path cards stack vertically

Changelog Entry

Added - "Choose Your Path" landing page
Added - Section landing pages for each lifecycle stage
Added - Backward compatibility redirects
Changed - Restructured navigation by project lifecycle
Changed - Moved content to new sections (Starting, Maintaining, Growing, References)
Changed - Updated homepage from table of contents to user-friendly landing page
Fixed - All old URLs now redirect to new locations
Fixed - Internal links updated to new structure

Credits

Props @jeffpaul.

Checklist:

- Create nav-outline.md with proposed navigation structure
- Update index.md with lifecycle-oriented navigation sections:
  - Starting or Releasing a Project
  - Maintaining, Supporting, and Enhancing
  - Growing and Sustaining a Project
  - References and Resources
- Add section landing pages for each major category
- Map existing content to new structure
- Maintain backward compatibility with existing URLs

This restructuring makes it easier for first-time open source releasers
and long-time maintainers to find guidance relevant to their situation.
- Create reusable stub-template.md for consistent section landing pages
- Enhance all section landing pages with standardized structure:
  - 'Who this is for' - Clear audience targeting
  - 'What you'll find here' - High-level content overview
  - 'Next steps' - Actionable links to child pages
- Update content to match template requirements:
  - Starting: Focus on first-time open source releasers
  - Maintaining: Target active project maintainers
  - Growing: Address mature project needs
  - References: Provide quick access to tools and standards

These stub pages provide clear orientation for newcomers and help
users quickly identify the most relevant practices for their situation.
- Create content-migration-mapping.csv documenting the migration plan
- Move practice pages to appropriate lifecycle sections:
  - Starting: community.md, releasing.md
  - Maintaining: maintaining.md, github-process.md, testing.md
  - Growing: (index.md only, content references existing sections)
  - References: (index.md only, content references existing sections)
- Update all internal links to point to new file locations
- Update front matter for moved files to reflect new navigation structure
- Preserve repository management files (CODE_OF_CONDUCT.md, CONTRIBUTING.md,
  CREDITS.md, LICENSE.md, README.md) in root directory
- Update navigation links in section landing pages

This migration improves content discoverability by organizing practices
according to the project lifecycle while maintaining all existing functionality.
- Replace homepage with user-friendly landing page that guides visitors to relevant content
- Create four distinct paths:
  - Starting Your First Project (primary path for beginners)
  - Maintaining an Existing Project (secondary path for active maintainers)
  - Growing and Sustaining (tertiary path for mature projects)
  - References and Resources (reference path for tools and standards)
- Add visual styling with path cards, hover effects, and color-coded sections
- Include call-to-action buttons for each section
- Maintain mobile-responsive design
- Preserve original homepage content as index-backup.md
- Keep introduction content accessible at bottom of page

This landing page makes the site more approachable for both beginners
and seasoned maintainers by clearly directing them to relevant guidance.
- Create url-redirect-mapping.csv documenting all old to new URL mappings
- Configure jekyll-redirect-from plugin in _config.yml
- Add redirect_from front matter to all moved pages:
  - /community/ → /starting/community/
  - /releasing/ → /starting/releasing/
  - /maintaining/ → /maintaining/maintaining/
  - /github-process/ → /maintaining/github-process/
  - /testing/ → /maintaining/testing/
- Add homepage redirects for old documentation URLs:
  - /docs/ → / (new landing page)
  - /docs/index.html → / (new landing page)
- Preserve all existing links and bookmarks
- Ensure seamless user experience during transition

This maintains backward compatibility while users and search engines
adapt to the new lifecycle-oriented navigation structure.
@jeffpaul jeffpaul added this to the 2.0.0 milestone Sep 17, 2025
@jeffpaul jeffpaul requested a review from dkotter September 17, 2025 22:15
@jeffpaul jeffpaul self-assigned this Sep 17, 2025
@jeffpaul jeffpaul marked this pull request as ready for review September 17, 2025 22:16
@jeffpaul jeffpaul requested a review from a team as a code owner September 17, 2025 22:16
Copy link
Collaborator

@dkotter dkotter left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code changes look fine to me here though noting I wasn't able to test this locally as I kept running into errors when running bundle install

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Consider shuffling sections around
2 participants