For static sites (HTML, CSS, JavaScript, and client-side Plotly files like this portfolio), the absolute cheapest hosting is not $5/month or $3/month: it is literally $0.00 forever. Here is the verified breakdown of zero-cost hosting providers, bandwidth limits, overage traps, and step-by-step deploy instructions.
The short answer for Daniel's Tableau portfolio
For static portfolios and client-side web apps, the industry has commoditized basic file hosting. You should never pay for web hosting for a portfolio site.
Cloudflare Pages (100% Free Forever)
• Hosting Cost: $0.00 / month.
• Bandwidth: Unlimited (zero bandwidth cap, zero surprise overage fees).
• Custom Domain: Free SSL included (auto-renews).
• Deploy Options: Connect your GitHub repo, OR drag-and-drop the xp/tableau/ folder directly in your browser. Live in 30 seconds.
Comparing the 5 major static hosts against legacy providers and website builders
| Provider | Monthly Cost | Bandwidth Limit | Ads & Watermarks | Overage Trap? | Custom Domain & SSL | Rating & Best For |
|---|---|---|---|---|---|---|
| 1. Cloudflare Pages | $0.00 / mo | Unlimited | 100% Zero (Pure pass-through) | None (No overages) | Free (Global Anycast CDN) | ★★★★★ #1 Pick · Best performance, zero ads |
| 2. GitHub Pages | $0.00 / mo | 100 GB / month | 100% Zero (Raw git files) | Soft throttle (no bills) | Free (via Let's Encrypt) | ★★★★☆ #2 Pick · Seamless git workflow |
| 3. Netlify | $0.00 / mo | 100 GB / month | Zero (Clean default) | Bills $55/100GB over | Free | ★★★☆☆ Good · Quickest drag-and-drop |
| 4. Free Website Builders (Wix / WordPress / Carrd) |
$0.00 / mo | Strict limits (0.5–1 GB) | FORCED ADS & WATERMARKS | Forced paid upgrade | Paid upgrade ($16+/mo) | ✖ TOXIC · Destroys consultant credibility |
| 5. Legacy Shared Hosting (Bluehost / GoDaddy) |
$4 – $18 / mo | Metered / Throttled | Clean (Paid) | Price hikes on renewal | Often $80+/yr upsell for SSL | ✖ AVOID · Obsolete for static sites |
Why free website builders are lethal to an $85–125/hr freelance positioning
When an enterprise director or hiring manager evaluates a consultant charging $85–125/hr, the presence of even a single advertisement, pop-up banner, or platform watermark destroys institutional trust instantly.
Prospective clients reason: "If this architect cannot host their own professional portfolio without a 'Powered by Wix' banner, how can they manage our enterprise cluster migration?"
| Platform | Injected Intrusion | Executive Impression |
|---|---|---|
| Wix (Free Tier) | Sticky header banner: "This website was designed with Wix.com. Create your website today." Cannot be closed. | Amateur; reads like a high-school or hobbyist project. |
| WordPress.com (Free) | Injects dynamic third-party banner ads and Google AdSense into content. | Unacceptable; client may see competitor ads inside your portfolio. |
| Webflow (Free) | Persistent floating badge in lower right corner: "Made in Webflow". | Signals template-dependent designer rather than technical engineer. |
| Carrd (Free Tier) | Footer credit: "Made with Carrd" linked to referral program. | Signals quick landing page rather than an enterprise BI leader. |
| Free PHP Hosts (000webhost) | Pop-under ads, analytics trackers, and forced footer links. | Security risk; IT corporate firewalls often block these domains. |
Both Cloudflare Pages and GitHub Pages are infrastructure-level edge servers, not marketing website builders.
They serve your HTML, CSS, and JS files byte-for-byte as raw static assets over an Anycast CDN:
• Zero code injection: No banners, no badges, no watermarks, no tracking iframes.
• Zero ads: No network ads or popups ever.
• Custom domain freedom: When bound to danieljin.com, the page contains 100% Daniel's code and branding alone.
By default, Plotly.js displays an interactive modebar with a camera, zoom tools, and a "Produced with Plotly" logo in the top-right corner of charts. In our portfolio, all chart renders are configured with:
// Plotly zero-watermark configuration used across Daniel's portfolio
Plotly.newPlot(plotDiv, traces, layout, {
responsive: true,
displayModeBar: false, // Completely hides modebar & Plotly logo watermark
displaylogo: false // Explicitly removes Plotly attribution icon
});
This ensures every visualization appears as a bespoke, hand-crafted analytical interface rather than a default library output.
Detailed instructions to launch the portfolio online right now
danieljin-portfolio).xp/tableau/ directory folder directly onto the upload area.https://danieljin-portfolio.pages.dev with full HTTPS, fast edge caching, and zero bills forever!tableau-portfolio or username.github.io).xp/tableau files to the repository:
cd xp/tableau
git init
git add .
git commit -m "Launch Tableau & BI architecture portfolio"
git branch -M main
git remote add origin https://github.com/<your-username>/tableau-portfolio.git
git push -u origin main
main and / (root), then click Save.https://<your-username>.github.io/tableau-portfolio/.xp/tableau folder directly into the designated drop zone.https://dazzling-curie-12345.netlify.app).daniel-jin-portfolio.netlify.app.Buying a custom domain without getting gouged by registrar markups
If Daniel wants a professional domain like danieljin.com, danieljin.dev, or djinanalytics.com, hosting remains $0.00, but domain registries charge an annual ICANN registration fee:
| Registrar | Annual Cost (.com) | WHOIS Privacy | Verdict |
|---|---|---|---|
| Cloudflare Registrar | $9.77 / year | Free Forever | Recommended · Zero markup, wholesale at-cost pricing. |
| Porkbun | $10.30 / year | Free Forever | Excellent · Low cost, clean UI, free privacy. |
| Namecheap | $10.48 yr 1 → $14.98/yr renewal | Free | Acceptable, but renewal prices are higher. |
| GoDaddy | $0.99 yr 1 → $22.99/yr + $14.99 privacy | $14.99/yr upsell | DO NOT USE · Predatory renewal price traps. |
If you register through Cloudflare Registrar, connecting the domain to your Cloudflare Pages portfolio is literally a one-click action inside the Cloudflare dashboard:
Go to Pages → Your Project → Custom Domains → type danieljin.com. DNS records and SSL are configured automatically with zero manual record copying!
Verify these 4 points before uploading
index.html use relative paths (e.g. viz-beauty-weather.html, data/kc_weather_daily.json), ensuring they resolve cleanly on any domain or subdirectory.https://cdn.plot.ly/plotly-2.35.2.min.js, meaning zero node/npm build dependencies or local bundle overhead.260903 Daniel Jin Resume - Architecture.docx) sit directly in the root folder and download on click.