Uses

The setup I use to run a multi-agent Claude Code pipeline, ship iOS apps, and write here. Updated when something actually changes — not on a release schedule.

Code & ship

  • Shell: zsh on macOS
  • Runtime: Bun for everything new (the test runner alone is worth it). Node for legacy.
  • Languages day-to-day: TypeScript (web/CLI), Swift / SwiftUI (iOS/Mac), Python (audit scripts)
  • AI: Claude Code on the Max plan. ~$13K/week shadow cost; see my own ledger.

Ship the website

  • Framework: Astro with TypeScript strict mode + content collections
  • Hosting: Cloudflare Pages (Direct Upload via wrangler)
  • DNS / domain: Cloudflare Registrar. Bluesky handle is a TXT record on the same domain.
  • OG images: auto-generated with a small Python/Pillow script

Ship iOS apps

  • Build / submit: xcodebuild + App Store Connect API (JWT, ES256). I don't open Xcode for releases anymore.
  • Pre-flight check: apple-presubmit-audit on every project before Submit. 70+ rules built from real rejections.
  • Subscription stack: StoreKit 2, native Apple. No third-party SDK.
  • Backend: minimal — most apps have none. The ones that do use a small VPS + nginx as a thin AI proxy.

Open-source publishing

  • npm: jie.xiang (claude-agent-ledger)
  • GitHub: XJM-free
  • License default: MIT, unless I have a strong reason otherwise
  • CI: GitHub Actions, only typecheck + tests gating PRs

Where I post

What I don't use (yet)

  • Comments: probably Giscus when I add them — GitHub Discussions backed, no third-party signup needed.
  • Analytics: Cloudflare's built-in (privacy-friendly, no cookies). No GA, no PostHog.
  • Email newsletter: not yet. RSS is the only push channel for now.

Hardware & editor

Coming soon. Reach out on Bluesky if you want me to specifically write about a part of this stack.