Designing a Lightweight POS App for
Stripe Terminal

Overview

Stripe Terminal gave platforms the flexibility to build custom point-of-sale (POS) tools—but lacked a ready-made solution for merchants without engineering resources. Over eight weeks, I led design for a lightweight, out-of-the-box POS app that let users authenticate, key in an amount, and collect payment with a Stripe Reader—no code required.

The app needed to support platform-level customization (branding, fees, and configuration) and serve as an open-source example for Stripe’s upcoming Apps on Devices initiative. While the project was deprioritized due to engineering bandwidth, I delivered P0 payment flows and a comprehensive research plan to support future development.

Opportunity

Stripe’s SDKs worked well for dev teams, but many merchants needed something simpler. This gap limited sales and onboarding, especially for smaller businesses. My goal was to design a turnkey app that met essential needs, minimized lift for platforms, and could serve as a reference implementation for future tooling.

Process

I started with a competitive scan of other POS systems (Square, Shopify, Toast) to understand expectations and friction points. Partnering with Developer Advocates, we defined a focused scope: enable fast payments, offer basic customization, and make it open-source.

To align the team, I wrote user stories for each core user:

  1. Cashier — Input a charge and take payment quickly

  2. Merchant — Use Terminal with no engineering setup

  3. Merchant — Brand the interface for a seamless in-store experience

  4. Platform — Offer a turnkey solution to help merchants get started fast

Design

I structured each flow around a clear user story, prioritizing the happy path of entering a charge and collecting payment. I also outlined other flows—like merchant setup and third-party configuration—for future development.

To move quickly, I skipped wireframes and jumped into mid-fidelity mocks using Stripe’s Terminal design system. I focused on delivering a solution that was turnkey-first: ready to use out of the box, with no engineering lift. I also made sure the interface was hardware-aware, optimizing every touchpoint for the Stripe Reader’s physical constraints and interaction model. Finally, I built with modularity in mind—designing layouts and components that could flex to support custom fees, platform branding, or future integrations.

Previous
Previous

Project Six