A Bespoke Ecosystem

On front-end modularity

Mark Dalgleish
Thursday, July 31, 2014

Why Bespoke?

Bespoke.js is a blank canvas

Most frameworks are
busy adding features

Bespoke features over time:

Plugin first design

bespoke.from('#presentation', [
  classes(),
  keys(),
  touch(),
  bullets('li, .bullet'),
  etc...
]);

Every plugin is a separate module

var bespoke  = require('bespoke'),
    classes  = require('bespoke-classes'),
    keys     = require('bespoke-keys'),
    touch    = require('bespoke-touch'),
    bullets  = require('bespoke-bullets');

Plugins are just functions

module.exports = function(options) {
  return function(deck) {
    deck.next();
    deck.prev();
    // etc...
  };
};

The API is inherently modular

Authoring experience?

Perfect for fighting
“fear of the imperfect solution”

Plugins provide a safe space for your crazy experiments

Managing versions is simplified

Great for maintenance mode

To be continued