From domain name to public website
We separated domain ownership, DNS authority, source control and web hosting. That separation avoids paying for a conventional web server when the site only needs to serve static files.
binitdatta-career Pages project serves the website; both binitdatta.com and www.binitdatta.com have TLS; www redirects to the non-www canonical domain.What is confirmed—and what is not
The published repository's web-hosting.html documents the final Cloudflare configuration and the Azure-to-Cloudflare migration. Its README.md confirms the multi-page static site and local testing method. An account dashboard or historical Azure resource inventory would be needed to establish every earlier click and resource name.
Final production configuration
Nameservers, Pages project, proxied CNAMEs, custom hostnames, SSL status and HTTPS www redirect.
Azure DNS → Cloudflare
The original guide records this change, but does not establish Azure zone resource-group names, exact record values or deletion dates.
Deployment method
The repository does not prove whether the Pages project currently uses Git integration, manual uploads or Wrangler.
Bluehost: retain ownership, delegate DNS
Manage binitdatta.com in Bluehost
Open the Bluehost domain management area and locate the registered domain. Bluehost is responsible for registration, renewals and submitting nameserver changes to the registry.
Replace the previous Azure DNS nameservers with Cloudflare's assigned pair
In the domain's nameserver settings, select custom nameservers and enter the exact pair assigned by Cloudflare:
abby.ns.cloudflare.com
kanye.ns.cloudflare.comSave the update. Nameserver changes must be made at the registrar—not by editing the HTML, and not solely by creating NS records inside the old Azure zone.
Review renewal, contact information and domain-lock settings
Confirm that renewal billing and registrant contact email remain valid and that domain transfer protection is appropriately enabled. These settings are not visible in the repository.
Microsoft Azure DNS: the earlier DNS provider
Previously host the authoritative DNS zone on Azure DNS
The existing website guide confirms that the Bluehost delegation previously pointed at Azure DNS before the switch to Cloudflare. Azure DNS zones hold DNS records and are assigned Azure nameservers; they do not, by themselves, serve HTML pages.
Review the historical DNS zone and its records
In Azure Portal, use DNS zones and search for binitdatta.com. Check the resource group, nameserver assignments, relevant A/CNAME/TXT/MX records and whether the zone still exists.
Assess whether the old Azure zone should be retained or retired
After Cloudflare becomes authoritative, an old Azure zone generally no longer answers public queries for the domain. Remove it only after verifying that there are no remaining dependencies, secondary DNS arrangements or audit-retention requirements.
Cloudflare: onboard the domain and publish DNS
Add binitdatta.com to Cloudflare
Open the Cloudflare dashboard, add the apex domain as a website/zone, choose the applicable plan and review imported or proposed DNS records.
Publish proxied CNAME records for the apex and www
The existing guide records these effective settings in the Cloudflare DNS zone:
| Type | Name | Target | Proxy |
|---|---|---|---|
| CNAME | @ | binitdatta-career.pages.dev | Proxied |
| CNAME | www | binitdatta-career.pages.dev | Proxied |
Cloudflare supports an apex CNAME through flattening. A proxied record generally returns Cloudflare edge addresses to public A/AAAA resolvers rather than the Pages target hostname.
Wait for Cloudflare to detect the Bluehost delegation
After updating Bluehost nameservers, review Cloudflare's zone status and verify that the zone is active. DNS caching means results may not change everywhere at the same instant.
dig NS binitdatta.com +short
dig +trace binitdatta.com NSReconcile every non-website DNS record
Before considering migration complete, compare historical Azure DNS records with Cloudflare records, especially MX, SPF, DKIM, DMARC, domain-verification TXT and any other subdomains. The repository establishes the website records but not a full mail/DNS inventory.
Cloudflare Pages: publish the static portfolio
Create and use the Pages project binitdatta-career
The current project hostname is binitdatta-career.pages.dev. Cloudflare Pages serves plain HTML, CSS, JavaScript and image assets without maintaining a conventional VM or application server.
Deploy the complete site directory, preserving paths
The GitHub repository contains index.html, career.html, architecture.html, business-verticals.html, technology.html, books.html, articles.html, videos.html, contact.html, web-hosting.html, styles.css, script.js and the assets/images/ tree.
When creating a new Pages project, use either Git integration or the dashboard's direct-upload workflow as supported in your account. For a root-level static site, there is normally no build command and the output directory is the directory containing index.html. Check the existing project's deployment configuration before changing its method.
Confirm whether the project uses Git integration or direct upload
In the binitdatta-career project, inspect the deployment source and deployment history. If connected to GitHub, repository pushes may trigger deployment automatically; if created using direct upload, push events alone do not deploy new files. For direct uploads, deploy the updated directory through the Pages upload flow or the applicable Wrangler command.
git push also updates the live site.Custom domains and HTTPS certificates
Attach the apex and www hostnames to the Pages project
In Pages project settings, add both binitdatta.com and www.binitdatta.com as custom domains. The published guide states that both became Active.
Validate SSL/TLS certificate activation
Check the Pages custom-domain status and TLS configuration. Both hostnames are documented with SSL enabled. A visitor's browser validates the certificate for the requested host before rendering the website.
Redirect www to the canonical apex domain
Create a Cloudflare Single Redirect (permanent 301)
In the Cloudflare zone's redirect rules, configure the documented HTTPS-www matching pattern to redirect to the non-www domain. Preserve the URL path and, when appropriate, the query string.
Incoming: https://www.binitdatta.com/*
Action: 301 (permanent redirect)
Target: https://binitdatta.com/${1}
Query: preserve query stringThe ${1} path placeholder applies to the documented wildcard-style rule; the exact syntax differs for Cloudflare expression-based redirect rules. Always verify the actual rule type in the dashboard. The existing guide specifically documents an HTTPS www rule, not proof of an identical HTTP www rule.
Check redirects, deep links and HTTP behavior
curl -I https://www.binitdatta.com/
curl -I https://www.binitdatta.com/architecture.html
curl -I https://binitdatta.com/
curl -I http://www.binitdatta.com/Expect a redirect response for the HTTPS www form, with a Location on the apex domain. Check plain HTTP separately; HTTPS enforcement may introduce a separate hop.
GitHub: store, audit and evolve the website
Initialize Git and publish the source code
The website source is in github.com/binitdatta/binitdatta, on the main branch. The original local setup used this HTTPS remote URL:
git init
git add .
git commit -m "Initial career website"
git branch -M main
git remote add origin https://github.com/binitdatta/binitdatta.git
git push -u origin mainThese commands document the workflow; if the repository already exists, do not rerun git init or git remote add origin blindly.
Maintain architecture images and implementation documentation
The repo includes PROMPTS_README.md, README.md and the portfolio's supporting images. Store this deployment guide alongside web-hosting.html and the other root HTML files.
Diagnose an unsuccessful push without rewriting history
Use git status, git remote -v, git log -1 --oneline and git ls-remote --heads origin main to identify the failure. If the remote already contains an independent commit, fetch and inspect before merging or rebasing. Avoid force-pushing by default.
Verify each technical layer independently
| Layer | Check | Desired result |
|---|---|---|
| Registration / delegation | dig NS binitdatta.com +short | Cloudflare assigned nameservers |
| DNS resolution | dig A binitdatta.com +short | Resolvable Cloudflare-proxied endpoint |
| Pages hostname | Visit https://binitdatta-career.pages.dev | Static site responds |
| Custom domain | Visit https://binitdatta.com | Portfolio home loads without TLS warning |
| Canonical host | curl -I https://www.binitdatta.com/ | 301 to apex when rule matches |
| Asset integrity | Open developer tools → Network | No unexpected HTML/CSS/JS/image 404s |
| Navigation | Visit each top-level HTML page | Links and architecture images resolve |
| Deployment lifecycle | Inspect Pages deployment history | Current deployed revision matches intended files |
curl responses and Cloudflare deployment status before concluding the DNS change failed.How to update the site next time
Edit files locally and preview
Update the HTML/CSS/images in the project directory, then open the local site with a simple HTTP server.
python3 -m http.server 8000
# Open http://localhost:8000Commit and push to GitHub
git status
git add .
git commit -m "Update career portfolio"
git push origin mainPublish to the existing Cloudflare Pages project
Git-integrated project: confirm the push triggered and completed the Pages deployment. Direct-upload project: use Cloudflare Pages to upload the refreshed site directory (or deploy using your established Wrangler workflow). Avoid accidentally creating a second Pages project.
Smoke test production and roll back if needed
Check the apex URL, www redirect, important pages and images. Review Cloudflare Pages deployment history to select a prior successful deployment if a change breaks the site.
What to check when something breaks
dig NS and dig +trace. Remember that old recursive cache entries can survive briefly.curl -I and account for cached 301 responses.assets/images/architecture/ in the uploaded output directory. Compare the local site with Pages deployment assets.Safe validation command bundle
# Domain DNS authority and DNS answers
dig NS binitdatta.com +short
dig +trace binitdatta.com NS
dig A binitdatta.com +short
dig A www.binitdatta.com +short
# HTTP behavior and certificate diagnostics
curl -I https://binitdatta.com/
curl -I https://www.binitdatta.com/
curl -IL https://www.binitdatta.com/architecture.html
# Local Git status and remote
git status
git remote -v
git log -1 --oneline
git ls-remote --heads origin mainSource documents and provider consoles
Service management
Bluehost — registrar account
Azure Portal — historical DNS zone review
Cloudflare Dashboard — DNS, Pages, redirects