Live, no customers yet
A white-label ordering and stock platform for wholesalers
RStock is Rcorp's own product for wholesalers: a platform that links a supplier with the shops it sells to. Each wholesaler runs its stock, orders and invoices from one place, and its retailers order through a portal in the wholesaler's own name and colours, on a phone or a desktop.
- Client
- RStock (an Rcorp product)
- Sector
- Wholesale and distribution (B2B)
- Team permissions
- 20+
- Team roles
- 3 (owner, admin, staff)
- Backups
- Nightly
- Customers
- None yet
The challenge
- Wholesalers that sell to independent shops need somewhere those shops can see what is in stock and what it costs them.
- Different shops often pay different trade prices, and some buy on credit, which is hard to manage when orders come in by phone or message.
- Once an order is placed it still has to be accepted, delivered, invoiced and chased for payment, usually across separate tools.
- A supplier wants its customers to deal with its own brand, not a third-party marketplace.
The screens
Marketing site. The RStock landing page, with a hero that cycles through example wholesaler brands.
Wholesaler dashboard. A wholesaler's dashboard: pending orders, money owed, 12 months of paid revenue, top products and recent activity.
Products and stock. The wholesaler's product list with SKU, brand, price and live stock, flagging low-stock lines.
Incoming orders. Orders from retailers, filtered by status from pending through to delivered.
Branded retailer sign-in. The retailer portal on the wholesaler's own subdomain, in the wholesaler's name and colour rather than RStock's.
Retailer home. What a shop sees after signing in: its orders, invoices due and anything overdue.
Retailer catalogue. The catalogue a retailer orders from, showing its trade-tier price against list price and stock for each line.
Ordering on a phone. The same catalogue as a shop owner uses it on a phone, with a running basket total.
Basket. The basket sheet, where quantities are adjusted before the order goes to the wholesaler.
Placing the order. The bottom of the basket: delivery details, order total and the place-order button.
What we built
Wholesaler portal
A dashboard showing pending orders, money owed, paid revenue and top products, plus screens for products, stock, orders, invoices, retailers and team settings.
Branded retailer portal
Each wholesaler gets its own subdomain, or can use its own domain, where its shops sign in, browse the catalogue at their trade price, fill a basket and place orders.
Order and invoice workflow
Orders move from pending through accepted, processing and out for delivery to delivered. PDF invoices are generated, and emails are sent for invites, orders and invoices.
Integrations
Products can be added by hand or imported from CSV, and a Xero connection handles invoice sync.
Platform and hosting
An installable, mobile-first web app with a Supabase backend. New releases go live automatically when changes are merged, with nightly backups and a rollback workflow.
What it does
Built with
- React 18
- TypeScript
- React Router 7
- Vite
- vite-plugin-pwa (Workbox)
- Vanilla CSS with design tokens
- Supabase (Postgres, Auth, Storage, Realtime, Edge Functions, pg_cron)
- Resend
- jsPDF
- PapaParse
- Recharts
- Xero API
- Sentry
- Caddy
- GitHub Actions
- Vitest
- Each wholesaler gets its own branded retailer portal on a subdomain, and a custom domain can be added
- Trade price tiers, with per-product overrides, so each shop sees its own price against list price
- Live stock levels with low-stock lines flagged
- Order tracking from pending through to delivered, with CSV export
- Auto-generated PDF invoices, marked as sent, paid or overdue
- Retailer credit limits and control over which products each shop can see
- Team accounts with owner, admin and staff roles and separate permissions for each action
- CSV product import and Xero invoice sync
- Email and push notifications for orders, invites and invoices
- Installs to a phone's home screen, with an offline fallback page
RStock is built and deployed at rstock.uk, and wholesalers can sign up there.
It has no customers yet. It is Rcorp's own product, waiting for its first wholesaler.
The screenshots use made-up demo data, not real trading activity.
Want something like this?
Tell us about your business and what you need. We will reply with honest questions, then a written proposal.
