Barefoot makes code sharing between browser and server reality. Write your application once and run it on both ends of the wire.
It builds upon the popular Backbone.JS library and keeps its own additions as unobtrusive as possible.
npm install node-barefoot
The latest version of the code documenation is available here:
To generate a set of documentation locally, make sure you have NaturalDocs installed on your system. To build the documentation into the
docs subdirectory, simply run
make docs on your command line.
We are happy for any community contribution. For questions, feature requests or problems, please fill in an issue.
Feel free to fork and optimize barefoot here on Github. If you have a pull request with some cool additions, please make sure you have unit test cases ready.
Barefoot vs. Rendr
When barefoot started to get developed, there was only one library which points into a similar direction as barefoot does: Rendr by airbnb accomplishes a client/server rendering with the same code base too. Eventhough it extends Backbone.JS as barefoot does, there are some importent differences between the two frameworks (or library when talking of Rendr):
- Rendr forces you to use Handlebars, whereas you're free of any templating engine when using barefoot.
- Barefoot has browserify, or more precisely its Express.js middleware counterpart browserify-middleware built in. Just one optimized code file will be transfered to your client.
- Where Rendr checks many times if it is running on the server or in the browser, barefoot uses mixins after an initial environment check.
Barefoot and Rendr are both far away from being perfect and production-ready. Try both and see what fits best for your use case. Or even better, help improving them :)
History of barefoot
The idea behind and the code of barefoot was initially developed as part of a bachelors thesis by @mekanics, @mweibel and @swissmanu during springtime 2013. We decided to decouple its logic into a distinct library early and made it available to the public here.