- Universal apps allow code to run on both the server and client for benefits like SEO and perceived performance - They render HTML on the server and initialize the single page application with the same server-rendered data - Frameworks like React support universal patterns, requiring code to run in both Node.js and browser environments - Challenges include ensuring environments match, handling performance of rendering large amounts of content, and testing both initial page load and subsequent single page application interactions