This is a practical design course on perspectives, tools, and methods for going from an idea for a product or service powered by a mobile and/or web application to an interactive design prototype ready for handoff to a development team. We begin with creating detailed personas and stories that capture why and for whom the product or service is developed. We then translate those personas and stories into storyboards that illustrate the application's experiential flow in real-world contexts in terms of concrete visual and interaction design elements. We develop a component-based design system for creating interactive prototypes with live data. Our focus is on designing novel user experiences and leveraging third-party user interface kits to give our prototypes a professional look and feel. We create prototypes with a visual design tool that also allows creating and enhancing components with code for imagining and realizing even richer interactions and experience flows. Technologies used in this course include Gatsby, Adobe XD, Framer X, React, Github, Visual Studio Code, and Netlify.