One codebase.
Any number of storefronts.
Each storefront with its own domain, branding, SEO, customer namespace, and email routing — but sharing inventory, identity, and the operational backend with the rest of your business.
Run two storefronts,
or twenty.
Multi-site cannabis operators outgrow single-tenant platforms fast. Kushify is multi-tenant from the database up — every query is site-scoped, every page is site-aware, every email is site-routed. You scale the business; the platform stays simple.
Per-site site_visibility
Every product carries a site_visibility flag. Show a SKU on your main storefront, hide it on your delivery-only site, feature it on a brand-portfolio site — all from one inventory ledger.
Composite page keys
Pages are scoped by (slug, site_id) so two storefronts can have the same /promo/halloween URL without collision. Each renders its own content.
Cross-site account separation
Transparent #site_id suffix on auth lets the same email exist as separate customer profiles per storefront. One person, one identity per brand.
Customize / inherit pattern
Each storefront defaults to inheriting platform settings (email templates, branding, SEO defaults). Override only what you need to change per storefront.
Per-site SEO
Each storefront generates its own sitemap, robots, canonical URLs, OG images, and JSON-LD with its own brand identity — Google sees them as fully independent properties.
Per-site email routing
Order confirmations from the Highland Park storefront come from highlandpark@yourdomain. Delivery updates from the Valley Green storefront come from valley@yourdomain. Customer reply chains route correctly.
External-site image proxy
Multi-site storefronts proxy product imagery through a CDN-friendly route. Fast loads on external domains without cross-site cookie problems.
Unified inventory
One inventory deduction event regardless of which storefront sold the unit. No reconciling 'sold on web' vs 'sold in store' vs 'sold via delivery.'
Per-site staff permissions
A budtender at one location can be a manager at another, with completely different permissions per site. Permission grants are site-scoped.
Multi-site questions.
Do you give each storefront a separate database?
No. One database, one codebase, scoped by site_id. Each storefront has its own domain, branding, SEO, customer namespace (via a transparent #site_id suffix on auth), and email routing — but inventory, identity, and operations are unified. This is what makes 'one source of truth' actually work.
Can each storefront have a completely different brand?
Yes. Per-site branding covers logo, color palette, typography, hero copy, footer, email templates, and meta tags. Many of our multi-site chains run storefronts that look entirely unrelated — and they are, to the customer.
How are customers separated across sites?
Each storefront has its own customer namespace. [email protected] on Storefront A is a different customer record than [email protected] on Storefront B. Internally we suffix the auth identifier with #site_id so the data is fully separated, but the customer just sees their email as the login.
What happens if I want to merge two storefronts later?
Customer profiles can be merged via a one-time admin operation. Order history transfers, loyalty balances combine, ID verifications retain their status. Inventory was always unified so there's nothing to merge there.
You might also want to explore.
Single-location
Starting with one storefront? You're on the same platform multi-site chains run.
Delivery-first brands
Pair multi-site with delivery-only storefronts for hybrid retail + delivery operations.
Platform overview
POS, e-commerce, delivery, compliance — multi-site is the foundation under all of it.
Add your next storefront
in days, not months.
See how multi-site actually works. Book a demo to walk through the architecture.