React Base Fiddle (JSX)

Starting point for creating JSFiddles with React. This uses React with Addons.

HTML

<script src="http://fb.me/JSXTransformer-0.12.1.js"></script>
<script src="http://fb.me/react-with-addons-0.12.1.js"></script>
<script src="http://facebook.github.io/react/js/jsfiddle-integration.js"></script>
<div id="app"></div>

JavaScript 1.7

var Mutant = function Mutant (defaults, options) {   
    var parent = this;
    var _evts = [];
    var methods = {};
    if (options && options.mixins) {
        methods = options.mixins;
    }
    for (var k in defaults) {
        this[k] = defaults[k];
    }
    methods.set = function (obj) {
        for (var k in obj) {
            parent[k] = obj[k];
        }
        if (options && options.validate) {
            console.log(options.validate);   
            //console.log(options.validate.color());   
        }
        methods.trigger("update", parent);
    };
    methods.on = function (trigger, cb) {
        _evts[trigger] = cb;
    };
    methods.trigger = function (trigger, data) {
        if (_evts[trigger]) {
            _evts[trigger].call(this, data);
        } 
    };
    this.mutant = methods;
    return this;
};

var post = new Mutant({
	id: 0,
	title: "",
	content: ""
});
var comments = new Mutant({
	comments: []
});

var App = React.createClass({
	propTypes: {
        post: React.PropTypes.shape({
            id: React.PropTypes.number,
            title: React.PropTypes.title,
            content: React.PropTypes.content
        }),
        comments: React.PropTypes.shape({
            comments: React.PropTypes.array
        })
    },
    getDefaultProps: function () {
		return {
			post: post,
			comments: comments
		}
	},
    componentWillMount: function () {
        var self = this;
        post.mutant.on("update", function (data) {
            self.setProps({post: data});
        });
        comments.mutant.on("update", function (data) {
            self.setProps({comments: data});
        });
    },
	render: function () {
        return (
			<div className="app">
				<Post {...this.props.post} />
				<Comments {...this.props.comments} />
			</div>
		);
	}
});

var Post = React.createClass({
	componentDidMount: function () {
        this.props.mutant.set({id: 1, title: "title", content: "content"});
    },
    render: function ()...