Committed a number of changes to allow multiple ShrimpTest “plugins” (custom metric types + variant types) and the form that those “plugins” take: basically, these plugins are all required to be object-oriented now, with ShrimpTest expecting them to implement a particular (simple, boilerplate) interface. More documentation coming for review.

I also got started with the first custom variant type: shortcode. The idea is to allow users to easily write new variants (and therefore kick start the process of specifying a new experiment) by wrapping multiple variants of content in a shortcode. The syntax I’m thinking about now is the following:

Make sure to [ab a="pay me"]make a donation[/ab].

Here, the control is the string “make a donation” and there’s one variant: “pay me”. [ab] would take any number of arguments, each of which would be translated into its own variant, with “a” here being the name of the variant (unfortunately shortcode arguments all get lowercased, afaik).

Comments welcome on the shortcode syntax! 🙂