Building blocks for JS web apps