Resources:

Module of the Week:

Think of a Bean as a method to provide new types (compared to node this would be a content type) which then provides an add content interface to create as many blocks as you require (see screenshot below). The bean content can then be placed around the site just like any other block.

Beans were driven by the API first. This means that you can create block types (bean types) all in a plugin class turning off the UI. The entire configuration in code. No worry about feature reverts.

Comments

I use the Bean module --and/or Fieldable Panel Panes (similar Panels-centric implementation)-- on just about every site I build now-a-days. Beans are great for userland auxiliary pieces which span multiple site pages; like promotions or carousels or configurable feeds.

A site I recently completed required internal promotion units on each page which a user could manage. They wanted the ability to upload an image, define the target url, and select multiple pages for which the promo would display. For this I created a Bean Type containing the image, target, and placement fields. I wrote a custom block to pull and render the beans. Beans being entities, I used EntityFieldQuery to query/filter based on the current_path. Although, you could use Views for this as well. And I setup my displays using Drupal Display Types the same tools as nodes.

Beans also create a separation between site pages (nodes) and auxiliary content. When the user is in the admin, there's tabs for Content, Blocks, Files, etc. This makes training the user on the purpose and use of the system a lot easier.

BTW: I'm new to the show, and really enjoying it. Keep up the great work!