web apps are weird