Migrate from Vercel
Translate a Vercel application and deployment workflow to Easel.
Vercel and Easel share a Git-based Preview and Production workflow, but not every platform feature has identical semantics.
Concept mapping
| Vercel | Easel |
|---|---|
| Project | Project |
| Preview deployment | Preview deployment |
| Production deployment | Production deployment |
| Current production deployment | Current Production deployment |
| Generated deployment URL | Unique deployment URL |
| Branch URL | Branch Preview URL |
| Environment variables | Environment variables (Preview / Production) |
| Functions | Easel Functions |
| Firewall | Easel Firewall |
| Attack Challenge Mode | Attack Mode |
| Observability | Observability, Logs, Invocations, Traces |
| Domains | Easel Domains |
| Deployment Protection | Deployment protection (workspace sign-in) |
Inventory Vercel configuration
Review:
- Framework preset, root directory, install and build commands
- Node.js version and Production branch
- Environment variables
vercel.jsonand framework-native redirects, rewrites, and headers- Functions and middleware
- ISR and revalidation
- Data Cache / Runtime Cache usage
- Image optimization
- Cron jobs
- Blob, KV, Postgres, or other managed storage
- Firewall rules and deployment protection
- Log drains, Web Analytics, or Speed Insights
- Build and function limits
Import the repository
Import the GitHub repository into Easel and compare detected settings with the Vercel project.
Do not assume matching framework detection means matching runtime behavior. Review the matching framework guide.
Translate configuration
Build settings
Map install command, build command, root directory, and Production branch into Easel project settings.
Redirects, rewrites, and headers
Prefer framework-native configuration where possible (for example next.config
for Next.js). For Vite-style static apps, vercel.json redirects, rewrites, and
headers may apply—see the Vite guide.
Do not copy unsupported vercel.json fields without verifying their effect.
Cron schedules in vercel.json are not a first-class Easel product today.
Environment variables
Create Preview and Production values in Project settings → Environment Variables.
Check:
- Build-time versus runtime values
- Public variable prefixes
- Preview branch overrides
- Whether redeployments need new snapshots after secret changes
Deployments snapshot variables at create time. See Deployment environments and Secrets.
Functions and middleware
Compare runtime, duration, streaming, after / waitUntil behavior, and
filesystem assumptions with Functions and your framework
guide.
Easel Functions run in US East (iad) today. See
Function regions and
Function limits.
Caching and revalidation
Inventory static assets, CDN cache headers, ISR, revalidation APIs, and Runtime Cache usage.
Validate with Caching, Revalidation, Runtime Cache, and Cache observability.
Images
For Next.js, next/image can use Easel image optimization. Test remote
allowlists, formats, and cache behavior after deploy.
Cron and background work
Easel does not provide a first-class cron product today. Move scheduled work to:
- An external scheduler calling a protected HTTP route
- A queue or workflow system
- A separate service
Background work that continues after the response should use framework
after / waitUntil patterns within function duration limits—not unbounded
platform lifetime.
Firewall and Attack Mode
Recreate only the controls the application needs:
Attack Mode is an emergency traffic control, not application authentication.
Observability
After importing:
- Generate representative requests.
- Confirm records in Logs.
- Inspect Traces, cold starts, and Invocations.
- Validate cache outcomes.
Customer log drains and OTLP export sinks are not available yet. See Export observability data.
Validate and cut over
Complete the Production validation checklist, then follow Domain cutover.
Keep the Vercel project active until the rollback window has passed.