Case Study • SaaS • Trades • South Africa
TradeTrack — Quote-to-Invoice SaaS for Trades & Service Businesses (South Africa)
Flutter + Supabase, designed for quotes, invoices, client management, and PDF delivery.
Executive summary
TradeTrack is a quote-to-invoice SaaS built by IKBI for South African trades and service businesses. It gives tradesmen and small teams a single workflow: manage clients, build quotes with line items and VAT, generate PDFs, and keep everything traceable. The system is designed as a scalable SaaS foundation — multi-tenant from day one, with secure data isolation and a clean domain model. It addresses the reality of quoting via WhatsApp and spreadsheets: inconsistent formatting, no central client history, and manual follow-up. TradeTrack delivers professional quoting, consistency, and a path from solo operator to small team without changing tools.
Audience & operating context
The primary audience is tradesmen and service businesses in South Africa: plumbers, electricians, handymen, installers. Common realities include quoting and invoicing via WhatsApp, spreadsheets, or Word; inconsistent quote numbering; no central client history; manual PDF creation; and follow-ups that depend on memory or scribbled notes. Scaling from solo to a small team makes these pain points worse. TradeTrack is built for that context: one place for clients, quotes, and PDFs, with business profile (logo, banking, terms), quote numbering per business, and VAT handling so that output looks professional and is easy to track.
The problem
- Inconsistent quotes and invoices — different formats, no standard numbering.
- No central client history — contacts and past work scattered across WhatsApp and spreadsheets.
- Manual PDF creation — time-consuming and error-prone.
- Poor traceability and document control — hard to find what was sent when.
- Hard to scale from solo to small team without a single source of truth.
The solution
A single workflow: client management, quote building (multi-step wizard), line items with VAT toggle, PDF generation and upload to storage, and a clear path from quote to invoice where the product supports it. Each business has a profile (logo, banking details, terms). Quote numbering is per business. VAT is handled in the line items. PDFs and attachments (e.g. photos) are stored in Supabase Storage and linked to the quote. Quotes can be sent to clients via WhatsApp or email as delivery channels. The system is roadmap-ready for convert-to-invoice and subscription gating (e.g. free vs pro, quote limits) so that it can grow with the business.
Architecture & security
- Frontend: Flutter web-first responsive UI — one codebase, works on desktop and mobile browsers.
- Backend: Supabase: PostgreSQL, Auth, and Storage. Central data model with business profile, clients, quotes, line items, and documents.
- Security: Row Level Security (RLS) for multi-tenant isolation by business_profile. Each business sees only its own data; no cross-tenant access.
- Data model: Clean domain model with clear relationships; secure data isolation and maintainable schema.
Key capabilities
- Client management (contacts and address).
- Quote wizard (multi-step) with line items and VAT toggle.
- PDF generation and upload to Supabase Storage.
- Quote photos and attachments linked to records.
- Business profile (logo, banking, terms) and per-business quote numbering.
- SaaS-ready foundation (e.g. subscription plan gating, free quote limits — where implemented).
Delivery approach
MVP-first: build the quote workflow end-to-end so that users can create clients, build quotes, and generate PDFs. Iterate on UI polish and reliability. Build reusable patterns — theme, state management (Riverpod), routing — so that the codebase stays maintainable and can scale to more features. Each phase delivered working functionality that could be tested and refined.
Workflow
- Create business profile (logo, banking, terms).
- Add client (contact and address).
- Build quote (wizard, line items, VAT).
- Generate PDF and upload to storage.
- Send to client (WhatsApp or email as delivery channels).
- Track quote history and status.
Outcomes
- Professional quoting workflow with consistent formatting and numbering.
- Consistency and traceability — every quote and PDF in one place.
- Faster admin turnaround; less time on manual PDFs and follow-up.
- SaaS-ready foundation for scaling features (plans, limits, convert-to-invoice).
Related services
Web Development South Africa · Mobile & Web App Development South Africa
Frequently Asked Questions
What is a quote-to-invoice system for trades?
A quote-to-invoice system is software that lets trades and service businesses create professional quotes, send them to clients, and convert accepted quotes into invoices. It typically includes client management, line items, VAT handling, PDF generation, and storage so that every quote and invoice is traceable. It replaces ad-hoc quoting in WhatsApp or Word with a consistent, professional workflow.
How does TradeTrack handle multi-tenant data security?
TradeTrack uses Supabase with Row Level Security (RLS). Each business has its own profile; data is isolated by business so that one tenant cannot see or modify another's clients, quotes, or invoices. Auth is tied to the business, and the database enforces access at the row level so that application logic alone cannot accidentally leak data across tenants.
Can TradeTrack support photos and file attachments?
Yes. The system supports attachments (e.g. photos) linked to quotes or jobs, stored in Supabase Storage. This helps trades document site visits, materials, or conditions. Files are scoped to the business and linked to the relevant record so they stay organised and auditable.
Can this be customized for a specific trade business?
Yes. TradeTrack is built as a SaaS foundation with a clear domain model (business profile, clients, quotes, line items, PDFs). Customisation for a specific trade — e.g. plumbers, electricians, installers — can add trade-specific fields, workflows, or branding without changing the core architecture. We build on the same stack: Flutter and Supabase.