Reliable background work means duct-taping queues, retries, state management, and tracing together — just to send an email without losing it.
Vercel Workflow replaces the duct tape. Tag a function with "use workflow", tag async calls with "use step", and you get durability, retries, and observability built in. No infrastructure to manage.
The visual workflow builder puts this power in a drag-and-drop canvas. Connect triggers to actions, deploy, and run durable workflows without writing boilerplate. But the real value comes when you extend it — adding plugins for Slack, Stripe, Resend, your internal services, whatever your business needs.
This course teaches you how to extend the visual workflow builder with your own plugins. You'll deploy the builder, learn how it works, then create integrations for the APIs you actually use. Along the way, you'll pick up the Workflow fundamentals (steps, retries, error handling) that make your plugins production-ready.
What You'll Build
- A webhook-triggered workflow that processes external events
- A custom "Shout" plugin (learning the folder pattern)
- A Resend email plugin with secure credential handling
- Your own plugin for Slack, Stripe, or another API you use
Before You Start
Skills: Comfortable with Next.js and TypeScript. An AI coding assistant helps but isn't required.
Accounts:
- Vercel account (free tier works)
- Resend account for the email plugin (free tier: 100 emails/day)
Optional: API credentials for whatever service you want to integrate in lesson 6 (Slack, Stripe, Twilio, etc.)
The workflow-builder-template has plugins already built (Resend, Slack, Linear, Firecrawl, AI Gateway). Deploy it and go. This course uses a stripped-down starter so you learn by extending.
Six Lessons
| # | What You Do | What You Learn | Time |
|---|---|---|---|
| 1 | Deploy the builder, run Hello Workflow | Workflows execute steps durably in the background. | ~15 min |
| 2 | Build a webhook workflow | Workflows can pause and wait for external events. | ~20 min |
| 3 | Build your first plugin | The plugin folder pattern with zero API complexity. | ~20 min |
| 4 | Build an email plugin | Apply the pattern to a real API with credentials. | ~25 min |
| 5 | Break it, fix it | RetryableError retries. FatalError stops. You control it. | ~25 min |
| 6 | Build your own plugin | Wire up Slack, Stripe, or your internal API. Prove you get it. | ~45 min |
Total: ~2.5 hours
By the end, you'll have built three plugins: a toy one to learn the pattern, a real one that sends email, and your own for an API you actually use.
On this page