The WordPress coreCoreCore is the set of software required to run WordPress. The Core Development Team builds WordPress. development team builds WordPress! Follow this site for general updates, status reports, and the occasional code debate. There’s lots of ways to contribute:
Found a bugbugA 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.?Create a ticket in the bug tracker.
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 #coreCoreCore 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!
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.
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.
Gutenberg Core: A team composed of people that are actively involved in the project: attending meetings regularly, participating in triagetriageThe act of evaluating and sorting bug reports, in order to decide priority, severity, and other factors. sessions, performing reviews regularly, working on features and bugbugA 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 pluginPluginA 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.
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 GitHubGitHubGitHub 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 accessibilityAccessibilityAccessibility (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 a11yAccessibilityAccessibility (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))
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.
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.
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 BlockBlockBlock 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 JSJSJavaScript, 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:
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.orgThe 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 TracTracAn 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, pingPingThe 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 WordCampWordCampWordCamps 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.
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.
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.
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.
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 sidebarSidebarA 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.