Ce n'est pas vraiment un versus. Cloudflare Tunnel (cloudflared) et PortPreview vivent dans des pièces différentes. Cloudflare Tunnel maintient un service en ligne en permanence derrière le edge Cloudflare — Zero Trust, named tunnels, domaines custom. PortPreview est pour les vingt prochaines minutes de votre session dev — webhooks, mobile, partage de branche. Choisir entre les deux dépend du problème qu'on a vraiment.
Ce que Cloudflare Tunnel fait bien
cloudflared a été conçu pour mettre un service en ligne sans ouvrir de port entrant et sans exposer l'IP origine. Tourne sur un serveur, attache un named tunnel à un hostname sur votre domaine Cloudflare, et le trafic passe par le edge via une connexion sortante.
- Routage prod. Named tunnels durables, hostname stable.
- Politiques Zero Trust. SSO, MFA, allowlist IP.
- Domaines custom. Votre domaine, pas un sous-domaine vendor.
- WARP. Accès aux services privés depuis n'importe quel device Cloudflare.
Aucune de ces choses ne concerne le debug webhook.
Là où Cloudflare Tunnel se complique en dev
Le mode quick tunnel (cloudflared tunnel --url localhost:3000) est le plus proche d'un outil dev. Il fonctionne. URL *.trycloudflare.com. Mais :
- L'URL change à chaque session.
- Pas d'inspecteur de requêtes. Vous voyez les logs de votre dev server et rien de plus.
- Setup pour named tunnels (URL stable) : compte Cloudflare, DNS, fichier config. Justifié pour un service durable, surdimensionné pour itérer sur un webhook.
Où PortPreview s'inscrit
PortPreview est un CLI tunneling localhost pour la boucle dev. Une commande, URL HTTPS publique, capture et rejeu inclus.
npx portpreview 3000
Ce qu'on optimise : le moment entre "j'ai changé mon handler Stripe" et "je sais si ça marche". Ce moment doit durer des secondes.
Comparaison directe
| Besoin | Cloudflare Tunnel | PortPreview |
|---|---|---|
| Session rapide debug webhook | Possible (quick tunnel) | Conçu pour |
| Capture et rejeu de requêtes | Non | Oui |
| Hostname stable | Oui (avec setup) | Pas le focus |
| Domaine custom | Oui | Sous-domaine tunnel |
| Politique Zero Trust | Oui | Non |
| Complexité setup | Faible pour quick, moyenne pour named | Une commande |
| Tourne en service durable | Oui | Conçu pour sessions |
| Client open source | Oui (cloudflared) | Oui |
Quand utiliser quoi
Cloudflare Tunnel quand
- Service 24/7 sans port ouvert.
- Accès SSO à un outil interne.
- URL stable avec domaine custom et cert CA.
- Déjà sur Cloudflare, coût marginal faible.
PortPreview quand
- Itération sur un handler webhook avec rejeu en un clic.
- Partage d'une branche à un designer dix minutes.
- Test OAuth ou mobile sans setup DNS.
- Pas envie de gérer un compte Cloudflare juste pour tester un événement Stripe.
Ils cohabitent
Plusieurs équipes utilisent les deux. Cloudflare Tunnel pour l'outil interne always-on avec SSO. PortPreview pour le debug webhook quotidien avec rejeu. Aucun conflit.
Voir aussi PortPreview vs ngrok et PortPreview vs localtunnel. Rejoignez la waitlist PortPreview.