way.js

way.js is a simple, lightweight, persistent, framework-agnostic javascript library that allows you to bind DOM elements to an in-memory datastore (with no to little JS code).
If you like buzzwords, that means super easy two-way databinding.
Once you tried it here, check the documentation or play with some code on Codepen / jsFiddle.

Example

This form is binded to the "formData" property and automatically parsed on each change.
Data is set to persistent. Try refreshing the page after changing some of its values.
Bonus: open the JS console to see watchers in action.
The only code required to achieve that is the following:

<form way-data="formData" way-persistent="true">
<input type="text" name="name">
<input type="text" name="picture">
<img way-data="formData.picture" way-default="[some url]">
<input type="checkbox" name="nationality[]" value="french">
<input type="checkbox" name="nationality[]" value="american">
<input type="checkbox" name="nationality[]" value="british">
<input type="checkbox" name="nationality[]" value="chinese">
</form>
This is the data stored in way.js
Clear data