Expo web previews on every PR. No CI config.
Push a branch, get a live HTTPS URL with your Expo web build running. No EAS Build waits, no CI workflow files, no manual deploy to Vercel or Netlify. PreviewDrop auto-detects Expo, builds npx expo export:web, and serves the result behind a TLS-terminated subdomain — all from your existing repo.
How PreviewDrop compares for Expo
| Feature | PreviewDrop | EAS Build + Vercel | Manual deploy |
|---|---|---|---|
| Setup time | 5 min — connect repo | 1–2 hours — configure eas.json + Vercel project | Per-branch manual steps |
| CI config needed | None | eas.json + GitHub Actions or EAS webhook | n/a — manual |
| Expo web build | Expo web build | Expo web build | Expo web build |
| HTTPS URL | Yes | Yes | Depends on hosting |
| Auto-deploy on push | Yes | Yes | No — manual |
| PR comment with URL | Yes | If you wire up GitHub Action | No |
| Password protection | Yes | If you build auth | No |
| Auto-expiring TTL | Yes | Manual cleanup | Manual |
| Cost | $19/mo flat | EAS free tier + Vercel Hobby (limits apply) | Your time |
When to pick each
PreviewDrop — You want Expo web previews on every PR with zero CI config and a flat $19/mo price. You don't want to maintain eas.json web profiles, GitHub Actions workflows, and Vercel project configs just to see what a branch looks like in browser.
EAS Build + Vercel — You're already deep in the Expo ecosystem, using EAS for native builds, and want a single platform for everything. The added configuration cost is worth the unified tooling for your team.
Manual deploy — You deploy Expo web once per release cycle, not per branch. The overhead of per-PR previews doesn't justify any tool investment.
What Expo devs deal with today
Dockerfile
Drop this at the root of your Expo repo. It installs dependencies, runs npx expo export:web, and serves the resulting static files. PreviewDrop picks it up automatically on the next push.
DockerfileFROM node:20-slim WORKDIR /app COPY package.json package-lock.json* yarn.lock* pnpm-lock.yaml* ./ RUN if [ -f yarn.lock ]; then yarn install --frozen-lockfile; \ elif [ -f pnpm-lock.yaml ]; then npm install -g pnpm && pnpm install --frozen-lockfile; \ else npm ci; fi COPY . . RUN npx expo export:web EXPOSE 3000 CMD ["npx", "serve", "dist", "-l", "3000"]
How it works
$19/mo flat. Unlimited Expo web previews.
No per-build charges, no EAS queue, no CI minutes counting down. Preview the web layer of every branch without thinking about cost.
Start free with GitHubSee your Expo web build before it merges
Connect a repo, push a branch, get a URL. No credit card, no EAS Build, no CI config.
Start free