Simple, framework-agnostic, immutable models for the browser