Production Platforms
Monks.Render Cloud.
The cloud render farm that powers Metropolis, EasyJet Holidays, and the After Effects plugin. Turborepo monorepo, GCP fleet of headless AE workers on spot VMs, REST + Socket.IO API, real-time dashboard with live fleet management.
Distributed RenderingReal-Time DashboardGCP Fleet (Spot VMs)Internal Platform
6Packages in Monorepo
6Custom nexrender Actions
2Worker Auth Methods

01Overview
The render platform behind Metropolis, EasyJet Holidays, and the After Effects plugin — and a service that other Monks teams and external clients consume directly via REST API.
A Turborepo / pnpm monorepo houses six packages: shared types and Zod schemas; an Express + PostgreSQL gateway with nexrender HTTP integration; a React + Vite + Tailwind dashboard; a worker wrapper around nexrender-worker for the Windows AE machines; ExtendScript files for layer property targeting and the effect adapter; and custom nexrender actions for caching, GCS download, font install, media resolution, script injection, and progress reporting.
The production deployment runs on GCP Cloud Run (gateway + dashboard) with Cloud SQL for state, Cloud Storage for assets and outputs, and a Managed Instance Group of Windows Compute Engine VMs (After Effects pre-installed, spot-priced for ~75% cost reduction, SIGTERM-handled for preemption). Cloud NAT, VPC Access Connectors, and Secret Manager handle the private networking and credentials story. CI/CD via GitHub Actions and Cloud Build, infrastructure as code via Terraform.
The craft choice was treating observability as UX. The dashboard uses Socket.IO + TanStack Query to invalidate caches surgically on real events — no polling flicker. The job detail page renders a live activity log, error block, and output video player with signed URLs. The fleet control panel exposes spot-VM scaling (target count, machine type, lifecycle states) so a creative-ops lead can resize the farm without filing a ticket. A status-synthesis layer fills in fast nexrender state transitions that polling misses, so downstream consumers always see the full job lifecycle.
A Turborepo / pnpm monorepo houses six packages: shared types and Zod schemas; an Express + PostgreSQL gateway with nexrender HTTP integration; a React + Vite + Tailwind dashboard; a worker wrapper around nexrender-worker for the Windows AE machines; ExtendScript files for layer property targeting and the effect adapter; and custom nexrender actions for caching, GCS download, font install, media resolution, script injection, and progress reporting.
The production deployment runs on GCP Cloud Run (gateway + dashboard) with Cloud SQL for state, Cloud Storage for assets and outputs, and a Managed Instance Group of Windows Compute Engine VMs (After Effects pre-installed, spot-priced for ~75% cost reduction, SIGTERM-handled for preemption). Cloud NAT, VPC Access Connectors, and Secret Manager handle the private networking and credentials story. CI/CD via GitHub Actions and Cloud Build, infrastructure as code via Terraform.
The craft choice was treating observability as UX. The dashboard uses Socket.IO + TanStack Query to invalidate caches surgically on real events — no polling flicker. The job detail page renders a live activity log, error block, and output video player with signed URLs. The fleet control panel exposes spot-VM scaling (target count, machine type, lifecycle states) so a creative-ops lead can resize the farm without filing a ticket. A status-synthesis layer fills in fast nexrender state transitions that polling misses, so downstream consumers always see the full job lifecycle.
02Role · scope
Platform Engineer
Lead engineer on the monorepo — gateway, dashboard, worker, ExtendScript, custom actions, infrastructure.
DX / API Designer
Owned the REST API contract, named API keys, and webhook + SSE patterns that other Monks teams build against.
Infra Engineer
Authored Terraform for Cloud Run, Cloud SQL, Compute Engine MIG, VPC, and the spot-VM preemption handling. CI/CD on GitHub Actions and Cloud Build.
Tooling
TypeScript Node.js Express PostgreSQL React 19 Vite Socket.IO Turborepo / pnpm Google Cloud Platform Terraform nexrender
03Gallery

04Related work
