How I Use ActivitySmith While Deploying ActivitySmith - Blog

2 min read Original article ↗

I am a huge fan of dogfooding. If I build developer tooling, I want to use it in my own day-to-day workflows, deployments, and release checks in production.

Deployments are one of the biggest ways I use ActivitySmith: push to main, a GitHub Actions workflow runs in the background, and I get step-by-step progress updates on my iPhone lock screen using iOS Live Activities.

The Problem I Kept Running Into

My deployments are automated with GitHub Actions and are fairly simple, but they still have multiple steps and usually take at least a minute. In larger projects and teams, deployment runs often take much longer.

Before ActivitySmith, that meant opening GitHub, finding the repo, going to Actions, opening the current run, and watching it progress until it finished so I knew when I could try it out.

That workflow was annoying. With ActivitySmith, the progress streams directly to my iPhone lock screen in real time, and I know exactly when a release is finished and ready to try.

ActivitySmith deployment Live Activity on iPhone showing a completed API deployment

What ActivitySmith Does in My Deployments

For every production deployment, ActivitySmith:

  • Starts a Live Activity at the beginning of the workflow.
  • Updates each phase of deployment progress in real time.
  • Ends the activity when production is fully switched.

This is not limited to one backend service. I use the same pattern across various backend services, frontend apps, landing pages, and other projects.

My GitHub Actions Workflow

Here is the workflow I use in production:

Push Notification

ActivitySmith push notification on iPhone showing deployment status

You can also use ActivitySmith to send push notifications to your iOS devices.

Why Zero Downtime Is Non-Negotiable

ActivitySmith is API infrastructure. Users expect near-constant availability.

Before I implemented zero-downtime deployments, the Live Activity lifecycle would break during release restarts because the API went down mid-deploy, so updates could not be delivered.

Deployments now run behind nginx with PM2 in cluster mode using zero-downtime reloads (worker A, then worker B), so traffic stays up and Live Activity updates continue reliably.

More Than One Project

This pattern now powers every deployment workflow I care about, not just ActivitySmith core services. Once wired in, every release gives real-time confidence without babysitting logs.

And outside GitHub Actions, the same approach works from scripts, cron jobs, workers, agents and more. Basically any backend. Zapier and n8n integrations are complete and currently pending marketplace approval.

Try It on Your Next Deployment