First off, thank you for considering contributing to WebSocket.org! It's people like you that make WebSocket.org such a great resource for the developer community.
WebSocket.org is an open-source educational resource about WebSocket technology, sponsored by Ably and led by Matthew O'Riordan. We welcome contributions from developers worldwide who are passionate about real-time web technologies.
This project and everyone participating in it is governed by our commitment to providing a welcoming and inclusive environment. Please be respectful and constructive in all interactions.
Before creating bug reports, please check existing issues to avoid duplicates. When you create a bug report, include as many details as possible:
- Use a clear and descriptive title
- Describe the exact steps to reproduce the problem
- Provide specific examples to demonstrate the steps
- Describe the behavior you observed and what you expected to see
- Include screenshots if relevant
Enhancement suggestions are tracked as GitHub issues. When creating an enhancement suggestion:
- Use a clear and descriptive title
- Provide a step-by-step description of the suggested enhancement
- Provide specific examples to demonstrate the use case
- Explain why this enhancement would be useful to most users
Unsure where to begin? Look for issues labeled:
good first issue- Good for newcomershelp wanted- Extra attention is neededdocumentation- Improvements or additions to documentation
- Fork the repo and create your branch from
main - Make your changes following our coding standards
- Ensure your code follows the existing style
- Test your changes locally
- Issue that pull request!
- Node.js (v18 or higher)
- npm or yarn
- Git
# Clone your fork
git clone https://github.com/your-username/websocket.org.git
cd websocket.org
# Install dependencies
npm install
# Start development server
npm run dev
# Build for production
npm run build
```bash
### Project Structure
```text
websocket.org/
├── src/
│ ├── content/
│ │ ├── docs/ # Documentation pages
│ │ │ ├── guides/ # Guide articles
│ │ │ ├── reference/ # API references
│ │ │ ├── resources/ # Resource pages
│ │ │ └── tools/ # Tool documentation
│ ├── components/ # Astro components
│ └── layouts/ # Page layouts
├── public/ # Static assets
└── astro.config.mjs # Astro configuration- Guides: Step-by-step tutorials and explanations
- Reference: Technical specifications and API documentation
- Resources: Links, tools, and community resources
- Tools: Interactive tools and utilities
When creating content pages:
- DO NOT add a top-level heading (
# Title) - the page title is automatically generated from the frontmatter - Start with frontmatter containing
titleanddescription - Use heading levels starting from
## H2for sections - Include code examples where relevant
- Add links to related content
Example:
---
title: Your Page Title
description: A brief description of the page content
---
Start your content here without adding # Your Page Title again.
## First Section
Your content...- Use consistent indentation (2 spaces for JavaScript/TypeScript)
- Follow existing patterns in the codebase
- Include meaningful variable and function names
- Add TypeScript types where applicable
- Use the present tense ("Add feature" not "Added feature")
- Use the imperative mood ("Move cursor to..." not "Moves cursor to...")
- Limit the first line to 72 characters or less
- Reference issues and pull requests liberally after the first line
All contributors are recognized in our repository and on the website. Your contributions, no matter how small, are valued!
We're grateful to these contributors who have helped improve WebSocket.org:
- Matthew O'Riordan - Project Lead and Maintainer
- 林博仁(Buo-ren, Lin) - Documentation improvements
- Énio Carlos - Code contributions
- Raj Gupta - Content contributions
- Sam Hobbs - Technical improvements
If you need help, you can:
- Open an issue with your question
- Check existing documentation
- Reach out to the community
By contributing, you agree that your contributions will be licensed under the same license as the project.
Don't hesitate to open an issue if you have questions about contributing. We're here to help!
Thank you for contributing to WebSocket.org! 🚀