The Beans Approach - Getbeans/Beans GitHub Wiki

This page shares our principles, promises, and how we approach and deliver Beans.

"We", "our", and "us" refer to the entire Beans Code and Testing Team. When you contribute, you too are a part of this team. It's all our jobs (yours too) to make sure that Beans delivers on the core principles and promises.

Our Guiding Principles

Beans must deliver on these core principles:

  • Stable, No-Fuss, No-Issues "One-Click" Updates
  • "Knock Your Socks Off" Performance
  • Be Seen with "Rank on Top"
  • Empower Developers to Build What's Needed Very Quickly
  • Innovative and Smart
  • ...all the above on ALL devices

Stable, No-Fuss, No-Issues "One-Click" Updates

Trust. Seriously, it's all about the trust. Our promise is that when you click on that "Update" button, Beans will update and not break your website.

We work hard to earn and keep that trust.

As a member of Beans team, it's our job to make sure updates work...every single time. Period.

If we have dependencies that need to be installed or updated too, we will make it incredible easy, simple, and quiet for users.

"Knock Your Socks Off" Performance

Performance matters! It's one of the key metrics that differentiates Beans from other frameworks and themes. Beans promises to "Knock Your Socks Off" when you use it!

Performance includes:

  • Speed (load time)
  • Minimizing HTTP requests
  • Image optimization
  • SEO
  • Expressive, compliant HTML structures that search engines love

We are obsessed with performance!

Beans is incredibly and impressively fast. We strive to tweak and push the envelop to pluck out every fraction of a second to make it even faster.

As a member of the team, think optimization, compliance, and validation.

Be Seen with "Rank on Top"

The theme's job is presentation of content to the browser, search engines, readers, and devices. The theme delivers the look and feel of the web page. But it also is responsible for building valid, expressive, and optimized HTML.

Search engines love a well-built web page. They are not concerned with how it looks, but rather how fast it loads, how well it works on all devices, and its ability to understand the type and intent of the content on the page.

Beans job is build the HTML and serve up the assets. That HTML must be:

  • Validate HTML5 per W3C
  • Expressive with microdata
  • Lean - optimizing the elements within the schema
  • Optimized and fast

Beans promises to present the web page's content to empower the user's website to get ranked on top in Google. Content is king. Absolutely. But what's under the styling is import too.

Empower Developers to Build What's Needed Very Quickly

Beans is innovative. "The magic is under the hood!" It's our job to empower developers, helping them to quickly build with Beans.

Zero to Building....Vroom. Let's crush the learning curve, allowing anyone to quickly ramp up and get building.

Pick and Choose. Have you ever worked on a theme where you have to turn off a bunch of stuff first, disabling the default components out of the framework? Hmm, that doesn't make sense. Right? Instead, Beans will let you pick and choose the components, functionality, and look you want on a page-by-page basis. Think configurable.

If you want to use Zurb's Foundation instead of UIKit, Beans should let you. If you don't want a front-end framework, bam, configure it and load in your own.

It's our job to make it very easy. Let's help developers to build their child themes with as little code as possible.

Think: Rapid Web Development.

Innovative and Smart

I touched on it above. It's part of what drew me to Beans. The promise of a smart framework that pushes technology to deliver on performance really appeals to me. I'm sure it does to you too.

Part of that innovation is to provide easy-to-configure setups, allowing implementers, developers, and DIYers to pick what they want loaded on the web page...with less code in their child theme or plugin.

It's innovative in how it compiles the page's assets on a page-by-page basis. Think about that. The global styles variables allow the child theme and all plugins to have the same user look, branding, and experience.

It's smart. The smart event-driven API lets you reorganize, relocate, and customize with less code. It's intuitive too.

Let's keep innovating and pushing technology.

...all the above on ALL devices

All devices. Mobile. Tablets. Laptops. Desktops. Screen readers. (probably not watches...yet). All of the above needs to perform on all devices.

How? The Mindset

How? How do we achieve and maintain the above core principles? It starts with a mindset of thinking that all the above is possible and then seeking the best path to make it happen. None of us has all the answers. Rather, we achieve our objectives together, as together we are innovative, smart, flexible, and eager.

  • Backwards compatibility
  • Technical debt
  • Extensibility
  • Inclusiveness
  • Configurability
  • Code quality
  • Code coverage