Put your node to work
Four workflows, one dedicated node
These are practical workflow examples, not customer case studies or performance guarantees. The commands show where to start; prepare your project dependencies, signing materials, and required software licenses before running them.
Solo developers
Write SwiftUI by day, build on your cloud Mac overnight
After a commit, use launchd or a runner to check out the specified revision, install dependencies, run tests, archive, and export in sequence. Upload to TestFlight with Fastlane, then review build logs and test results the next day before deciding whether to distribute to testers.
Keep your Scheme, build settings, and export options consistent, and store signing materials in the node’s own Keychain. Verify signing once in the graphical interface before switching to unattended builds.
xcodebuild -scheme MyApp archive -archivePath build/MyApp.xcarchive
CI teams
Trigger builds on PR merges and manage the queue as a team
Register a GitLab or GitHub self-hosted runner on the node, then route jobs by project, toolchain, and environment labels. Once a pull request is merged, run Fastlane gym to export signed artifacts for the main app and its extensions, and retain logs so failed jobs can be retried.
A dedicated node prevents other tenants from competing for its resources, but your team still needs to manage its own job queue. Set sensible runner concurrency and isolate working directories. Track certificate changes, Xcode switches, and cache cleanup in version-controlled scripts.
fastlane gym --scheme MyApp --export_method app-store
AI experiments
Fine-tune small models with 64GB of unified memory
Load a model with MLX, prepare your data, and run LoRA fine-tuning. Depending on model support, you can then use coremltools to convert it to Core ML. Add the result to your iOS project and check operator compatibility, inference memory use, and output quality.
Unified memory is shared by the model, training state, and macOS, so 64GB is not all available to the model. Start with a small batch to check memory use before increasing context length. Schedule training and packaging at different times rather than assuming both should run at once.
python -m mlx_lm.lora --model ./base --train --data ./data
Audio & video
Queue renders remotely and batch transcode overnight
Connect to the macOS desktop over VNC and schedule renders in a licensed Logic or Final Cut setup. For command-line jobs, encode with VideoToolbox and retrieve the finished files over SSH or rsync.
Upload a representative sample first to check plugins, fonts, codecs, and output settings. Transfer times for large files depend on your local bandwidth and network route, so consider scheduling bulk uploads separately from rendering.
ffmpeg -i in.mov -c:v hevc_videotoolbox -b:v 12M out.mp4