James Blair

Kia ora! I'm a first-year Computer Science student at The University of Auckland.

Projects

WaiMUN

Website and registration workflow for 126 schools across 15 schools, with Sanity CMS, Airtable, and Stripe. Developed internal tooling to generate event badges, and deliver personalised allocation emails.

  • Astro
  • Sanity CMS
  • Airtable
  • Stripe
  • TypeScript
  • React Email

Lectern

Event management platform for organisations, bringing publishing, registration, ticketing, check-in, participant imports, branded public pages, and printable materials into one place.

  • TypeScript
  • TanStack Start
  • Convex
  • WorkOS
  • Stripe
  • Resend
  • React PDF

Saku

Discord-hosted coding agent and harness in Rust with threaded conversations, file and shell tools, web search, and memory system for working on codebases away from the terminal.

  • Rust
  • Serenity
  • Codex
  • Exa

Alien Helpdesk

Helpdesk simulator game where players answer tickets from aliens, with AI-graded user responses.

  • Next.js
  • TypeScript
  • Zustand
  • AI SDK
  • Base UI

AnkAI

Built a study app that turns messy notes into Anki-style decks, with a collaborative, realtime editor and an AI microservice which generates structured flashcards.

  • Next.js
  • TypeScript
  • Convex
  • Clerk
  • Tiptap
  • OpenRouter

Homelab

Maintain self-hosted infrastructure for learning production-style operations, including Linux servers, Docker services, reverse proxies, backups, and home networking.

  • Linux
  • Docker
  • Caddy
  • Cloudflare
  • Networking
  • UniFi

Bridging Plugin

Developed a multiplayer game server plugin in Kotlin, implementing a session replay system, packet-level NMS hooks, and a persistent MariaDB database layer using Exposed and coroutines for async handling.

  • Kotlin
  • Spigot
  • Exposed
  • MariaDB

PaperSpigot Patch

Identified and patched a state desync bug in PaperSpigot – out-of-range block placements were rejected without a corrective client update, causing ghost blocks. Fixed by forking the project and issuing the missing update packets.

  • Java
  • PaperSpigot
  • Minecraft
  • NMS