pxxl.toml is canonical. If it is absent, Pxxl reads the supported vercel.json subset. If pxxl.toml is present but invalid, the deployment fails before publication. Pxxl does not fall back to vercel.json in that case.
Deployment logs identify the selected source as pxxl.toml, vercel.json compatibility, or platform defaults.
Matching grammar
A source is either an exact absolute path or a path ending in:path*.
:path* is the only wildcard syntax in pxxl.toml. It captures zero or more path segments and can appear once at the end. Use the same capture in the destination.
Precedence
Pxxl applies routing in this order:- Matching response headers
- Redirects
- Rewrites
- Clean URL handling
- SPA fallback
- Static file serving
Rewrites
A rewrite is internal. The Pxxl edge handles it without changing the browser URL or returning a redirect status. For an external rewrite, Pxxl proxies the original request to the HTTPS destination. The request method, body, query string, client-supplied cookies, and client-supplied authorization header are preserved. The destination host receives its ownHost header. Response status, body, headers, and cookies return through the Pxxl edge.
Redirects
Redirects return aLocation header to the client.
307 or 308 when the client must preserve the request method and body. Pxxl rejects direct and multi-rule redirect loops.
Response headers
Header rules add response headers to a matching path.Authorization, Cookie, Set-Cookie, Host, Content-Length, X-Pxxl-*, proxy headers, or hop-by-hop headers. Header values cannot contain line breaks. Store secrets in dashboard environment variables, not in pxxl.toml.
Security restrictions
External destinations must use HTTPS on port443 and cannot include credentials. Pxxl blocks:
- Loopback, private, carrier-grade NAT, link-local, multicast, and reserved addresses
- Cloud metadata endpoints
- Tailscale and internal DNS names
- Pxxl control-plane and managed-domain addresses
- Destinations that resolve to any blocked address
- Reserved
/__pxxlsource or destination paths
Migration from vercel.json
Whenpxxl.toml is absent, Pxxl supports compatible vercel.json rewrites, redirects, headers, cleanUrls, and the common SPA fallback from /(.*) to /index.html.
Prefer pxxl.toml for new deployments:
/api/:path*. Regular-expression sources such as /api/(.*) are not accepted in pxxl.toml.
A later deployment with no rules stores an explicit empty routing manifest. This removes deployment-derived rules from the edge. Dashboard domain rules do not replace or persist deployment routing rules.
Adaptive Auth.js example
This complete Vite example buildsdist, proxies same-origin Auth.js requests to the external API, and serves index.html for application routes:
/api/auth/providersis proxied by the Pxxl edge and returns the Auth.js JSON response./dashboardservesdist/index.htmlfor the Vite application./assets/app.jscontinues to serve the static asset.
Validation errors
Pxxl fails the deployment before publishing files when configuration is unsafe or ambiguous. The source configuration is limited to64 KiB. The normalized routing manifest is limited to 6144 serialized bytes so it fits safely in immutable artifact metadata.
pxxl.toml.