DEPLOYMENT_TUTORIAL
Connect your free .devs.surf subdomain to any hosting provider. Follow the exact DNS records and configuration steps below.
Claim Your Free Subdomain
Devs.Surf provides instant subdomains under .devs.surf with zero credit cards, renewals, or fees.
- Log in or create a free account at devs.surf/signup.
- Go to the Domain Finder and search for your desired name (e.g.
myproject). - Click CLAIM NOW. The DNS zone is created and deployed instantly across Anycast DNS.
- Navigate to your Dashboard to manage DNS records anytime.
Vercel (Next.js, Vite, React)
To connect a Vercel project to your Devs.Surf domain:
- In your Vercel Project, go to Settings → Domains.
- Type your domain (e.g.
myproject.devs.surf) and click Add. - In your Devs.Surf DNS, add the following CNAME record:
| Type | Name | Target | Action |
|---|---|---|---|
| CNAME | @ |
cname.vercel-dns.com |
_vercel), add a TXT record with Name: _vercel and the value shown in Vercel.
GitHub Pages
Host portfolios, Hugo, Jekyll, VitePress, or docs with GitHub Pages:
- In your GitHub repo, open Settings → Pages.
- Under Custom domain, enter
myproject.devs.surfand save. (Or commit a file namedCNAMEin your root directory containingmyproject.devs.surf). - In Devs.Surf DNS manager, add:
| Type | Name | Target | TTL |
|---|---|---|---|
| CNAME | @ |
YOUR-USERNAME.github.io |
3600 |
Once verified by GitHub, check the Enforce HTTPS checkbox to enable automatic SSL encryption.
Netlify
- Open Netlify site settings → Domain Management → Add custom domain.
- Enter your full subdomain (e.g.
myproject.devs.surf). - In Devs.Surf DNS, add:
| Type | Name | Target | TTL |
|---|---|---|---|
| CNAME | @ |
YOUR-SITE.netlify.app |
3600 |
Netlify automatically provisions Let's Encrypt SSL once the CNAME resolves.
Cloudflare Pages
Connect your Cloudflare Pages fullstack or Jamstack application:
- Inside Cloudflare dashboard → Workers & Pages → select your Pages project.
- Open the Custom domains tab → click Set up a custom domain.
- Input
myproject.devs.surfand proceed. Cloudflare will give you your unique target (e.g.myproject.pages.dev). - In Devs.Surf DNS manager, create:
| Type | Name | Target | TTL |
|---|---|---|---|
| CNAME | @ |
YOUR-APP.pages.dev |
3600 |
Firebase Hosting
- In Firebase Console → Hosting → Add custom domain.
- Add TXT verification record if requested by Firebase:
Type: TXT | Name: @ | Content: google-site-verification=...
- Add Firebase Anycast IP records in Devs.Surf DNS:
| Type | Name | Target IP | TTL |
|---|---|---|---|
| A | @ |
151.101.1.195 |
3600 |
| A | @ |
151.101.65.195 |
3600 |
Self-Hosted VPS (Nginx + Let's Encrypt)
For custom servers (Ubuntu, Debian, Docker, Node.js, Python, Go):
1. In Devs.Surf DNS, create an A Record pointing to your server's public IP:
2. Minimal Nginx reverse-proxy configuration (/etc/nginx/sites-available/yourapp.conf):
server {
listen 80;
server_name myproject.devs.surf;
location / {
proxy_pass http://127.0.0.1:3000; # Change to your application port
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
3. Issue free SSL with Certbot:
sudo certbot --nginx -d myproject.devs.surf
Render & Railway
1. In Render or Railway, open your service settings → Custom Domains.
2. Add myproject.devs.surf.
3. Point a CNAME record in Devs.Surf DNS to your service's generated hostname (e.g. myproject.onrender.com or myproject.up.railway.app).
cPanel Hosting (Shared Hosting)
Connect any cPanel-based hosting account (Hostinger, Namecheap, Bluehost, Niagahoster) to your Devs.Surf subdomain.
1. Locate your Shared IP Address on the right-hand panel of your cPanel dashboard.
2. In Devs.Surf DNS Manager, add an A record pointing to your cPanel IP:
| Type | Name | Content | TTL |
|---|---|---|---|
| A | @ | <YOUR_CPANEL_IP> |
3600 |
| CNAME | www | myproject.devs.surf |
3600 |
3. In cPanel, navigate to Domains → Create A New Domain.
4. Enter myproject.devs.surf. Uncheck "Share document root" and assign a dedicated folder (e.g. public_html/myproject).
5. Open SSL/TLS Status in cPanel and click Run AutoSSL to automatically issue a free Let's Encrypt / Sectigo certificate.
WordPress (Self-Hosted & cPanel)
Deploy a WordPress blog, staging instance, or headless CMS backend on a free Devs.Surf subdomain.
Once your domain is added to cPanel, open Softaculous → WordPress. Select https:// and choose myproject.devs.surf from the domain dropdown. Leave the in-directory field empty.
Add these constants to the top of your wp-config.php file to immediately bind WordPress to your new subdomain:
define('WP_HOME', 'https://myproject.devs.surf');
define('WP_SITEURL', 'https://myproject.devs.surf');
For Nginx or VPS servers, pass incoming requests to PHP-FPM with try_files $uri $uri/ /index.php?$args; in your server block.
DNS Troubleshooting & Verification
Verify that your DNS records are actively resolved across global resolvers using terminal commands:
dig CNAME myproject.devs.surf @8.8.8.8 +short
dig A myproject.devs.surf @1.1.1.1 +short
If changes do not reflect immediately on your local machine, flush your OS DNS cache or test using whatsmydns.net.
Frequently Asked Questions
Can I create records like api.myproject.devs.surf?
Yes. When creating a DNS record, type the subdomain prefix in the Name field (e.g. api or www).
Will my domain expire?
Active domains with configured DNS records remain yours free forever. Domains with zero records left inactive for extended periods may be automatically purged to free up names for other developers.
Is HTTPS/SSL automatically included?
Yes, when you connect to Vercel, Netlify, Cloudflare Pages, GitHub Pages, or Render, they provision free SSL certificates automatically. For VPS setups, Certbot generates certificates via Let's Encrypt for free.