Full-Stack Developer

Deploy to Vercel From Telegram β€” Frontend Live in 90 Seconds

Deploy cycle: 5-7 min β†’ 90 secondsEngineering & DevOps4 min read

Key Takeaway

One Telegram message β€” "deploy learn-my-way to production" β€” triggers a Vercel build, monitors progress, and delivers the live URL. Preview deploys for every branch. Rollback in one command. 90 seconds, start to finish.

The Problem

Our frontend stack is React + TypeScript, deployed on Vercel. Vercel is great. Its deployment workflow is... fine.

"Fine" means: open browser, navigate to Vercel dashboard, find the project, click the deployment tab, select the branch, hit deploy, wait for the build, check for warnings, verify the URL works. Or push to the right Git branch and hope the auto-deploy is configured correctly for that specific branch.

It takes about 5 minutes if nothing goes wrong. If something goes wrong β€” build error, environment variable missing, deploy hook misconfigured β€” add 10-20 minutes of debugging in the Vercel UI.

But here's the real issue: I deploy from my phone. A lot. I'm reviewing a PR on the subway, I approve it, and now I want to deploy. Opening the Vercel dashboard on mobile is painful. The UI wasn't designed for a 6-inch screen.

I needed deployments to work from anywhere, on any device, with zero UI interaction.

The Solution

Thom's DevOps sub-agent handles Vercel deployments through Telegram. Production deploys, preview deploys, and rollbacks β€” all from a single message.

The Process

The deployment command is simple:

View details
Me: @thom deploy learn-my-way to production

The agent triggers a Vercel deployment via CLI:

bashShow code
# Trigger production deployment
cd /workspace/learn-my-way
vercel --prod --yes --token "$VERCEL_TOKEN" 2>&1 | tee /tmp/deploy.log

But the agent doesn't just fire-and-forget. It monitors the entire build:

bashShow code
# Parse build output in real-time
while IFS= read -r line; do
  case "$line" in
    *"Building"*)
      send_telegram "πŸ”¨ Building learn-my-way..." ;;
    *"Warning"*)
      warnings+=("$line") ;;
    *"Error"*)
      send_telegram "❌ Build error: $line"
      exit 1 ;;
    *"Ready"*)
      url=$(echo "$line" | grep -oP 'https://[^\s]+')
      send_telegram "βœ… Deployed: $url" ;;
  esac
done < /tmp/deploy.log

The Telegram conversation looks like this:

View details
Me: @thom deploy learn-my-way to production

Thom: πŸš€ Deploying learn-my-way to production...
  Branch: main (commit a4f2c1b)

Thom: πŸ”¨ Building... (React + TypeScript)

Thom: ⚠️ 1 warning: Bundle size increased by 12KB (dashboard chunk)
  Not blocking β€” but flag for next sprint.

Thom: βœ… Production live!
  πŸ”— https://learn-my-way.vercel.app
  ⏱ Build time: 48 seconds
  πŸ“¦ Bundle: 342KB gzipped

Preview deployments work for any branch:

View details
Me: @thom preview learn-my-way feature/new-dashboard

Thom: πŸ”„ Preview deploying feature/new-dashboard...

Thom: βœ… Preview ready!
  πŸ”— https://learn-my-way-git-feature-new-dashboard.vercel.app
  ⏱ Build time: 52 seconds

  Share this link for review. Expires in 30 days.

Rollback is instant:

View details
Me: @thom rollback learn-my-way

Thom: βͺ Rolling back learn-my-way...
  Previous deployment: v2.2.9 (deployed 2 days ago)

Thom: βœ… Rolled back to v2.2.9
  πŸ”— https://learn-my-way.vercel.app
  πŸ₯ Health check: 200 OK (response: 120ms)

The agent runs a health check after every deployment and rollback:

bashShow code
# Post-deploy health check
status=$(curl -s -o /dev/null -w "%{http_code}" "$DEPLOY_URL")
response_time=$(curl -s -o /dev/null -w "%{time_total}" "$DEPLOY_URL")

if [ "$status" != "200" ]; then
  send_telegram "🚨 Health check failed! Status: $status. Auto-rolling back..."
  vercel rollback --yes --token "$VERCEL_TOKEN"
fi

The agent config for the Vercel skill:

yamlShow code
vercel:
  projects:
    learn-my-way:
      framework: react
      build_command: npm run build
      output_directory: dist
      env_check:
        required: [VITE_API_URL, VITE_WS_URL, VITE_SENTRY_DSN]
    pyratzlabs-site:
      framework: next
      build_command: npm run build
      output_directory: .next
  defaults:
    health_check: true
    health_check_timeout: 30s
    auto_rollback_on_failure: true

The Results

MetricBefore (Dashboard)After (Telegram)Improvement
Deploy trigger time2-5 min (navigate UI)5 seconds (one message)95% faster
Total deploy cycle5-7 min90 seconds80% faster
Mobile deploymentPainful (Vercel mobile UI)Native (Telegram)Seamless
Failed deploy detectionManual checkAuto health checkInstant
Rollback time3-5 min (find previous)15 seconds93% faster
Build warnings caughtSometimes (if I read logs)Always (auto-surfaced)100% visibility

Try It Yourself

Install the Vercel CLI. The core is vercel --prod --yes with log parsing and a post-deploy health check. Add rollback support with vercel rollback. The value multiplier is the health check β€” auto-rollback on failure means you can deploy confidently from anywhere.


From my phone, on the subway, between stations. That's when I deployed to production today.

VercelTelegramDeploymentFrontendAutomation

Want results like these?

Start free with your own AI team. No credit card required.

Deploy to Vercel From Telegram β€” Frontend Live in 90 Seconds β€” Mr.Chief