Give your customers branded subdomains with automatic HTTPS. Like Cloudflare for SaaS, but free and open source.
Start Free on Cloud Self-Host →Use our managed cloud for instant setup, or self-host for complete control. Same powerful features either way.
Built specifically for multi-tenant SaaS applications
TLS certificates provisioned automatically via Let's Encrypt. Zero configuration needed.
Certificates issued on first request. No waiting, no manual provisioning.
One API call to register a subdomain. Perfect for automation and AI coding tools.
Built for SaaS. Each customer gets their own branded subdomain.
Integration guide designed for Lovable, Cursor, and other AI coding assistants.
MIT licensed. Inspect the code, contribute, or fork it for your own needs.
| Feature | Cloudflare for SaaS | Custom Nginx | DomainProxy |
|---|---|---|---|
| Automatic TLS | ✓ | Manual | ✓ |
| On-Demand Certificates | ✓ | ✗ | ✓ |
| Simple API | ✓ | ✗ | ✓ |
| Self-Hostable | ✗ | ✓ | ✓ |
| Pricing | $2/hostname/mo | Server costs | Free |
| Setup Time | Days (contract) | Hours | 30 seconds |
| AI Integration Guide | ✗ | ✗ | ✓ |
Get custom domains working in 4 simple steps
Sign up in the admin panel and get your API key instantly. No credit card, no waiting.
POST /api/v1/register-subdomain with subdomain, base_domain, and target_url.
They add a CNAME record: subdomain.theirdomain.com → proxy.froste.eu
On first visit, we provision a Let's Encrypt certificate. No action needed.
Building with Lovable, Cursor, or another AI tool? Just point your AI at our integration guide:
Read this guide and implement custom domains for my SaaS:
https://proxy.froste.eu/api/v1/integration-guide
Want complete control? Deploy DomainProxy on your own infrastructure in minutes.
# Clone and run with Docker
git clone https://github.com/magnusfroste/domainproxy.git
cd domainproxy
cp .env.example .env
docker compose up -d
# That's it! Access at http://localhost:3000
One command deploy
Auto TLS built-in
No database setup
MIT licensed
# 1. Create a tenant for your customer's domain
curl -X POST https://proxy.froste.eu/api/v1/create-tenant \
-H "X-API-Key: your_api_key" \
-H "Content-Type: application/json" \
-d '{"base_domain": "lazyjobs.ink"}'
# 2. Register a subdomain
curl -X POST https://proxy.froste.eu/api/v1/register-subdomain \
-H "X-API-Key: your_api_key" \
-H "Content-Type: application/json" \
-d '{
"subdomain": "career",
"base_domain": "lazyjobs.ink",
"target_url": "https://your-app.lovable.app"
}'
# 3. Customer adds DNS: career.lazyjobs.ink CNAME proxy.froste.eu
# 4. Visit https://career.lazyjobs.ink — HTTPS just works! 🎉