QR codes are now ubiquitous. The COVID-19 pandemic accelerated their transition from being seen as “that strange square barcode thing” to becoming a part of our everyday infrastructure. Used for restaurant menus, event tickets, parking payments, vaccine passes, package tracking, and building access. The market for QR codes is projected to reach $35 billion by 2030, reflecting significant growth and innovation potential, which should inspire technology professionals and business owners to explore new developments. However, one key observation is that although QR codes have evolved into a primary interface, the actual user experience associated with them has not advanced at all.
When you scan a QR code on an iPhone, the camera recognizes it, and you receive a notification. By tapping on this notification, you are instantly directed to the URL embedded within the code. There’s no preview or verification step to confirm what you are about to open. This interaction model assumes that QR codes are trustworthy and that instant access is always desirable. While this made sense when QR codes were rare and primarily used for marketing campaigns, it is far less justifiable now that they are widely used for payments, identity verification, and access control.
The absence of a preview is not merely a minor user experience issue; it also poses a security vulnerability. Malicious QR codes can be placed over legitimate ones, and phishing attacks can disguise themselves as restaurant menus or parking payment systems. Even in non-malicious scenarios, there is no way to know whether the code you are scanning is expired or if it will lead you to a mobile-friendly page or prompt a file download. Essentially, you are scanning without visibility.
I began with a simple question: What should occur in the moment between detection and action to support user choices, especially regarding safety and trust? What if, instead of immediately opening a link, your camera displayed a preview overlay that provided just enough information to help you make an informed decision?
This preview would appear as a floating card as soon as your camera detects a QR code, showing you three essential pieces of information: the type of content (e.g., website, contact card, WiFi network, event ticket), the destination (the actual URL or relevant details), and whether the source is verified. Providing this information helps build trust and transparency, making users feel more comfortable before opening links.
The key insight is that preview content should be contextual, not generic, to ensure relevance across various user scenarios. A preview overlay for every QR code shouldn’t look the same. What you need to know before scanning a restaurant menu is entirely different from what you need to know before scanning a shipping label. Tailoring previews to the content type helps users feel understood and supported in their specific context.
For Restaurants/Menus The preview displays the restaurant’s name, hours, location, and, if available, a rating pulled from Google or Yelp. It also highlights a couple of featured menu items or today’s specials. The “Verified Source” indicator appears if the restaurant is the confirmed owner of that QR code. This preview provides the same information you would expect to see on the cover of a physical menu, giving you enough details to ensure you’re at the right place and that it’s legitimate, helping users feel more confident in their choices.
For Events and Tickets Security verification becomes the top priority. When you scan a concert or festival ticket, the preview shows the event’s name, date and time, location, ticket type (General Admission, VIP, etc.), and verification status. If the ticket is from a platform like Eventbrite, this is indicated. Additionally, if the ticket is transferable or has an expiration time, that information is visible as well. You can immediately determine if the ticket is valid before attempting to use it for entry, which helps users feel secure and confident in the process.
For Delivery and Logistics I began considering high-volume, occupation-specific use cases. For delivery drivers scanning 60 or more packages daily, speed and accuracy are crucial. The preview overlay displays the bill of lading number, sender and receiver information, package weight, and any special delivery instructions (such as back porch delivery, signature required, or time-sensitive needs). There are also visual indicators for notices or special handling. The preview remains on-screen just long enough to confirm you’ve selected the correct package from your truck, after which you can tap through to mark it as delivered or view full details, supporting efficiency and reducing errors.
Testing the concept across these different contexts revealed something important: we’re not just lacking preview functionality; we’re also missing the infrastructure to make previews truly useful.
Currently, when you scan a restaurant menu QR code, you’re likely just accessing a URL that links to a PDF hosted on their website. The QR code itself is a static image, either a PNG or SVG that encodes a simple string of text. There’s no metadata, no structure, and no ability to update it after creation.