Design Foundations

Design Foundations

Cover Photo

Design Software

An overview of the tooling and software commonly used by product designers.

On Tooling

What software you should use is generally an overblown topic and not something you should spend significant time worrying about. The simple answer is: use whatever allows you personally to work most effectively and efficiently. The only caveat here is that it’s best to keep tooling consistent across a design team to allow for easier file sharing and collaboration. Provided you’re using something relatively modern, it’s unlikely to make a significant difference to your overall productivity. You’re also likely to change design tooling multiple times throughout your career, so it’s best not to get attached to any particular tool.

Pre-Design Artifacts

For pre-design artifacts, like user flows, and information architecture diagrams, you can use virtually anything that enables you to draw — including analog options like pen and paper. The only limitation here is the standard of presentation required for your audience. If I’m working in-house for a company and presenting to my internal team, I default to analog options for the sake of efficiency. However, if I’m presenting to senior leadership or external clients, I’ll use the same tools I use for high-fidelity mockups to achieve a higher level of visual quality.


  • Analog Options (Pen & Paper, Marker & Whiteboard) — These are great for divergent explorations, or where your audience doesn’t need a high-level of polish, because they’re super quick and efficient. Even if I intend to present more polished artifacts, I usually start with analog options for broader exploration before refining in a higher-fidelity tool.
  • Low-Fidelity Software, such as Balsamiq — These tools are designed to limit the level of fidelity to make the process more accessible to cross-functional partners. Although they’re intended for wireframing, they’re also great for pre-design artifacts.
  • High-Fidelity Software, such as Figma, Sketch, or Adobe XD — These are the same tools you’d use for high-fidelity mockups. I actively avoid using these for initial user flow and information architecture explorations, as it’s easy to get bogged down in the visual details. However, in contexts where I need to deliver highly-polished artifacts, I’ll move to these tools after completing drafts with analog tools. When using these tools, you can also use a library of predefined arrow and page components to improve your efficiency.


The principles relevant for pre-design artifacts are largely applicable to wireframes too. The primary goal of wireframes is efficiency — that is, enabling you to explore as many design options as possible without going to the effort of creating fully-fledged designs. This means you should use whatever tool is the most efficient for you. If you don’t have an existing component library, this will usually be analog tools, such as pen and paper. Yet if you need to present something more polished, you can also use a component library in a high-fidelity tool. One thing to keep in mind is that it’s often best to keep wireframes intentionally rough so the audience doesn’t get hung up on unintentional visual details. This means it’s usually best to limit your wireframes to a single color.


  • Analog Options (Pen & Paper, Marker & Whiteboard) — This is best for your initial versions, or where your audience doesn’t need a high-level of polish.
  • Low-Fidelity Software, such as Balsamiq — By limiting the level of fidelity, these tools make wireframing more accessible to cross-functional partners. This makes them a great choice when running design sprints with less pixel-fixated partners (such as product managers or developers) as it mitigates the risk of designers’ ideas being chosen only because they were presented in a more polished state.
  • High-Fidelity Software, such as Figma, Sketch, or Adobe XD — Like with pre-design artifacts, high-fidelity tools can be used for wireframing, with the caveat that you should avoid fixating on the pixel-level details. I recommend that you start with analog or low-fidelity tools, and only move to high-fidelity software where you need to deliver more-polished solutions for a specific audience.

High-Fidelity Mockups

Most of the large tools in this space are fairly similar. However, the most popular are currently Figma, Sketch, and Adobe XD. I personally use Figma because I prefer their Auto Layout tool to Sketch’s Smart Layout or Adobe XD’s Content-Aware Layout. However, if you prefer another option, you’re not going to be significantly disadvantaged.


  • Figma — Branded as “the modern interface design tool”, Figma allows you to create, collaborate, prototype, and handoff designs. I recommend Figma to anyone starting out because it has a free tier which only limits your number of public files. Although it started out with a focus on collaboration, it’s become an incredibly robust design tool with an excellent plugin and resource community, and is now used by some of the world’s largest tech companies.
  • Sketch — Sketch used to be the primary product design tool after it edged out former options like Adobe Photoshop due to its simplicity and plugin community. Although the paid plan is cheaper than Figma, they only offer a 30 day free trial in lieu of an ongoing free tier.
  • Adobe XD — Adobe XD’s core functionality is largely on par with Figma and Sketch, and it also provides a 30 day free trial. However, its plugin community isn’t as large, so I wouldn’t recommend it over either Figma or Sketch unless you already have a paid Adobe subscription.


There’s significantly more variance amongst prototyping tools than regular mock-up tools, and what you should use really depends on your needs. For basic prototyping without nuanced motion, I’d recommend using the same tool you use for high-fidelity mockups. So if you use Figma for mockups, use Figma for prototyping. However, if you need more granular control or complex animations, I’d recommend using a dedicated prototyping tool like Principle, Framer or Origami.


  • High-Fidelity Mockup tools, such as Figma, Sketch, or Adobe XD — If you’re using standard navigation patterns and only minimal animation, these tools will do everything you need. With features like Figma’s Smart Animate, you can prototype fairly quickly within your regular design tool.
  • Principle — Principle is one of the simplest dedicated prototyping tools, and a great option if you’re just starting out with more advanced animations. It provides more granular control than standard mockup tools, and allows you to import designs from Figma and Sketch, so there’s not a lot of overhead to get started.
  • Framer — Although Framer has pivoted towards being a website builder, it continues to support prototyping as a standalone use case. It has a lot of the same layout and component functionality that Figma and Sketch have, which make it great for building out larger, more complex prototypes which reuse a lot of the same components.
  • Origami Studio — Although Origami has the steepest learning curve, it’s also the most powerful. Geared towards complex interactions and animations, it’s built by Meta for advanced prototyping for apps like Instagram. It allows you to use native hardware APIs, meaning you can use the device’s real photo library, GPS data, and live haptic and motion feedback in your prototypes. This allows you to create incredibly realistic prototypes that feel like the real thing.

Iconography & Illustration

Iconography is fundamental to product design — whether used in support or in lieu of labels, or to indicate state. Whether you specialize in visual or interaction design, you’re likely to spend considerable time deciding on iconography symbolism or visual style. Although it seems like a small detail, poor iconography can make or break an experience. Similarly, illustration can have a significant impact on the quality of the experience. To create or edit either, you’ll need a vector editing tool. Adobe Illustrator is the clear industry leader in this area, and by far the most robust. However, if all you’re doing is tweaking the colors of existing icons or illustrations, you can get away with using the same tool you use for your high-fidelity mockups.


  • Adobe Illustrator — Illustrator is by far the most robust, fully-featured vector editing software available. It can be used for logo design, typography, iconography, illustration, infographics, banners, data visualizations, and more. Although it can be intimidating when you’re first getting started, the granularity of control it provides can help you elevate the visual quality of your product design. Illustrator offers a 30 day free trial like other Adobe apps, but no ongoing free tier.
  • Vectornator — Vectornator is newer and less robust than Illustrator. However, it is currently free and more than adequate for most use cases. If you’re just starting out, I’d recommend trying Vectornator before committing to Illustrator.
  • High-Fidelity Mockup tools, such as Figma, Sketch, or Adobe XD — As mentioned above, you can always use your standard UI design tool for basic vector updates like editing colors. This is fine if you’re just downloading existing iconography rather than creating anything from scratch. However, these tools are pretty limited in terms of vector editing, and don’t output the cleanest files. They’re also often incapable of accurately rendering more complex vector files.