Harbor & Co
Harbor & Co: Checkout and inventory for multi-store retail
A storefront and inventory layer for a specialty retailer running online sales alongside two physical locations.
E-commerce

Challenge
Problem space
Specialty retail needed online sales without fighting in-store stock, especially for limited drops.
Business impact
Oversells, manual refunds, and staff time spent reconciling spreadsheets each morning.
Solution direction
One inventory ledger with reservations at checkout, channel-aware stock, and a staff admin that non-engineers can use.
Solution
We unified catalog, inventory reservations, and checkout so web and store channels share the same stock truth, with Stripe payments and staff admin tools.
What we shipped
- Unified catalog
- Inventory reservations
- Stripe checkout
- Staff admin
- Order and refund history
Architecture
Inventory as a ledger: available, reserved, sold. Checkout creates short-lived reservations; payment success converts them to sales.
Storefront -> Checkout API -> Inventory ledger -> Stripe -> Admin dashboard -> Store POS sync
Storefront
Catalog, product detail, cart, and checkout flows.
Commerce services
Inventory reservations, order records, refund paths.
Admin
Stock adjustments, order lookup, and channel toggles.
Engineering challenges
Preventing oversells
Friction
Concurrent checkouts claimed the same limited SKU.
Solution
Short TTL reservations with transactional stock checks before payment confirmation.
Staff-friendly admin
Friction
Store managers needed stock edits without engineering help.
Solution
Simple adjustment UI with audit trail and reason codes.
Outcomes
Stock truth
- Before
- Separate web and store counts
- After
- Shared ledger with reservations
- Impact
- Fewer oversells on limited releases
Ops overhead
- Before
- Morning spreadsheet reconciliation
- After
- Admin adjustments with history
- Impact
- Staff update inventory once per change
Technology
Product
- Next.js
- TypeScript
Backend
- Node.js
- PostgreSQL
Payments
- Stripe

Building something similar?
Tell us about your product. We will reply with next steps and an estimate path.