Discovery informs everything we do. To create a great product, we first have to understand how your users think and interact with the problem you’re trying to solve. Once we’ve identified the opportunities, we can begin ideation by mapping possible solutions into conceptual models and information architecture. A product is a solution that solves the needs of the business, users and technical constraints. Here is where we map all that out and collaborate to create that solution together.


  • Mission Statement
  • Competitive Analysis
  • User Personas
  • User Journeys
  • Conceptual Models
  • Information Architecture

User Research

Building empathy through interviews and observations allows us to see the user’s environment from their perspective. Challenging any of our prior assumptions from the start ensures the initial product direction is on the right track. Building an entire product based on an assumption that turns out to be false is expensive and time consuming. Smart product development is about reducing those risks up front.


Adding structure to the potential solution concepts, we design wireframes that first focus on content and flow of the primary product sections, and then gradually increase the fidelity to include interaction behavior, layout styles, and other details. Through rapid prototyping, features are implemented and tested with users. Just as it’s important to outline a document before you start writing, with a product, building the structure first is important too.


  • Task Flows
  • Low-Fidelity Wireframes
  • Medium-Fidelity Wireframes
  • Interactive Prototypes
  • User Stories

User Testing

Using an agile approach, we get prototypes into the hands of real users to validate content, task flows, and interactions. Design iterations are based on user feedback. Getting informed by real users of necessary tweaks, improvements and bugs as early and often as possible makes for better products. Think of it as a sanity check.


Production starts once the product direction is solidified. Visual design is added and refined, while interactions and animations are polished. Edge use cases and error states are defined and screens are annotated for clear communication with developers. Incorporating design into the development process ensures a cohesive bond between form with function. Each feature, as it is developed, is created as a piece of the whole design. This eliminates lengthy reviews and rounds of design feedback after the product is functionally complete.


  • Visual Design
  • UX Pattern Libraries
  • Annotated Screens
  • Responsive Development
  • Web Applications
  • Native Applications