Built for specialty coffee

Run your roastery like software.

RoasteryHub is the operating system for wholesale coffee roasters. Inventory, orders, café portal, AI assistant — all in one place. Real-time, multi-tenant, production-ready.

Start free trial Watch demo14-day trial · No card required
app.RoasteryHub.io/admin

Good morning, Maya

Here's what's happening at Probador today

Orders this week
24
+18% vs last week
Roasted volume
148 kg
this week
Exiting freshness
3
lots in next 3 days
At-risk customers
2
no order in 30d
Live activity
LIVE
Common Grounds placed an order via portal
$291.50
2 min ago
Batch G0512 roasted
19.4 kg yield
14 min ago
Blue Bottle paid invoice
$1,240
1 hr ago
For roasters who take ops seriously
ProbadorKronotropMOCCounter CultureVerveOnyxStumptownHeart RoastersSey CoffeeForgeOrigin CoffeePilot CoffeeRitualGeorge HowellSlow PourProbadorKronotropMOCCounter CultureVerveOnyxStumptownHeart RoastersSey CoffeeForgeOrigin CoffeePilot CoffeeRitualGeorge HowellSlow Pour
01 · Inventory

Every kilogram accounted for.

Log a batch, RoasteryHub auto-creates FIFO inventory lots from the yield. Every order pulls from the oldest available lot — no manual tracking, no double-allocation.

1
Record the roast
Bean, green weight, roasted yield. That's it.
2
Lots auto-generated
Yield split into 5kg sellable lots with codes (G0512-001…).
3
FIFO from oldest
Orders consume oldest-roasted lot first. Auto-maintained.
batches / new
New roast batch
Bean
Ethiopia Guji
Green weight
22.0 kg
Roasted yield
19.4 kg
Loss:−2.6 kg (11.8%)
Auto-generated lots4 × 5kg
G0512-001· available
5.0 kg
G0512-002· available
5.0 kg
G0512-003· available
5.0 kg
G0512-004· available
4.4 kg
02 · Orders

Credit-aware, atomic.

Every order locks inventory and checks credit limit in a single Postgres transaction. Cancel an order and stock + balance reverse automatically. No spreadsheets, no "did we ship that?".

orders / detail
confirmed
Order #c8f2a149
Common Grounds
Net 30 · Tier: Large
Credit headroom
$1,815.08
Ethiopia Guji
lot G0512-001 · 8 kg
$233.20
Honduras Marcala
lot H0428-003 · 6 kg
$184.32
Colombia La Esperanza
lot C0501-002 · 4 kg
$118.40
Total$535.92
01
FIFO across multiple lots
10kg order spanning 3 lots? Allocated automatically.
02
Credit limit enforcement
Order over credit? Status: credit_blocked. Never ships.
03
Cancel reverses everything
Inventory restored, balance reduced, audit logged.
03 · Café Portal

Your cafés order themselves.

Invite a customer once. They sign in, see their tier pricing, place orders directly. Every portal order pops up on your admin dashboard via a real-time toast — no email loops, no phone calls.

Café sees
portal / orders / new
Place an order
Tier
Large
Balance
$0.00
Headroom
$1,815
Ethiopia Guji
lot G0512-001 · 8 kg
$233.20
Honduras Marcala
lot H0428-003 · 2 kg
$58.30
Total$291.50
Admin sees
admin / orders
LIVE
Orders
#c8f2a149Common Groundsportal
$291.50
#b3e1f088Blue Bottleportal
$1,240
#a7d0e144Boulevardmanual
$489.30
#9c1bf233Cafe Reveriestanding
$220.00
New portal order
$291.50 just placed
Per-customer portal access
Tier-based pricing — they see only theirs
Real-time toast to admin
Self-serve standing orders
04 · Customer Ledger

Know exactly who owes you what.

Every customer has a live page: current balance, credit limit, payment terms, recent orders, payment history. Record a payment in two clicks. AI drafts re-engagement emails when customers go quiet.

01
Prepay or Net 15/30/60 per customer
Different terms per customer, enforced at order time.
02
Atomic balance updates
Payment recorded → balance changes in same transaction.
03
AI re-engagement emails
30 days quiet? Draft a personalized email with one click.
admin / customers / detail
Healthy
Blue Bottle Coffee
Blue Bottle Coffee
Net 30 · Tier: Medium · Portal enabled
Current balance$348.40
17% of limit
Credit limit$2,000.00
$1,651.60 available
Recent orders
8kg Ethiopia + 4kg Kenyapending
$348.40
12kg Honduras Marcalapaid
$349.80
6kg Colombia La Esperanzapaid
$177.60
Recent payments
Bank transferApr 28
+ $700.00
Bank transferMar 15
+ $1,200.00
05 · Standing Orders

Recurring revenue, on autopilot.

Set a customer up once: 8kg Ethiopia Guji every Monday. A daily cron job creates the order, allocates inventory, checks credit — automatically. Idempotent: even if it runs twice, no duplicate orders.

admin / standing-orders
cron
Active standing orders
Cron runs daily at 06:00 UTC
Common Groundsactive
Weekly · Mon
8kg Ethiopia Guji
Next runMon, May 18
Boulevard Coffeeactive
Biweekly · Wed
12kg Honduras + 4kg Kenya
Next runWed, May 20
Cafe Reveriepaused
Monthly · 1st
20kg Colombia La Esperanza
Next runJun 1
01
Weekly / biweekly / monthly
Pick a cadence and day of week. We handle the rest.
02
Daily cron with retry
Vercel Cron triggers at 6am. Failed orders retry next day.
03
Idempotent by design
Unique constraint on (standing_order_id, run_date) — never duplicates.
Cron output
$ vercel cron run standing-orders
→ 06:00:00 UTC
→ Found 2 active standing orders
→ Common Grounds: created order #c8f2a14b
→ Boulevard Coffee: created order #b3e1f08a
✓ 2 orders created, 0 errors
06 · AI Assistant

Ask your data anything.

Natural language → safe SQL → answer. Three layers of safety: allow-list of read-only patterns, RPC prefix check, and tenant RLS. The AI sees your data but can never modify it or leak across tenants.

admin / assistant
claude-opus
AI Assistant
Which customers haven't ordered in 30 days?
I found 2 inactive customers (30+ days):
Cafe Reverie · last Apr 10 · $1,840 lifetime
Boulevard Coffee · last Apr 5 · $2,210 lifetime
Generated SQL
select business_name,
       max(o.created_at) as last_order
from customers c
left join orders o on o.customer_id = c.id
where c.is_active = true
group by c.id
having max(o.created_at) < now() - interval '30 days'
order by last_order asc
Want me to draft re-engagement emails?
_
01
Allow-list
Only SELECT statements pass. INSERT/UPDATE/DELETE rejected before execution.
02
RPC prefix
Wrapped in execute_ai_select function — extra guard at DB level.
03
Row-level security
Same RLS as your app — AI sees only your tenant's rows.
100%
Multi-tenant via RLS
<500ms
Portal → admin sync
FIFO
Inventory allocation
0
Spreadsheets required
Pricing

One plan per roastery size.

Pro

Single roastery, up to 2,000kg/month

₺4.990
/ month
Start trial
  • FIFO inventory + lots
  • Credit-aware orders
  • Café portal (real-time)
  • Tier-based pricing rules
  • Standing orders + cron
  • AI assistant (read-only)
  • Cupping logs
Most popular

Scale

Multi-location, unlimited volume, white-label

₺9.990
/ month
Book a call
Everything in Pro, plus:
  • Multi-location
  • Unlimited volume
  • White-label portal
  • AI re-engagement emails
  • Priority support + SLA

14-day trial · No credit card · Cancel anytime

Stop running your roastery on spreadsheets.

30-minute demo with your actual data. We'll set up a tenant and show your workflow.

RoasteryHub — Wholesale SaaS for Coffee Roasters