Ironclad POS Web

One platform, two working modes.

The web app starts with separate admin and register experiences on a shared design system. The goal is operational clarity, not generic SaaS chrome.

Admin

Calm, dense, analytical.

Built for long sessions, filter-heavy workflows, reports, compliance, and store management.

Employee POS

Fast, tactile, stateful.

Built for queue pressure, scanning, patient validation, device status, and checkout speed.

Locked In

Web defaults from the current plan

  • Next.js with TypeScript and App Router
  • Role-based admin and employee shells
  • PWA shell with service worker and install manifest
  • Explicit local POS queue with replay and conflict review
  • Configurable API origin via `NEXT_PUBLIC_API_ORIGIN`

Legacy-Informed

Old iOS flow worth preserving

  • Patient intake or quick sale entry
  • Queue handoff and operator assignment
  • Category-driven product browse and scan
  • Cart review, discount, payment, receipt

First Pass

What this scaffold establishes

  • Role-based shells for admin and employee POS.
  • Offline and device state visible at all times.
  • Queue, patient, cart, and checkout treated as first-class product objects.
  • Session-backed browser login wired to `X-Session-ID`