techniques

Deployment Guide

System Text-to-Speech Ready
Slide: 0:00 / 0:00
Slide 1 of 0Interactive Deck

Full Lesson Reference

Building something is only half the journey. This guide covers how to deploy web apps, macOS apps, and iOS apps so others can use them.

Web Deployment

Vercel

Best for: React, Next.js, static sites

terminal
Help me deploy this to Vercel.
Walk me through connecting my project.

The process:

  1. Create a Vercel account
  2. Connect your GitHub repo (or drag and drop)
  3. Vercel auto-detects your framework
  4. Click deploy

After deployment:

  • Automatic HTTPS
  • Custom domain support
  • Auto-deploys when you push to GitHub

Netlify

Best for: Static sites, Jamstack

Help me deploy this to Netlify.

Similar to Vercel:

  • GitHub integration
  • Automatic builds
  • Custom domains
  • Free tier available

GitHub Pages

Best for: Simple static sites, documentation

Set up GitHub Pages for this repository.

Limitations:

  • Static files only (no server-side code)
  • Must be a public repo (for free tier)

Choosing a host

NeedRecommendation
React/Next.jsVercel
Simple static siteNetlify or GitHub Pages
Need a databaseVercel, Railway, or Render
Full controlDigitalOcean, AWS

macOS Deployment

Development builds

Running from Xcode is fine for testing, but to share with others:

Build the app so I can run it outside Xcode.

Creating a distributable app

terminal
Create a release build of the app.
I want to share it with others.

This creates an .app file you can:

  • Put in your Applications folder
  • Share via AirDrop or file sharing
  • Upload to a website

Code signing (for wider distribution)

Without signing, macOS shows security warnings.

Help me set up code signing for this app.

Requires:

  • Apple Developer account ($99/year)
  • Signing certificate
  • Notarization for Gatekeeper

For personal use

If it's just for you:

  • Right-click → Open to bypass Gatekeeper
  • Or add to System Preferences → Security exceptions

iOS Deployment

Running on your device

Help me run this on my iPhone via Xcode.

Requires:

  • iPhone connected via cable (first time)
  • Free Apple ID (limited to 3 apps, 7-day expiry)
  • Or paid Apple Developer account

TestFlight (beta testing)

terminal
Help me submit this to TestFlight.
Walk me through the process.

TestFlight allows:

  • Testing on multiple devices
  • Inviting others to test
  • 90-day builds
  • Feedback collection

Requires:

  • Apple Developer account ($99/year)
  • App Store Connect setup
  • Build upload via Xcode

App Store submission

terminal
Help me prepare this for App Store submission.
What do I need?

Requirements:

  • Apple Developer account
  • App icons at all sizes
  • Screenshots for each device size
  • Privacy policy
  • App description and metadata
  • App review approval

App Store guidelines

Apple reviews all apps. Common rejection reasons:

  • Bugs or crashes
  • Incomplete functionality
  • Privacy issues
  • Guideline violations

Deployment Checklist

Web

  • Build completes without errors
  • Environment variables configured
  • Custom domain set up (optional)
  • HTTPS enabled
  • Test all features on live site

macOS

  • App runs outside Xcode
  • Code signed (for distribution)
  • Notarized (for Gatekeeper)
  • Works on clean system

iOS

  • Runs on physical device
  • All icon sizes provided
  • Launch screen configured
  • Privacy descriptions added
  • TestFlight build uploaded
  • Tested by others

Custom Domains

For web apps

terminal
Help me connect my custom domain [yourdomain.com]
to my Vercel deployment.

General steps:

  1. Add domain in hosting dashboard
  2. Update DNS records at your registrar
  3. Wait for propagation (up to 48 hours)
  4. SSL certificate auto-provisioned

DNS record types

  • A record: Points domain to IP address
  • CNAME: Points domain to another domain
  • Your host will tell you which to use

Environment Variables

What they're for

  • API keys
  • Database URLs
  • Environment-specific settings

Setting them up

terminal
Help me set up environment variables for deployment.
I have these secrets: [list them]

Never commit secrets to git — use environment variables instead.

Continuous Deployment

Auto-deploy on push

Most modern hosts auto-deploy when you push to main:

  1. Push code to GitHub
  2. Host detects the push
  3. Builds and deploys automatically
terminal
Set up continuous deployment from GitHub.
Deploy when I push to the main branch.

Make It Stick with a Skill File

If you want Claude to build deployment-ready code from the start — proper meta tags, environment variables, error boundaries, performance basics — drop the Deploy Ready skill file into your project. It catches the gotchas before they become problems.

What You'll Learn

  • Web deployment options and when to use each
  • Building distributable macOS apps
  • iOS deployment via TestFlight and App Store
  • Custom domain configuration
  • Environment variables for secrets
  • Continuous deployment workflows

Exercises

  1. Deploy a small web project to Vercel using the connect prompt, then confirm HTTPS is active and the live URL works.
  2. Set up continuous deployment from GitHub, make a small change, push to main, and watch the host rebuild and redeploy automatically.
  3. Move any hard-coded secret (API key, database URL) into an environment variable using the env-vars prompt, and verify nothing sensitive is committed to git.