Medusa POS Starter Audit
Codebase Stats
| Metric | Value |
|---|---|
| Framework | Expo SDK 54, expo-router v6 |
| React | React 19.1, React Native 0.81.4 |
| Styling | NativeWind v4 (Tailwind for React Native) |
| Total files (TS/TSX/JS/JSX) | 134 |
| Lines of code | ~9,700 (excluding data constants) |
| Key deps | @medusajs/js-sdk, @tanstack/react-query, expo-camera, react-hook-form, zod, fuse.js |
Project Structure
Single Expo/React Native application. POS-only — no web storefront. Connects to external Medusa v2 backend via Admin REST API.
Screens
| Route | Description |
|---|---|
/login | Admin login with Medusa URL, email, password |
/setup-wizard | First-run: configure sales channel, region, stock location |
/(tabs)/products | Product grid with search, infinite scroll |
/(tabs)/orders | Order history with search, status/date filters |
/(tabs)/scan | Full-screen barcode scanner |
/(tabs)/cart | Draft order with line items, qty editing, promotions, customer |
/(tabs)/settings | Sales channel, region, stock location management |
/product-details | Product detail with variant picker, image carousel |
/customer-lookup | Customer search/create |
/checkout/[draftOrderId] | Checkout review + complete order |
/orders/[orderId] | Order detail |
POS Features
| Feature | Status |
|---|---|
| Product browsing/search | Yes |
| Barcode scanning | Yes (EAN-13, EAN-8, UPC-A, UPC-E, Code128, Code93, Code39) |
| Cart via Draft Orders | Yes |
| Promo/discount codes | Yes |
| Customer lookup + create | Yes |
| Order completion | Yes (converts draft order to order) |
| Order history | Yes (searchable, filterable) |
| Payment processing | No (orders complete without payment capture) |
| Receipt printing | No |
| Cash drawer | No |
| Inventory management | No (reads qty, never writes) |
| Offline mode | Limited (cached data only) |
| Returns/refunds | No |
Assessment for Dungeon Books
Low relevance. This app replaces Square POS — it does not integrate with it. The bookstore needs Square as the physical POS with bidirectional inventory sync to the commerce platform. This starter provides none of that.
Potentially reusable:
- Barcode scanning logic for ISBN lookup
- Medusa Admin SDK auth pattern
- NativeWind UI components
But the core architecture (draft-order-as-cart, no payment processing, no inventory sync) solves a different problem than Square POS integration.