Skip to main content
Migration

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

VercelEasel
ProjectProject
Preview deploymentPreview deployment
Production deploymentProduction deployment
Current production deploymentCurrent Production deployment
Generated deployment URLUnique deployment URL
Branch URLBranch Preview URL
Environment variablesEnvironment variables (Preview / Production)
FunctionsEasel Functions
FirewallEasel Firewall
Attack Challenge ModeAttack Mode
ObservabilityObservability, Logs, Invocations, Traces
DomainsEasel Domains
Deployment ProtectionDeployment 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.json and 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:

  1. Generate representative requests.
  2. Confirm records in Logs.
  3. Inspect Traces, cold starts, and Invocations.
  4. 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.