Tech Stack
Pride’s technology platform choices and strategic technology architecture.
Current Systems
Core revenue and operations:
- Square POS: Point of sale, payments, tabs
- TryBooking: Event ticketing, 8 years of customer data
- Xero: Accounting, payroll, superannuation
- Deputy: Staff rostering and time tracking
- PinTuna: Loyalty and membership programme
Communication and collaboration:
- Google Workspace: Email, file storage, website hosting
- Meta Business Suite: Instagram and Facebook scheduling
- Google Business Profile: Local search and reviews
Infrastructure:
- Optus NBN: Business broadband (single point of failure)
- Westpac Bank: Primary banking
- CCTV System: Liquor licensing compliance (record-only)
- VCPG Security: External security services
Architecture for Intelligence Dashboard
Decision: Next.js 16 + Supabase + Railway
Framework: Next.js 16 (App Router, React Server Components, Server Actions, React 19)
Database & Auth: Supabase (PostgreSQL, built-in Google OAuth, Row Level Security, file storage, real-time subscriptions)
Hosting: Railway (app server) + Supabase Cloud (database, auth, storage)
ORM: Prisma (type-safe database access, migrations, schema management)
Styling: Tailwind CSS v4 + shadcn/ui (copy-paste component system with Radix UI accessibility primitives)
Charts: Recharts v3 (CSS custom property theming via style prop)
Animation: Motion (Framer Motion) for component-level micro-interactions; Next.js 16 View Transitions API for route-level page transitions
Design tokens: tokens.css semantic token system with @theme inline integration for Tailwind v4
Background jobs: Railway cron jobs (scheduled data pulls, AI research)
AI: Anthropic API (email triage, event discovery, regulatory monitoring)
Why This Stack?
- Bundled platform: Supabase provides auth, database, storage, and real-time in one SDK (eliminates 4 separate services)
- Google OAuth: Built into Supabase auth; team already uses Google Workspace
- Row Level Security: Data access rules live in database, not scattered across API routes
- Claude Code quality: Next.js code from Claude Code works first-time more often; largest training data volume
- Cost efficiency: $10–30/month (Railway $5–15 + Supabase free tier + Anthropic API $5–15)
- Ecosystem: Massive community and pre-built components
- Developer experience: Server Actions simplify form handling; no client/server boundary confusion
Options Considered and Rejected
SvelteKit + Supabase: Better developer ergonomics but Claude Code produces less reliable Svelte code; smaller ecosystem; hiring risk
Remix + Supabase: Better form handling (loaders/actions pattern) but smaller community; less Remix-specific training data in Claude Code; smaller component library
Next.js + Neon + Vercel: Vercel’s free tier restricts commercial use; still need 3+ additional services (Clerk auth, S3 storage, Pusher real-time)
Integration Architecture
API integrations (Priority order):
- Square (OAuth): Daily data pull via Node.js SDK; 50 req/sec rate limit generous
- TryBooking (API key): Events, bookings, contacts; CSV fallback
- Gmail (Service account): Domain-wide delegation; shadow email approach to meet@ triage
- Xero (OAuth): Daily P&L summary, bank balances, reconciliation status
- Deputy (OAuth or API key): Daily roster pull, timesheet data
Data flow architecture:
- Phase 1: Connect Square, TryBooking, Xero (daily pipeline)
- Phase 2: Resolve Deputy→Xero payroll bridge; add TryBooking attendance scanning
- Phase 3: Unify customer data across TryBooking and PinTuna
- Phase 4: Add social media and regulatory monitoring
Security Model
- No API keys in client code: All external API calls server-side (Server Actions or API routes)
- OAuth tokens in Supabase vault: Encrypted at rest
- Row Level Security on all tables: Database-layer access enforcement
- Domain-restricted Google OAuth: Only @prideofourfootscray.bar and @exudegroup.com
- Gmail service account: Mat’s credentials never touch the app
- HTTPS everywhere: Railway provides SSL by default
- Environment variables: All secrets stored in env vars, never committed
- HR data access control: Warnings, medical certificates visible only to Admin role
Database Schema
Key areas:
- Users & Roles (Supabase Auth + app-level roles table)
- Square Data (orders, payments, line_items, locations)
- TryBooking Data (events, bookings, contacts, ticket_tiers)
- Venue Operations (staff, warnings, incidents, complaints, performance_notes, leave, banned_guests)
- Event Discovery (suggestions, sources, pipeline_status)
- Regulatory Alerts (alerts, sources, statuses, consultation_deadlines)
- Grant Alerts (grants, eligibility_assessments, pipeline_status)
- Email Triage (email_threads, ai_responses, send_status)
- Financial (xero_snapshots, cash_positions, reconciliation_status)
- File Storage (Supabase Storage with metadata table)
Row Level Security: Every table has RLS policies tied to user role. Admin sees everything. Operations sees ops-relevant data. Events sees event-relevant data. HR-sensitive data (warnings, medical certs) restricted to Admin only.
Cost Estimate
| Service | Plan | Cost |
|---|---|---|
| Railway | Hobby ($5 credit included) | $5–15 |
| Supabase | Free tier (500MB database, 1GB storage, 50k auth requests) | $0 |
| Anthropic API | Sonnet + Haiku usage | $5–15 |
| Total | $10–30/month |
Supabase free tier covers initial needs for 4 users. If database exceeds 500MB, Pro tier is $25/month.
Future Considerations
- Supabase free tier limits: Monitor database size as historical data grows
- Background job complexity: Railway cron simple but limited. If complexity grows, consider Inngest or BullMQ
- WebSocket support: If real-time features expand, evaluate Fly.io vs Railway
- Claude chat integration: Architecture supports generating context documents for Claude via iframe, OAuth, or API
Stack Optimisation Assessment (April 2026)
The current stack is broadly sound — no platform needs replacing. Gaps identified in inventory/COGS (nothing in place), loyalty (PinTuna eliminated), email marketing, and AI feature activation.
Recommended Additions (Total ~$500–680/month)
| Gap | Tool | Monthly Cost |
|---|---|---|
| Inventory/COGS | Loaded | ~$150–300 |
| Loyalty | Square Loyalty | $49–99 |
| Email marketing | Mailchimp Standard + Brevo SMS | ~$160 + SMS |
| Financial reporting | Fathom (Xero add-on) | $65 |
| AI marketing | ChatGPT/Claude + Canva Pro | ~$54 |
| Website chatbot | Tidio | ~$24 |
Free Activations (Priority 1)
- Square AI (conversational BI, launched AU March 2026)
- Xero JAX (AI financial assistant, included in subscription)
- Deputy AI scheduling (demand forecasting, already included)
See Tech Stack Optimisation for detailed recommendations and action sequence.
Related Pages
- Humphrey Intelligence App — dashboard product built on this stack
- Humphrey Design System — design system and component architecture
- Data Integration Architecture — ETL and data pipeline design
- Automation Opportunities — automation platform built on this stack
- Tech Stack Optimisation — detailed optimisation plan
- Melbourne Venue Tech Stack Research — source: 50+ tool evaluation