Cashify POS — Multi‑Tenant SaaS
Point of sale sold as a service: every customer gets a fully separate database and subdomain, and subscribes to a plan that decides which features unlock. The product is API-first — the dashboard and the mobile app are both clients of the same API.
Overview
Multi‑tenant POS sold by subscription plans: stock and transfers, quotations, sale and purchase returns, multi‑currency and multi‑language, plus a full mobile API.
01The challenge
Selling the system by subscription changes the architecture at the root. One store’s data must never touch another’s — not through a forgotten filter, not through a direct query — and the plan has to genuinely gate what a subscriber can do, rather than being a label on a pricing page.
At the same time, onboarding a new subscriber has to be instant: database, domain, seed data and an admin account, with no manual step.
02What we built
We used database-per-tenant isolation via stancl/tenancy, so separation is structural rather than logical: no query can cross a tenant boundary even if a filter is forgotten. Routes are split into tenant routes and platform-admin routes, each with its own middleware.
Plans are modelled as features attached to a plan and checked at the point of use, not only at the point of display. New-subscriber signup runs a provisioning path that creates the database, domain and seed data in a single step.
The product itself was built API-first over a repository pattern, so every dashboard screen and every app screen consumes the same endpoints — a feature is built once and reaches both.
03The outcome
The platform became sellable with no per-customer operational cost: a subscription ends in a working store within seconds instead of a manually deployed copy per subscriber.
Multi-currency and multi-language are built into the core, so the same product sells into more than one market without a separate build per market.
What the system does
The modules that were delivered and put into daily use.
-
01
Full per-tenant isolation with a separate database and subdomain, provisioned automatically at signup.
-
02
Subscription plans with features gated at the point of use, plus subscription billing and payments.
-
03
Stock across warehouses and stores: transfers, adjustments, units and base units, and product variations.
-
04
A complete sale and purchase cycle with returns on both sides, quotations, held invoices and partial payments.
-
05
Multi-currency, multi-language and multi-tax, with coupons tied to specific products.
-
06
A platform-admin console: plans, features, subscribers, currencies, languages and marketing-site content.
-
07
A complete Sanctum-secured API (36 modules) serving the dashboard and the app from the same endpoints.
-
08
Multiple payment gateways: Stripe, PayPal, Razorpay and Paystack, plus SMS notifications with editable templates.
Technologies used
What this system is actually built on — not a generic list.