Hype StackHypeStack

Use case

Software For Order Management

An order management system is mostly a promise about inventory: that the thing you just sold exists, and that it has not also been sold to somebody else.

Order management sits between the place an order is taken and the place it is fulfilled. On a small scale that gap is trivial and a spreadsheet handles it. It stops being trivial the moment you sell the same stock through more than one channel, because then two systems both believe they have the last unit.

We sell source code you clone and run yourself, so there is nothing hosted here. For a single sales channel, the order management built into your storefront or accounting package is very likely enough, and this page tries to be clear about where that stops being true.

What an OMS does that a storefront does not

Storefront order handling
Order management system
Scope of truth
Orders placed on that channel
Orders from every channel, against one stock pool
Inventory
A count per product
Available to promise, with reservations and allocations
Fulfilment
One shipment per order, usually
Splits, partials, backorders, multiple locations
Where it hurts
Oversells the moment a second channel exists
Integration work with every channel and carrier

The second row is the whole category in one line. A count of how many units exist is not the same as a count of how many you can safely sell, and the difference is everything reserved by a pending order, allocated to a picker, or already committed to a channel that has not yet told you.

Available to promise is the concept worth learning

Most order management pain traces back to conflating three numbers.

Three stock numbers, not one

On hand

What is physically in the building. This is the number a stock take produces and the only one most spreadsheets track.

counted
Reserved or allocated

On hand but already promised to a specific order. It has not shipped, so it is still physically present, and selling it again is the most common oversell.

committed
Available to promise

On hand, minus reserved, plus anything inbound that will arrive before you need it. This is the number a channel should be shown, and the number most integrations get wrong.

derived

If a system exposes only on hand to its sales channels, overselling is a matter of time rather than a bug.

The mechanism behind a correct reservation is worth naming, because it is the part people rebuild badly. Checking availability and then writing the order is a race: two orders for the last unit both pass the check and both get written. The fix is to make the decrement and the order insert one atomic operation with a constraint that forbids negative availability, so the second one fails rather than succeeding quietly.

Where the free and low-cost options land

Zoho Inventory turns up throughout this search for a reason: it does multi-channel stock with order management at a price that suits small sellers, and it has a free tier. Odoo covers the same ground with an open source core. If you already run accounting software, check what it does with orders before buying anything, because the double entry into accounts is the integration people forget to cost.

The point where these stop being enough is usually one of three: fulfilment from several locations with routing rules, a channel nobody supports, or order volumes where per-order pricing becomes uncomfortable.

When building is the right call

Are you selling goods, or selling order management to people who sell goods?

You sell the goods

Buy. The integrations are the product.

  • Channel connectors, carrier labels, and tax handling are permanent maintenance somebody else is already doing
  • The interesting part of your business is rarely the allocation algorithm
  • The exception is a fulfilment rule genuinely nobody supports, which is rarer than it sounds
It is a feature of your product

Then it is a multi-tenant app with orders in it.

  • A marketplace, a wholesale portal, or a vertical tool where your customers manage their own orders
  • Per-customer isolation, roles, and billing come before any allocation logic
  • You can often scope out carriers and tax entirely by integrating rather than implementing

The second branch is where a template changes the estimate, because tenancy and billing are most of the work.

What you would start from here

There is no order management in this stack. No product model, no stock levels, no orders, no reservations, no fulfilment, and no channel integrations.

What the Vault template gives you is the application those would live in: organizations as the tenancy boundary, roles and invitations, a Hono backend with Prisma and Kysely on Postgres, an admin app for support, and Stripe billing for charging your own customers. Stripe here is for your subscription revenue, not for taking payment on the orders your users process, which is a separate decision with its own compliance questions.

The parts you write are the product and stock models, the order and line item, the reservation with the constraint that makes it safe, and the fulfilment records. If you need carrier labels or tax calculation, integrate rather than implement; both are their own industries and both are somebody else's bill.

Below is the tenancy, admin, and billing layer. Weigh it against the three stock numbers above, and if Zoho or Odoo already answers your case, that is the cheaper answer.

Hype Stack

What is Hype Stack?

Every product starts with the same month of work nobody pays you for: sign-up and login, teams and permissions, taking payments, notifications, an admin panel to run the business. Hype Stack is that month, already built and tested. Start from the free open-source app, add the pieces you need with one command, and keep going on the part that is actually your idea.

Everything lands as real code in your own repository, so there is nothing to rent and nothing anyone can switch off. For the engineers: React 19, Hono, Postgres, and a desktop build, typed end to end.

See it running

Templates are curated project starters built on this stack: a layout, feature packs, a custom theme, and bonus pages. The previews below are recordings of the real apps.

Packs in this stack

Every pack ships real source code: frontend, backend, and admin surfaces where the feature needs them. The ones this stack installs come first; the rest can be composed in later.

Two ways to install features

Same features underneath, different starting point. Either command resolves what the packs depend on, copies the source into your repository, and merges the Prisma schema.

Ready-made

Take a template

A landing page, a design system, a themed layout, and the features already wired into it. Rebrand it, put your product in the middle, ship.

$npx @hype-stack/cli template
Browse templates
From scratch

$ hype-stack compose

AuthPayments

Compose your own design

Your design and your choices, without rebuilding auth, billing, or notifications. Tick the packs you want and the CLI wires them into the open-source starter.

$npx @hype-stack/cli compose
Browse packs

Questions, answered

Probably not. Your storefront or accounting package likely handles it, and adding a second system creates a synchronisation problem you did not have. The trigger is a second channel selling from the same stock pool.

More stacks

Turn your ideas into
Real applications.

Start free and own every line you ship. When you want more, one All-Access license unlocks every premium pack and template for a year.

All premium packsEvery template12 months of updates
Get All-Access