Navigating the Community

Introduction:  

Before digging in, it might help to review the rest of the Core Contributor Handbook. In particular, you might find the tutorials for setting up your local environment helpful. Much of what’s shared in the rest of the handbook sets the foundation for what’s shared here. Separately, to help join the fun more directly, it’s strongly encouraged that you set up a WordPress.org slack profile. After you do so, you can participate in more community efforts including the twice per month new contributor meeting in #coreCore Core is the set of software required to run WordPress. The Core Development Team builds WordPress.. You can find all the meetings listed here. Hope to see you there!

Top ↑

Structure of WordPress.org Development

Keep in mind that if you want to read and learn more, there are various handbooks that you can read through, including the Core Contributor Handbook which has helpful resources like common design decisions that tend to come up frequently. 

Release cycles

Gutenberg releases an update every two weeks, whereas WordPress core operates on a more spread out release cycle. This can make keeping up with what GutenbergGutenberg The Gutenberg project is the new Editor Interface for WordPress. The editor improves the process and experience of creating new content, making writing rich content much simpler. It uses ‘blocks’ to add richness rather than shortcodes, custom HTML etc. https://wordpress.org/gutenberg/ versions are present in WordPress releases confusing, but this page documenting what versions are present in each WordPress release should help!

Contributors, Committers, Components, Component Maintainers, and Teams

These terms listed above are all WordPress core specific and are used to describe the different roles people take on to move the project forward. To start, a contributor is simply someone who contributes to the WordPress project, whether with code, designs, documentation, etc. 

Committers are “a type of WordPress contributor who has earned the community’s trust and been given the keys to “commit” code to WordPress core.” These are the people who play a leading role in making final decisions with WordPress Core.

Components are defined as “well-defined, functional areas of Core” that contributors can help get involved with. Component Maintainers are contributors who take on a logistical stewardship role for each component. You can read more specifically about this role in this post

There are also teams that exist on top of the component teams. You can find each team along with ways to get involved listed here. They include Core, Mobile, Design, Accessibility, Polyglots, Support, Documentation, Themes, Plugins, Community, Meta, Training, Test, TV, Marketing, CLI, Hosting, and Tide

Finally, Gutenberg has two separate teams

  • Gutenberg Core: A team composed of people that are actively involved in the project: attending meetings regularly, participating in triagetriage The act of evaluating and sorting bug reports, in order to decide priority, severity, and other factors. sessions, performing reviews regularly, working on features and bugbug A bug is an error or unexpected result. Performance improvements, code optimization, and are considered enhancements, not defects. After feature freeze, only bugs are dealt with, with regressions (adverse changes from the previous version) being the highest priority. fixes, and performing pluginPlugin A plugin is a piece of software containing a group of functions that can be added to a WordPress website. They can extend functionality or add new features to your WordPress websites. WordPress plugins are written in the PHP programming language and integrate seamlessly with WordPress. These can be free in the WordPress.org Plugin Directory https://wordpress.org/plugins/ or can be cost-based plugin from a third-party and npm releases.
  • Gutenberg: A team composed of contributors with at least 2–3 meaningful contributions to the project.

Top ↑

Key Community Topics

These topics are ones that you might find will cause a lot of conversation and differing perspectives. Keep in mind that this doesn’t mean you shouldn’t try to engage with them! This is just a note to help give context for why some topics create more traction than others. This is not an all-encompassing list and is time-dependent based on what’s happening in the project as this is written.

Keeping up with Gutenberg and Core

Gutenberg development occurs in GitHubGitHub GitHub is a website that offers online implementation of git repositories that can easily be shared, copied and modified by other developers. Public repositories are free to host, private repositories require a paid subscription. GitHub introduced the concept of the ‘pull request’ where code changes done in branches by contributors can be reviewed and discussed before being merged be the repository owner. https://github.com/ whereas Core WordPress development is managed in Trac. Because of the different tooling, naming, and release cycle, it’s created a feeling of separation between Gutenberg and Core to the point that it can be difficult to distinguish between the two.  

Recommendation: depending on how large a change or idea is, remember that you might need to do more to raise awareness and share earlier than you might think to help more people have the chance to be well informed. 

Where does Gutenberg begin and Core start?

Because versions of Gutenberg plugin are included in each WordPress release and the editor experience has become quite incorporated into WordPress core, it can be difficult to distinguish between the two. As a result, you might be digging into one area only to find the solution that needs to be implemented elsewhere. Ultimately, keep in mind that Gutenberg is part of WordPress Core so the answer to this specific question is moot.

Approaching accessibilityAccessibility Accessibility (commonly shortened to a11y) refers to the design of products, devices, services, or environments for people with disabilities. The concept of accessible design ensures both “direct access” (i.e. unassisted) and “indirect access” meaning compatibility with a person’s assistive technology (for example, computer screen readers). (https://en.wikipedia.org/wiki/Accessibility) (aka a11yAccessibility Accessibility (commonly shortened to a11y) refers to the design of products, devices, services, or environments for people with disabilities. The concept of accessible design ensures both “direct access” (i.e. unassisted) and “indirect access” meaning compatibility with a person’s assistive technology (for example, computer screen readers). (https://en.wikipedia.org/wiki/Accessibility)

Accessibility is an important part of development within Gutenberg and WordPress. You can find the WordPress’ accessibility statement here for more context. As you’ll find, Web Content Accessibility Guidelines (WCAG) are often referenced as a result when it comes to making decisions and it’s recommended you review them. 

Thankfully, there’s an accessibility team that is dedicated to helping share best practices here and to help interpret those guidelines. To get the accessibility team’s attention, there are a11y labels to use as well as weekly accessibility meetings anyone can join. When in doubt, it’s best to flag items for review as a11y at large in the wider tech industry is typically sidelined and it’s important to include the team early.

Recommendation: Join #accessibility in slackSlack Slack is a Collaborative Group Chat Platform https://slack.com/. The WordPress community has its own Slack Channel at https://make.wordpress.org/chat/., sign up to receive https://a11yweekly.com/  or https://a11y.coffee/ newsletters, be sure to proactively label issues/PRs as you can for a11y help, and get a basic understanding of WCAG


The balance between sponsored contributors vs volunteers

Within the community, there are sponsored contributors and volunteers who do this work in their free time. For sponsored contributors, this means you can often keep up with more, move faster, and contribute more. As a result, if you are a sponsored contributor, it makes following the community norms even more important as that often allows more people to participate no matter their time commitment. 

On the flip side, if you’re doing this as a volunteer, remember to be kind to yourself and never feel pressure to try to achieve the level of contribution of those who are sponsored full time. Find sustainable ways to give back that will allow you to do so for many months and years to come. 

Top ↑

Explanation of Community Slack Channels & Make Blogs:

Slack Channels

What follows is a purposefully incomplete list that focuses mainly on the key slack channels you might find helpful. Feel free to explore more!

#accessibility: for discussion accessibility related items. 

#core: for discussing Core WordPress. 

#core-editor: for discussing the BlockBlock Block is the abstract term used to describe units of markup that, composed together, form the content or layout of a webpage using the WordPress editor. The idea combines concepts of what in the past may have achieved with shortcodes, custom HTML, and embed discovery into a single consistent API and user experience. Editor aka Gutenberg. 

#core-js: for discussing all things JSJS JavaScript, a web scripting language typically executed in the browser. Often used for advanced user interfaces and behaviors. in WordPress.

#docs: for discussing and working on documentation efforts including developer docs.

#design: for discussion design related items. 

#core-themes: for discussing themes including block-based themes. 

Make Blogs

The Make blogs are individual blogs focused on specific themes built around the teams involved in WordPress. This list is purposefully focused on the main ones you might interact with as a developer: 

  • WordPress News: a blogblog (versus network, site) specific for announcements (ex: WordPress releases)
  • Make Core: a blog for Core WordPress development and related topics. 
  • Make Design: a blog for design efforts including user experience, user interface, and visual design efforts.   
  • Make Documentation: a blog for documentation efforts including developer specific items. 
  • Make Themes: a blog dedicated to themes including theme reviews, sharing best practices, block-based themes, and more.  

Like with any WordPress site, you can review specific tags to help narrow down information particularly on busier sites like Make Core:

Top ↑

Communication Pathways:

These communication pathways start from the smallest action to increasingly more attention bringing steps you can take. These should help you figure out what “tools are in your toolbox” and how best to go about implementing ideas/proposals. 

If in doubt, feel free to ask first in #core or #core-editor for advice. 

Important Note on Timing: 

Each of these communication pathways exist across different timeframes. Some you can lean on whenever whereas others happen on a specific cadence. This makes it even more important to share early and keep in mind that the process of moving things forward may take more time as you might, for example, need to wait to discuss something at a community meeting. 

Important Note on Collaboration: 

There might be push-back to a solution or idea you propose—try not to take it personally. In WordPress, there are many voices with different experiences, technology views, and philosophical differences. You might not always get your way, no matter how brilliant your contribution seems. Assume positive intent and discuss from a place of respect and appreciation for your fellow contributors.

Share in WordPress.orgWordPress.org The community site where WordPress code is created and shared by the users. This is where you can download the source code for WordPress core, plugins and themes as well as the central location for community conversations and organization. https://wordpress.org/ Slack Channels (#core, #core-editor, #core-js, etc) 

If you have an initial idea or question, sharing in WordPress.org slack channels can be a good place to start. Sometimes this isn’t necessary, and you can go straight to GitHub or Trac though! 

Create a GitHub or TracTrac An open source project by Edgewall Software that serves as a bug tracker and project management tool for WordPress. issue

Remember that it often helps to share a Trac or GitHub issue first before potentially offering a PR. Generally speaking, opening an issue is best for more practical explorations on short term items. Keep in mind that if you need to, you can get wider attention using the following handles in GitHub to alert people (use sparingly):

  • Alert the Gutenberg Development Team: @WordPress/gutenberg 
  • Alert the Gutenberg leads: @WordPress/gutenberg-core
  • Alert the triage team with this hande: @WordPress/gutenberg-triage-team 

Note: these handles do not work in slack. 

Share in the Open Floor of Community meetings

The meeting schedule can be found here and meetings are held in WordPress.org Slack. Each meeting has an open floor section where anyone can bring up a topic. If you are unable to make a meeting, you can comment on the agenda post for the meeting and the person running the meeting will raise it for you. Depending on the topic, it can be advantageous to be there to explain or to have some representation. If you’re unsure where to start, join the bimonthly new contributor and you’ll find people who can help you figure out where to go next. 

Write a Personal Post

Writing blog posts on your personal site is an effective way to get attention on new ideas within the community. The one catch to this is that there needs to be some level of distribution. Generally speaking, personal posts are best for big picture explorations/thoughts or more simplistic demos. Here are two good examples: BlockBook and Collaborative Editing.  

If Gutenberg related, include in What’s Next in Gutenberg posts

These monthly posts are designed to set the framework for the next month but they can also be excellent ways to flag specific issues/ideas/PRs for attention as long as they fall within the realm of Gutenberg work and the focuses for that month. Here’s an example from one of these posts:

@epiqueras recently broke down all template tags alongside their block equivalent to lay the groundwork for Full Site Editing:  “The idea is for everyone in the community, especially those very familiar with traditional theme development, to contribute to this list. There might be things we are missing. There might be things we could lose.” Please check out this overall issue and share what might be missing.” 

If you’re wanting an issue to be included, pingPing The act of sending a very small amount of data to an end point. Ping is used in computer science to illicit a response from a target server to test it’s connection. Ping is also a term used by Slack users to @ someone or send them a direct message (DM). Users might say something along the lines of “Ping me when the meeting starts.” in #core-editor with context for why. Keep in mind these happen only once per month so if it’s more time sensitive it’s best to use a different pathway.  

Write a Make Blog Post

The Make Blog networknetwork (versus site, blog) is where asynchronous discussions, meeting notes, agendas, and ideas are shared. Generally speaking, it’s best to post here for big picture content that has built in team consensus or for things like Dev Notes before major releases. Keep in mind that you’ll either need to get proper access to these sites or have someone with access to post for you. To get access, you’ll want to ask in the relevant team’s slack channel and explain why you’d like to be granted the ability to post. It’s also expected and commonplace that you’ll have someone review your post before publishing. When in doubt, feel free to share in #core or #core-editor for a review. 

Share at a WordCampWordCamp WordCamps are casual, locally-organized conferences covering everything related to WordPress. They're one of the places where the WordPress community comes together to teach one another what they’ve learned throughout the year and share the joy. Learn more.

Similar to WPTavern or Post Status articles, WordCamps are ideal for larger, longer term efforts. A great example of this was around the initial Gutenberg launch and how much effort was put into sharing information about Gutenberg at WordCamps. With each phase of Gutenberg, more effort will need to be made to continue to help pave the way for adoption and acceptance. 

Top ↑

Situationals

To help put the above communication pathways into practice and provide clarity, the following section contains example situationals. Remember that there’s a ton of nuances and it never hurts to have a second opinion! Feel free to ask in #core or #core-editor for advice. 

Need more attention on an issue

  • Make sure the issue or PR is properly labeled so the appropriate teams are likely to find it. Note that for Gutenberg’s GitHub repo you need a certain level of access to properly label things. 
  • Share in WordPress.org Slack Channels (#core, #core-editor, #core-js, etc) asking for someone to look into it.
  • Raise it in the open floor of a core-editor, core, or new contributor meeting. If you can’t attend the meeting, add it to the agenda and it will be covered for you. It’s also common if you are in touch with other community members who can make the meeting to have them raise it for you. 
  • Use the group handles in GitHub to get the Gutenberg Leads’ (@WordPress/gutenberg) or Development Team’s attention (@WordPress/gutenberg-core). Note that these do not work in slack. 

Need to introduce an idea

  • DM different community members sharing the initial idea to gather interest. This can often be helpful to do internally first before opening up more widely. If you don’t know who to DM, just drop the idea in #core-editor or #core. 
  • Create a GitHub or Trac issue explaining the idea at hand before sharing in the open floor of an appropriate meeting.
  • If it’s a larger scale idea or proposal, a Make Blog post might be best.

Need to create momentum

  • Share in the Open Floor of a meeting ideally with specific asks to focus efforts and spark more discussion. 
  • If related to Gutenberg, include the issue or topic in the What’s Next in Gutenberg posts. To get included in those posts, please message in #core-editor and the people who organize these posts can decide if it fits.

Top ↑

Helpful Hints

  • Create and update your WordPress.org Profile to include relevant information (note: adding your WordPress origin story is an awesome way to connect with others).
  • Create a WordPress.org Slack account and make your profile descriptive so people can quickly get context about who you are. 
  • Update your GitHub Profile to include relevant information.
  • Connect your GitHub account to your WordPress.org Profile.
  • Share what you’re working on for Gutenberg in the #core-editor meetings or on the agenda posts if you can’t attend. This allows others to get to know you and what you’re working on naturally over time. 

Top ↑

Keeping up with the community

It can be difficult and overwhelming to keep up with what’s happening in the community at large. Thankfully, there are various efforts to summarize and streamline content depending on your interests:

Beyond these efforts, you can always follow individual Make Blogs like WordPress.org News or Make Core (core development efforts). To follow them, just use the “Subscribe” box in the sidebarSidebar A sidebar in WordPress is referred to a widget-ready area used by WordPress themes to display information that is not a part of the main content. It is not always a vertical column on the side. It can be a horizontal rectangle below or above the content area, footer, header, or any where in the theme. of each Make Blog to get these posts sent to your email. 

Last updated: