Skip to content
Live extension playground
JavaScript HTML
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.
conf fix travis Jul 4, 2018
dist 4.0.0 Jul 4, 2018
src simplify float style hook Jul 4, 2018
.babelrc update babel config May 27, 2018
.gitignore update build-jsdoc May 30, 2018
.jshintrc fix jshint Jan 24, 2015
.travis.yml fix travis Jul 4, 2018
gulpfile.js update build-jsdoc May 30, 2018

better-dom: Live extension playground
NPM version Build Status Coverage Status NPM downloads Twitter


This library is about ideas. After some time of using jQuery I found that it's just too big, has lack of features needed and the API design is debatable. In particular live extensions was one of the main ideas that encouraged me to build a new library from scratch.

Vanilla DOM also has a lot of bad parts, that I'm trying to fix by providing a JavaScript wrapper for each DOM element you use in code. This extra layer allows to abstract from legacy interfaces and to add new methods on the top of particular elements without touching vanilla DOM prototypes. So the object model used is very different from what jQuery does.

Note, that the better-dom project is only about the DOM. It does not contain any AJAX or BOM helper.

Sauce Test Status



$ npm install better-dom 

Then just include the script below on your web page:

<script src="node_modules/better-dom/dist/better-dom.js"></script>



In order to modify the source code you have to install gulp globally:

$ npm install -g gulp

The project uses set of ES6 transpilers to compile the output file. You can use command below to start development:

$ npm start

After any change it recompiles build/better-dom.js and runs unit tests automatically.

Browser support


  • Chrome
  • Firefox
  • Opera
  • Safari
  • Edge
  • Internet Explorer 10-11


  • iOS Safari 7+
  • Chrome for Android 30+
You can’t perform that action at this time.