JR

Projects

Things I've built.

A mix of personal tools and client work — mostly Next.js, AI-powered bots, and the systems behind my aerial content. I build to solve my own problems first, then iterate.

Stack colours:frameworkaidatabaseinfraapistyle

QuantBot

Active

A personal Telegram bot that tracks my investment portfolio, sends scheduled briefings, and watches for big price swings.

QuantBot connects portfolio data in Convex with live market prices to deliver on-demand analysis and automated alerts over Telegram, with Google Gemini generating the natural-language commentary.

  • Monday morning brief + daily volatility scan via Vercel cron jobs
  • Tracks ASX & US stocks, ETFs, and crypto with per-asset P/L
  • AFL tips engine with a weighted form / home-advantage / injury model
  • Auto-fallback between Gemini Pro and Flash models

Stack

Next.jsConvexGemini AIVercelTelegram Bot API

Cambium

Active

A bonsai collection manager that tracks each tree and warns you before Melbourne's weather can damage it.

Cambium keeps a profile for every tree in a collection — species, status, air-layering timelines — and cross-references the local 7-day forecast against per-species temperature thresholds to flag frost and heat risk before it happens.

  • Per-species frost/heat thresholds with AI-suggested defaults
  • "Weather Watch" dashboard alerts for the next 48 hours
  • Air-layering tracker that predicts when to cut off
  • Collection analytics — average age, species breakdown

Stack

Next.jsSupabasePrismaTailwind CSS

Homebot

Active

A Telegram bot that handles the small home automations — bin-night reminders and the like.

A lightweight always-on Telegram bot for household automations such as recurring reminders, hosted on Railway.

  • Recurring reminders (bin night and other chores)
  • Always-on, hosted on Railway

Stack

Telegram Bot APIRailway

Event RSVP Tool

Active

A lightweight event microsite — invite, add-to-calendar, and an RSVP form that writes straight to Google Sheets.

A self-contained event page pattern built for private events: hero invite, event details, calendar integration, and an RSVP form capturing attendance, guest counts, and dietary needs — backed by Google Apps Script writing to a shared Google Sheet, so there's no database or server to maintain.

  • Zero-infrastructure backend — an Apps Script web app writing to Sheets
  • Conditional form flow: guest count and dietary fields only when attending
  • Add-to-calendar for Google, Apple, and Outlook (.ics)
  • Ships as a single static page — no framework, loads instantly

Stack

HTML / CSS / JSGoogle Apps ScriptGoogle Sheets

Aerial Melbourne — Web & Content

Ongoing

Drone content for @aerial.melbourne plus client web projects, from event sites to AI-assisted reel production.

The web and content side of my aerial work: a data-driven Instagram content system, Seedance AI video sequences bridged into real drone footage, and bespoke client sites.

  • Data-driven reel strategy built on an Instagram analytics audit
  • "Space → MCG → Eureka" AI-to-drone flight sequences
  • Client event sites (RSVP, dietary, SMS invites)

Stack

Next.jsTailwind CSSVercelSeedance AI
See the aerial work