Skip to the content.

Introduction

Newfold Labs is an interdisciplinary product and engineering team at Newfold Digital creating next-generation solutions that support our customers and our business.

We believe in blending cutting-edge and long-proven technologies to pragmatically build innovative solutions for businesses of all sizes, while supporting the WordPress project and the open web.

How We Work

This public, living document serves to express our coding standards, workflows and values. As a distributed team, this is an essential way of building our team culture and expectations.

The “why”

Rules should have reasons and standards should have strategy that drives them.

Our best practices and standards aim to unlock three big efficiencies:

  1. Uniform directory structure and naming practices that once learned, makes navigating codebases easier and more intuitive.
  2. Fewer bespoke decisions by curating new information and abiding by standards, we can focus energy on building solutions and not foundations.
  3. Shared templates and tooling to replicate our best practices and recipes for success.

On the other side of the coin, our standards are meant to protect us:

  1. Our codebases run in a wide varietry of browsers and environments, in millions of configurations and alongside a million variations of other software Our code has to be more than enterprise-grade, it has to be incredibly defensive, considerate and accomodating of the millions of configurations possible with WordPress. We never want to break or burden our customers sites, our partners services or our peers’ software.
  2. There are real-world consequences for the online behavior of our software We painstakingly consider potential impacts to our customer’s experience, time, reputation, safety, profitability and success. Our software also can have dramatic impact on our colleagues in support and professional services – we always strive to make it positive.
  3. Being thoughtful about software implementation can save us from burdensome maintenance, issue diagnostics and bug patching No software is perfect, but asking questions, requesting changes on PRs and thinking not only about how we want our software to be used, but how it could potentially be abused makes our software better.

Our standards aren’t here just for the sake of having them.

And they’re not cast in stone.

If this document is dated or delinquent in addressing a use case, please make an informed and pragmatic choice on how it should be updated or if special use cases should be excused. Then document the reasoning and if necessary update this repository.