Portfolio

Real projects. Real outcomes.

Every project here solved a real problem for a real business — most of them Australian. No design mockups, no concept work: these are things we built, shipped and still support.

BizzMate — AI Job Management for Trades & Construction
AI Solution Ongoing

BizzMate — AI Job Management for Trades & Construction

Turn the inbox into the job board: incoming email becomes an extracted, assigned, scheduled job, with quotes, invoices and a field app behind it.

Result

Live in production at bizzmate.xyz with a companion Flutter app at v1.1.0. 57 models, 354 routes, and 2,379 tests across the Django codebase. Real inbound email has run end to end against real models to produce real jobs, and Gmail OAuth intake is proven fully — SMTP delivery through Gmail, API fetch, extraction, job created. The project maintains an explicit standard that a green suite is not proof: every provider is mocked in tests, and integrations count as working only when they've been watched running against the deployed stack. Went through Google OAuth verification and Meta app review for the messaging channels.

› Email-to-job AI extraction that decides actionability first, then fills every field on the job
› Gmail, Outlook, and IMAP connectors with OAuth, encrypted credentials, and per-connector poll intervals
› Two-provider AI routing enforced in code, keeping Workspace-derived data off models that train on it
View
NIRAPOD
Mobile App

NIRAPOD

Crowdsourced incident reports that turn into real-time risk zones and location-based safety alerts.

Result

Delivered as a production application on Firebase (Blaze) with all four MVP phases plus post-MVP work complete: 30+ screens, 7 Firestore collections with rule-level security, 11 Cloud Functions and a Flutter Web admin console. The app ships on Android and iOS (v1.2.2), with Email, Google and Apple sign-in, account deletion with full server-side data cleanup, and a decay job that keeps risk data current instead of letting stale incidents accumulate. Geohash prefix queries and topic-based fan-out keep "nearby" lookups and alert delivery to a fixed cost per user rather than scanning the whole dataset.

› Real-time incident reporting with category, photo, GPS location and an anonymous option
› Automatic risk-zone (red zone) generation from clustered reports, weighted by incident severity
› Location-based push alerts delivered via geohash FCM topics to users in the affected area
Flutter Dart Riverpod
View
HealthIQ AI
AI Solution Ongoing

HealthIQ AI

Scan your food, know your health — an AI nutrition coach in your pocket.

Result

Shipped as a production cross-platform app on a live Firebase backend — 20+ Cloud Functions deployed, server-enforced entitlements and usage caps, a hosted internal admin console with live business metrics, and a Claude-powered analysis pipeline optimised from ~20 s to ~13 s per scan. The product is feature-complete through V2.4 with a subscription tier (US$5.99/mo, $49.99/yr) wired end-to-end through RevenueCat and validated against real billing events in sandbox. It is currently in store-release: Android in internal testing and iOS working through App Review, with early accounts on the platform and monetisation not yet switched on for real revenue.

› AI food scanning — photo, barcode, or nutrition label, analysed in seconds
› Personalised 0–10 health score computed against the user's goal, medical conditions, and allergies
› Safety-critical allergen detection that caps the score and warns before logging
Flutter Dart Riverpod (hooks_riverpod)
View
Pigeon Pedigree Pro — Multi-Tenant Loft Management SaaS
Web Application

Pigeon Pedigree Pro — Multi-Tenant Loft Management SaaS

Photograph a paper pedigree certificate and the birds appear in your loft records — with breeding, health, feed and race history behind them.

Result

A complete commercial SaaS product: Django REST API, Flutter application across iOS and Android, four subscription tiers with metered limits, Stripe billing including one-off top-up bundles, and an OCR import pipeline that removes the single biggest barrier to a breeder adopting management software. Deployed with Docker Compose behind Nginx with Let's Encrypt, and documented as a living tracker that maps every backend endpoint to its wiring status in the app — so what's built, what's partial and what's missing is visible at a glance rather than discovered later.

› Pedigree certificate scanning with a choice of OCR engines — Tesseract, Google Vision, Gemini, or automatic
› Entity extraction and pedigree mapping from photographed paper certificates
› Correction, retry and dry-run import preview before anything reaches the records
Django Django REST Framework SimpleJWT
View
HireOMate — Peer-to-Peer Rental Marketplace
Web Application Ongoing

HireOMate — Peer-to-Peer Rental Marketplace

Rent out the drill, the trailer, the camping gear — with deposits held rather than taken, condition photos on both ends, and a signed agreement in between.

Result

Feature-complete across eleven milestones with 466 tests, a companion Flutter app built through its full feature set, and a documented store-release path. The hardening milestone found and fixed real vulnerabilities rather than ticking boxes — the throttle configuration keyed rate limits on a client-controlled header, which meant varying it produced a fresh bucket per request and no limit in the application meant anything; sign-in had no throttle of its own at all; webhooks were inheriting the anonymous limit, where a 429 reads to Stripe as a failed delivery and quietly loses money events. Content-Security-Policy uses per-response nonces so no inline or eval exemption is needed, with frame-ancestors 'none' because clickjacking a "hand it over" button is a real attack on this product specifically. The platform was subsequently ported from its VPS Docker architecture to cPanel shared hosting on a separate branch, with the scheduled money jobs moved onto cron and the VPS-only tasks documented with their reasons rather than quietly dropped.

› Peer-to-peer rentals plus outright sales and rent-to-own instalments
› PostGIS near-me search with keyword, category, price, date-availability and sort filters
› Request-to-book lifecycle with owner confirmation, reschedule, and a pricing snapshot per booking
Django Django REST Framework drf-spectacular
View
Sisters Kitchen — Home Kitchen Ordering & Catering Website
Web Application

Sisters Kitchen — Home Kitchen Ordering & Catering Website

A family takeaway kitchen's weekly menu, pre-orders and catering enquiries, run entirely from a phone.

Result

Live on cPanel shared hosting under Passenger, with a documented deployment path and a MySQL driver fallback for accounts where the preferred client can't compile. Deliberately MySQL-only in production, with database credentials required rather than silently falling back to defaults. Page load and image handling were optimised after launch, and the site has carried real orders since.

› Dishes with availability date, serving time and an order deadline that closes ordering automatically
› Weekly specials with their own pricing, ordering instructions and photo sets, shown as a homepage carousel
› Pre-orders capturing pickup date and time, items and notes
Django 6 MySQL mysqlclient with PyMySQL fallback
View
REXX — Site Job Management Platform
Web Application

REXX — Site Job Management Platform

Work orders from the first call to the paid invoice, with the completion decision reserved for the person who owns the money.

Result

Deployed and running in production for an Australian contracting operation. The platform grew past the original job-and-invoice scope into a fuller back office: customer records, itemised invoicing with GST-inclusive or exclusive modes, purchase-order-style work orders with their own numbering and GST totals, completion reports capturing service performed and materials used, internal messaging, and a to-do list.

› Job lifecycle across seven statuses with a dedicated Further Quotation branch
› Completed status reserved to admins, enforced server-side rather than by hiding the option
› Invoicing hidden entirely from the manager role, not merely restricted
Django 5.2 MySQL SQLite
View
DailyOS — Daily Cash-Up & Back-Office Paperwork for Multi-Site Retail
Web Application

DailyOS — Daily Cash-Up & Back-Office Paperwork for Multi-Site Retail

The day's takings reconciled, the supplier invoices scanned and filed, and the accountant's exports ready — with the industry's own arithmetic stored as data rather than code.

Result

Deployed for a fuel-station operator and in daily use. 231 tests, including a generalisation gate that constructs an industry the codebase has never heard of entirely from database rows and drives the whole engine with it — if a new vertical ever requires a change inside the core, that test is what catches it. Three packs ship: fuel, restaurant, and workshop. The pack engine is complete and covered; wiring it through to what a customer sees is the remaining step, and the project's README says so explicitly rather than claiming otherwise — it even gives the grep command to check whether that status is still accurate.

› Multi-tenant scoping by business and site, with the platform admin structurally excluded from customer trading data
› Invite-only account hierarchy with forced password change at first login
› End-of-day reconciliation with live in-browser totals and draft/submit flow
Django 6.1 Python PostgreSQL
View
Anonymous Chat: Stranger Connect — Moderated 1:1 Stranger Chat
Mobile App

Anonymous Chat: Stranger Connect — Moderated 1:1 Stranger Chat

Anonymous one-to-one chat with strangers, built safety-first — because in this app category, moderation isn't a feature, it's the foundation.

Result

Shipped to both stores at v2.1.0, through eight milestones and an Apple resubmission cycle for the UGC guideline. Live moderation console in production with an audit trail and aggregate metrics. The build carries a documented runbook covering release ordering, rules deployment, and signature verification, plus a widget and security-rules test suite. Published under a deliberately separate developer account — Google's child-safety enforcement terminates associated developer accounts, so this app's store risk was firewalled from the company's other products by design, with distinct ownership and payment details so the accounts aren't linked.

› Anonymous authentication, no email or phone, no real-name field anywhere in the schema
› Date-of-birth age gate with an adults-only store rating declared consistently across app, listing, and IARC
› Interest-tag, mood, and gender-preference matching with rate-limited re-matching
Flutter Dart Firebase Anonymous Auth
View
AI Solution Ongoing

AgrowBizz — AI Farm Management Tool

Run the whole farm from one place — livestock records, pedigree, production, and real double-entry books, with an AI advisor that actually knows your herd.

Result

Phase 1 shipped end to end — 53 data models across 15 Django apps, 268 tests green, and the accounting layer taken from a cash-basis P&L tracker to real double-entry software: a balance sheet that balances mid-year, trial balance, cash flow, AR/AP ageing, fixed-asset depreciation, fiscal-year close, and gap-free invoice numbering. Built entirely within a hard shared-hosting constraint — no Docker, no Celery, no Redis, no background workers — with period work handled by cPanel cron plus Django management commands. Flutter mobile app is Phase 2, with the API and screen delta already scoped.

› Multi-species livestock records — cattle, goats, sheep, horses, and batch-tracked poultry flocks
› Pedigree family tree with automatic inbreeding-risk flagging on sire/dam pairings
› Species-aware production logging — milk, eggs, wool, weight — plus health and breeding events
Django 5.2 Django REST Framework Python
View

Want to be our next success story?

Tell us what you're building. We'll tell you how we'd approach it.

Start the conversation