Overview
Custom domain features:- Point any domain to your profile
- Automatic DNS verification
- HTTPS with automatic certificates
- WWW prefix support
- Multiple domains per profile (coming soon)
- Locale routing preservation
- Grace period for verification failures
Custom domains work for all profile types: individual, organization, and product profiles.
DNS Verification Process
Aya uses a 3-phase DNS verification system:Phase 1: Direct IP Match
Domain A/AAAA records point to Aya’s origin IPs:Phase 2: CNAME Match
Domain CNAME points to Aya:Phase 3: IP Resolution Match
Domain resolves to same IPs asaya.is (for Cloudflare proxying):
Adding Custom Domain
Enter domain name
Input your domain (e.g.,
example.com or www.example.com)Include
www prefix if you want to use it. Apex and www are treated as separate domains.Choose www prefix option
- With www: Domain requires www (www.example.com)
- Without www: Domain is apex (example.com)
- Both: Redirect one to the other (requires two separate domain entries)
Configure DNS
Set up DNS records with your domain provider:Option A - Direct (recommended):Option B - CNAME (for subdomains):Option C - Cloudflare Proxied:(Enable orange cloud proxy in Cloudflare)
Wait for verification
- DNS verification runs automatically every hour
- Status:
pendingwhile verifying - Status changes to
verifiedon success - You’ll receive notification when verified
DNS Configuration Examples
Apex Domain (example.com)
Without Cloudflare:Subdomain (www.example.com)
Both Apex and WWW
Add both as separate custom domains:Verification Statuses
Status Transitions
Grace Period
The 24-hour grace period prevents temporary DNS issues from breaking your site: Scenario:- Domain verified and working
- DNS provider has temporary outage
- Verification fails → status:
failed - Grace period: 24 hours from last successful verification
- If DNS restored within 24h → status:
verified - If not restored → status:
expired, domain stops working
URL Structure with Custom Domains
Custom domains preserve full URL structure: Profile:Locale prefix is required in all URLs, even with custom domains. This ensures consistent multi-locale support.
Default Locale
Set a default locale for your custom domain:https://example.com→ redirects tohttps://example.com/en- If user has locale cookie, uses that instead
- Preserves user language preference across visits
HTTPS Certificates
HTTPS is automatic and managed by Aya:- Certificates issued via Let’s Encrypt
- Automatic renewal
- No configuration needed
- Supports wildcard for www variants
Certificate issuance begins after DNS verification succeeds. Allow 5-10 minutes for certificate propagation.
Webserver Sync
Once verified, domain must be synced to webserver:- DNS verification succeeds
- Domain added to webserver configuration
- HTTPS certificate requested
- Routing rules updated
webserver_syncedset totrue- Domain live
Multiple Domains (Roadmap)
Future support for multiple domains per profile:- Primary domain (canonical)
- Secondary domains (redirects or mirrors)
- Domain-specific locales
- Domain-based branding
Cloudflare Integration
Using Cloudflare with Aya:Recommended Settings
SSL/TLS Mode:- Set to Full (strict) for end-to-end encryption
- Always Use HTTPS
- Automatic HTTPS Rewrites
- Respect Existing Headers
- Browser Cache TTL: Respect Existing Headers
Cloudflare Benefits
Cloudflare Benefits
- DDoS protection
- CDN edge caching
- Faster global delivery
- Additional SSL features
- Analytics and monitoring
- Firewall rules
Cloudflare Gotchas
Cloudflare Gotchas
- CNAME flattening makes verification Phase 2 invisible
- Proxy may show Cloudflare IPs instead of origin
- Phase 3 verification handles this automatically
- Purge Cloudflare cache after domain changes
DNS Providers
Compatible with all DNS providers:Cloudflare
Recommended, best performance
Route53
AWS-native, CNAME flattening support
Namecheap
Budget-friendly, easy setup
Google Domains
Simple interface, reliable
GoDaddy
Popular, A/AAAA records only
Others
Any provider with A/AAAA or CNAME support
Troubleshooting
Domain shows 'pending' for long time
Domain shows 'pending' for long time
- Verify DNS records are correct:
- Check DNS propagation (can take up to 48 hours globally)
- Use DNS checker: https://dnschecker.org
- Ensure no conflicting records
- Wait for next verification cycle (runs hourly)
Domain verified but not accessible
Domain verified but not accessible
- Check
webserver_syncedstatus (should be true) - Wait 5-10 minutes for certificate issuance
- Clear browser cache
- Try incognito/private browsing
- Check HTTPS certificate is valid
- Verify firewall allows traffic
DNS verification keeps failing
DNS verification keeps failing
- Check IPs match exactly:
- IPv4: 104.128.190.136
- IPv6: 2a0c:b840:2:1c::8cd4
- Or CNAME points to: aya.is.
- Remove any conflicting records (multiple A records)
- Disable DNS proxy temporarily to test
- Check TTL isn’t too long (recommend 300s)
Cloudflare proxy causes issues
Cloudflare proxy causes issues
- Ensure SSL/TLS mode is Full (strict)
- Disable Cloudflare features one by one to isolate
- Check Page Rules aren’t conflicting
- Purge Cloudflare cache
- Verify origin certificates are valid
- Phase 3 verification should handle proxy IPs
Security Considerations
Best Practices:- Enable 2FA on domain registrar
- Use strong passwords
- Lock domain to prevent transfers
- Monitor DNS changes (set up alerts)
- Keep WHOIS information private
- Review authorized users regularly
Performance Optimization
DNS Settings
DNS Settings
- Set low TTL (300s) during setup for faster changes
- Increase TTL (3600s) once stable
- Use Cloudflare for global anycast DNS
- Enable DNSSEC for security
CDN (Cloudflare)
CDN (Cloudflare)
- Enable orange cloud proxy
- Configure caching rules
- Use Polish for image optimization
- Enable Brotli compression
- Set up Workers for edge logic
Monitoring
Monitoring
- Set up uptime monitoring
- DNS monitoring for changes
- SSL certificate expiry alerts
- Performance monitoring (Core Web Vitals)
API Management
Add Custom Domain
Check Verification Status
Remove Custom Domain
Best Practices
Domain Selection
Domain Selection
- Choose memorable, brandable domain
- Shorter is better for typing
- Avoid hyphens and numbers if possible
- Match your brand/profile name
- Consider .com for global reach
- Use country TLDs for local focus
Setup Process
Setup Process
- Set up DNS before adding domain on Aya
- Use low TTL (300s) during initial setup
- Test DNS propagation before submitting
- Wait for verification before announcing
- Keep old aya.is URLs working (redirects)
- Update links gradually
Ongoing Management
Ongoing Management
- Monitor DNS verification status weekly
- Renew domain registration on time
- Keep registrar contact info updated
- Document DNS configuration
- Test periodically from different locations
- Set up alerts for verification failures
Next Steps
Profiles
Set up profile before adding domain
Stories
Publish content on your custom domain
Organizations
Use custom domains for organizations
Communities
Build community on branded domain