JS Storage layer for Node & the browser