This document discusses architectural considerations for complex mobile and web applications. It covers implementation strategies like the laser strategy of focusing on one platform and the cover-your-bases strategy of supporting multiple platforms. It also discusses design decisions around native vs hybrid apps and keeping client-side logic light by doing more processing on the server-side. The document provides best practices around API design including using consistent interfaces, aggregating responses, optimizing payloads and expanding and then contracting responses. It discusses organizational structures for managing APIs and client development including poly-skilled teams, dedicated API teams and using a mobile facade layer.