HashtagWebGet Quote
SaaS product · Case studyEST. 2023
WORK

ScaleSale POS, our own multi-tenant point of sale

Start a project

ScaleSale POS is a point-of-sale platform we designed, built and run ourselves: one codebase serving a marketing site, an operator console, a demo sandbox and a portal per company, where every company gets its own database and the register keeps selling offline.

The challenge

Most point-of-sale software assumes a card terminal, a steady connection and staff who have been trained on it. Plenty of shops have none of the three: they take cash, the internet drops, and whoever is behind the counter has to work it out alone. There is a second gap for anyone who wants to run a POS business for other shops rather than buy one. Products built on one shared database cannot give each customer properly separated data, its own brand or its own domain, which is exactly what an operator selling under their own name needs.

What we delivered

Architecture and decision recordDatabase-per-company isolationAutomatic company provisioningOffline-capable registerMulti-branch inventorySuppliers and purchase ordersRefunds, drawers and promotionsGift cards, store credit and loyaltyReporting and CSV exportWhite-label branding and domainsOperator console with MFAArtifact-only CI/CD

Built with

Next.jsReactTypeScriptPostgreSQLPrismaPgBouncerRedisNextAuthTailwind CSSCaddyPlaywrightGitHub Actions

What we built

We wrote the architecture down before writing the code. The first pass produced reviewed design documents, and every choice that shaped the build was recorded as a numbered decision, 91 of them, so the reasoning outlives the conversation it came from.

We gave every company its own Postgres database with its own credentials. When an operator approves a request, the platform creates the database, applies the migrations, seeds the organisation, roles and owner, and switches the company on, and running the same approval twice changes nothing. A company can be suspended or reactivated without touching anyone else.

We built the register to survive a dropped connection. It installs like an app, queues sales on the device while offline, and replays them through a checkout that accepts each sale exactly once, so reconnecting can never record a sale twice. A sale that fails for good lands in a visible list instead of vanishing, and money is held as exact decimals throughout.

Around the till we built what a shop actually runs on: branches, stock transfers and stock counts, suppliers and purchase orders, refunds that put stock back, cash drawer reconciliation, promotions, gift cards, store credit and loyalty, a tax engine, and reports on revenue, cost and margin taken from the cost at the moment of each sale.

We made it resellable and kept it locked down. Each company can carry its own colours, logo, sending address and domain, with certificates issued on demand. The operator console sits behind two-factor sign-in and an IP allowlist, and its audit log is append-only at the database level.

It ships as a build artifact only. Each push is type-checked, linted and built in CI, copied to the server as a release, migrated before the switch-over and reloaded with no downtime, with the last five releases kept to roll back to.

4
portals served from one codebase
1 database
per company, created automatically on approval
91
architecture decisions recorded

The result

ScaleSale POS is live at pos.hashtagweb.dev with an email-verified demo, and it is a platform an operator can put their own name on rather than a project rebuilt for each shop.

See all workSee the ScaleSale POS productStart a project
#0006 - Ready when you are

Hand us the thing youkeep putting offand we will ship it.

Drag the lever to start. We will come back within one business day with how we would tackle it.

00%

Trusted by07 Brands
#khareedLay
XooCity
The Supplement Spot
The Sajid Shah
Hashtag Logistics
Swiirl
Haris Travels
45+Clients since 2023