[print-me]

Contributing to Layers

Dev Tutorials

Last Updated: Time to Read: 3 minutes

Layers is an open-source project that depends on the community to help it grow and thrive. We encourage and welcome all contributions, from translations to extensions!

To contribute code or submit themes and extensions, be sure to read About Layers and our developer guides.

We look for contributions to the Layers core that fix bugs, provide code or security refinement, help in establishing better support for dependencies (WordPress updates, WooCommerce, JetPack or similar) or greatly enhance existing functionality.

If you want us to consider changes to the front-end templates, CSS or Javascript files, please must open an Issue to discuss the change – we cannot merge pull requests containing front-end modifications.

New functionality or features should be submitted as Layers extensions in the form of a plugin. If you are unsure if your changes are features, fixes or enhancements:

  • New widget = new feature
  • Adding post type support = new feature
  • Adding controls to customizer = new feature
  • Adding a language = enhancement
  • Adding caching support = enhancement
  • Fixing a deprecated tag = fix
  • Updating a method to use correct syntax = fix

If you are interested in submitting features or building a Layers Extension, first take a look at what is already available on CodeCanyon viayour WordPress admin LayersMarketplace on the Extension tab, and review our outstanding request lists on GitHub and the Community Portal.

Why It’s Not In the Core

Many end users of Layers are not developers. They don’t know what jQuery is, nor do they often care about which version of WordPress they are using. The average Layers user simply wants to be able to build a cool-looking website with minimal effort. These are the users that we design for as they are ultimately the ones who need it the most.

The Philosophy of Minimalism

Every time you give a user an option, you are asking them to make a decision. When a user doesn’t care or understand the option this ultimately leads to frustration. As developers we often think providing options for everything makes a product more amazing – you can never have too many toggles and boxes, right? Under the hood, these are technical choices that the average end user has no interest in. It’s our duty as designers to make smart design decisions and avoid putting the weight of technical choices on our end users. This is why the core of Layers will always provide a solid array of basic features and that’s it.

The Philosophy of Extensibility

Layers is designed to provide a foundation for WordPress site building and theming. We are constantly asked “when will X feature be built” or “why isn’t X support integrated into the core”.  The rule of thumb, according to WordPress, is that the core should provide features that 80% or more of end users will actually appreciate and use. If the next version of Layers comes with a feature that the majority of users immediately want to turn off, or don’t notice or understand, then it was a waste of time and resources. If we focus on making the Layers of today as perfect as possible, the developers of tomorrow can fill these niches with plugins and child themes.

This system works because we have a very capable theme and plugin system and capable developer community. Every individual and their website is different, and allowing Layers to be customized in a modular way with plugins and themes gives the user ultimate control over the pricetag of their project, and the end result.

  1. Join us on GitHub
  2. Fork layers
  3. Make a commit.
    • Separate your commits by task and ensure they are commented thoroughly
  4. Make a pull request

Your pull request is what notifies us that you have something to add! If the change is appropriate for the core and tests clean, we will merge it.