Contributing to Layers

Contributing to Layers

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

Core Feature vs. Extension

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 Layers → Marketplace 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.