// Inventory Master — page components // Shared A· wordmark function IMLogoA({ size = 28, dark = false }) { const ink = dark ? '#F5EFE6' : IM_C.ink; const dotColor = dark ? IM_C.tealMist : IM_C.teal; return ( A ); } function IMNav() { const isMobile = useIsMobile(); const [open, setOpen] = React.useState(false); const links = [ ['../index.html#products', 'Products'], ['../index.html#personas', 'Industries'], ['../index.html#processing', 'Processing'], ['../about.html', 'About'], ['../find-your-fit.html', 'Find your fit'], ]; return ( ); } function IMHero() { const isMobile = useIsMobile(); return (
← All products
Inventory · Part of Aloha Smart System

Know what you have.
Order before you run out.

Five minutes to set up. Two weeks for the system to learn your store. After that, it tells you when to reorder — for restaurants, liquor stores, bars, and corner markets.

Independent SaaS. Connects to Clover POS so sales auto-decrement stock and reorders fire themselves.

See it live → Get in touch
); } function IMReferenceBuild() { const isMobile = useIsMobile(); return (
Reference build

Soul Chicken Hawaii.
Anthony's own restaurants.

Inventory Master wasn't built by engineers guessing what restaurants need. It was built by Anthony Han for his two Korean fried chicken stores in Kalihi and Ke'eaumoku — running production every day at inventory.soulchickenhawaii.com.

Eighteen months of real shifts, real counts, real reorders. When you read "the system suggests," it means the system has been suggesting things in Anthony's kitchen for over a year.

{[['2', 'Stores'], ['18 mo', 'In production'], ['~120', 'SKUs counted'], ['0', 'Stockouts']].map(([n, l]) => (
{n}
{l}
))}
Live at inventory.soulchickenhawaii.com. Tenant data isolated per store.
Live
· inventory.soulchickenhawaii.com
{[ { store: 'Kalihi', color: IM_C.kalihi, items: 16, last: '2h ago' }, { store: 'Ke’eaumoku', color: IM_C.teal, items: 24, last: '4h ago' }, ].map(s => (
{s.store}
Last count {s.last}
{s.items}
items
))}
Same code. Different colors. Tenants get their own brand color injected at runtime — Kalihi runs red, Ke’eaumoku runs teal.
); } function IMSegments() { const isMobile = useIsMobile(); return (
Who it's for

One inventory engine. Four very different storefronts.

The hardware changes — register, scale, scanner. The math changes — perishables, par levels, shot pours. The principle doesn't: count what you have, watch what sells, reorder before you run out.

{IM_SEGMENTS.map(s => { const isLive = s.status === 'live'; const statusLabel = isLive ? 'Live in production' : s.status === 'in-progress' ? 'Rolling out' : 'Coming next'; const statusBg = isLive ? `${IM_C.palm}1A` : s.status === 'in-progress' ? `${IM_C.gold}1A` : IM_C.ink10; const statusColor = isLive ? IM_C.palm : s.status === 'in-progress' ? IM_C.gold : IM_C.ink70; return (
{s.label}
{statusLabel}

{s.headline}

{s.proof}
    {s.bullets.map(b => (
  • {b}
  • ))}
); })}
); } function IMModuleGallery() { const isMobile = useIsMobile(); return (
The eight modules

Every screen Anthony actually uses.

Not a feature list — eight working modules in production at Soul Chicken right now.

{IM_MODULES.map((m, i) => ( ))}
); } function IMModuleRow({ m, flip, last }) { const isMobile = useIsMobile(); const hasShot = !!m.screenshot; return (
{m.label}

{m.title}

{m.description}

    {m.bullets.map(b => (
  • {b}
  • ))}
{hasShot && (
{m.screenshotAlt}
{m.caption && (
{m.caption}
)}
)}
); } function IMLearningMode() { const isMobile = useIsMobile(); return (
The learning mode

We learn your store. You don't fill out a form.

Other systems make you input lead times, par levels, reorder points. That's jargon for "we don't want to do this work, you do it."

Inventory Master watches the actual counts for two weeks, then drops sixty suggestions on your screen. Apply them all, or tweak each one. That's the setup.

What competitors say
"Please input the reorder point, lead time in days, safety stock, and supplier minimum order quantity for each of your 120 SKUs."
What we say
"Just count for two weeks. We'll handle it from there."
{IM_LEARNING_STAGES.map((s, i) => (
Stage 0{i + 1}
{s.week}
{s.label}
{s.body}
))}
60
item suggestions ready
Real screenshot from Anthony's Auto-Reorder dashboard
✨ Apply All
); } function IMLearningProof() { const isMobile = useIsMobile(); return (
Proof — actual auto-reorder screen

Sixty suggestions. One Apply All button.

"Suggested: Min 1 · Order 3 (1/day)" — that's the system telling you "we've seen this item move at one per day, here's the reorder math we'd recommend."

Note the "×2 learned" tag — that's the system telling you the math has been refined twice as new data came in. Velocity changes; the suggestions follow.

Auto-reorder suggestions screen — 60 item suggestions ready, Apply All
); } function IMCloverIntegration() { const isMobile = useIsMobile(); return (
Why it lives inside Aloha Smart System

Clover sells it. We count it. The loop closes itself.

Inventory Master runs standalone — Soul Chicken proves that. But the magic happens when it talks to Clover POS. Every sale becomes a stock event. Every stock event can fire a reorder. The owner does nothing.

{IM_CLOVER_FLOW.map((step, i) => (
{step.step}
{step.label}
{step.body}
{!isMobile && i < 3 && (
)}
))}
That’s why Aloha
Inventory Master, Food Court Master, Table Order, Delivery Hub — every Aloha module connects to Clover the same way. Buy one, plug in. Buy two, they share the same sales data. That’s the whole point of the umbrella.
); } function IMTechStack() { const isMobile = useIsMobile(); const stack = [ { label: 'Hardware', items: ['Staff phones (BYOD)', 'Tablet for admin', 'Barcode scanner (optional)', 'Smart scale — Bar mode, 2026'] }, { label: 'Software', items: ['Next.js 16 + Tailwind v4', 'Prisma + Postgres', 'Multi-tenant per store', 'Mobile-first PWA'] }, { label: 'Integrations', items: ['Clover POS — OAuth + webhooks', 'Twilio SMS', 'Telegram bot API', 'Sam’s Club / Costco / Amazon parsers'] }, { label: 'AI', items: ['Claude Sonnet 4.5 — Vision OCR', 'Learned reorder suggestions', 'Velocity modeling per SKU'] }, ]; return (
Under the hood

Honolulu-built, modern stack.

{stack.map(s => (
{s.label}
    {s.items.map(i => (
  • {i}
  • ))}
))}
); } function IMComingNext() { const isMobile = useIsMobile(); const items = [ { tag: 'Bar mode', title: 'Smart scale on the back bar.', body: 'Hard liquor bottles sit on a connected scale. Pour a shot, the bottle gets lighter, the system sees it. Match against Clover sales — variance becomes visible. The oldest unsolved problem in hospitality, finally measurable.', eta: '2026', }, { tag: 'Convenience mode', title: 'Expiring milk → 30% off on the in-store TV.', body: 'Track receipt-date items. As expiration approaches, the system marks down and pushes the discount to your in-store TV via Display Network. Stop dumpstering inventory you already paid for.', eta: '2026', }, ]; return (
Coming next

The roadmap is hardware, not features.

Restaurant mode is mature. Liquor stores join via Clover this year. The next two modes need a piece of hardware — a scale, a TV. We’re building both.

{items.map(it => (
{it.tag}
ETA {it.eta}

{it.title}

{it.body}

))}
); } function IMContactCTA() { const isMobile = useIsMobile(); return (
Try it on your store

Five minutes to set up.
Two weeks to learn.

See Soul Chicken’s live system, then we’ll spin up your tenant. Your brand color, your suppliers, your first count by Friday.

Get in touch → See it live
); } function IMFooter() { const isMobile = useIsMobile(); return ( ); } function InventoryMasterPage() { return (
); } window.InventoryMasterPage = InventoryMasterPage;