A personal site can be three files and a domain
Personal websites accumulate frameworks out of boredom. If your goal is a public presence—bio, links, a short projects list—HTML is enough. You do not need a component library, a design system, or a build pipeline to tell people who you are. StaticHost will host that HTML with HTTPS, an optional custom domain, and rollback when you over-design at 1 a.m. and regret it by breakfast.
The product boundaries are deliberate. There is no forever-free plan after a short trial of about a day; Starter is $9/mo for 1 site and 2 GB. There is no email product, no cPanel, no built-in CDN product, and no remote build farm. nginx serves files strictly with try_files $uri $uri/ =404, which is fine when every page is a real file you authored. If a path does not exist on disk, visitors get 404—not a silent fallback to index.html.
That strictness is a feature for personal sites. You control every URL. You are not fighting a client router, a plugin ecosystem, or a theme marketplace. The artifact you upload is the site people see.
A minimal durable structure
Start with a folder that would still make sense in five years:
personal/
index.html
projects.html
styles.css
avatar.jpg
index.html sketch:
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<title>Jordan Lee</title>
<meta name="description" content="Jordan Lee — developer, writer, coffee burner." />
<link rel="stylesheet" href="styles.css" />
</head>
<body>
<header>
<img src="avatar.jpg" alt="" width="96" height="96" />
<h1>Jordan Lee</h1>
<p>Developer · writer · coffee burner</p>
</header>
<nav>
<a href="index.html">Home</a>
<a href="projects.html">Projects</a>
</nav>
<main>
<p>I ship small websites and occasionally useful tools.</p>
</main>
</body>
</html>
Keep CSS restrained. Personality beats Bootstrap clones. Prefer system fonts or one self-hosted family over a stack of webfonts that delay first paint. A personal site that loads in under a second on a phone says more about craft than a hero video ever will—see lightweight high-performance static hosting.
Worked example: from empty folder to shareable preview
Assume you are on a laptop with zip available and a StaticHost account (trial or Starter).
- Create
personal/index.html,projects.html, andstyles.cssas above. - Put a square avatar at
personal/avatar.jpg(keep it under ~100 KB; crop before upload). - From inside the folder, pack only the site root:
cd personal
zip -r ../personal.zip index.html projects.html styles.css avatar.jpg
unzip -l ../personal.zip
- Confirm the listing shows
index.htmlat the archive root—notpersonal/index.html. Nested roots are the most common first-deploy failure; details in zip a static site without 404. - Create a site in StaticHost, upload
personal.zip, and open the HTTPS preview URL. TLS is available on preview immediately; you do not wait on DNS for that first look. - Click Home → Projects → Home. View source and confirm relative CSS loads. Fix locally, re-zip, redeploy if anything is off.
- When the preview is something you would put in a bio link, attach a custom domain. Follow HTML website with custom domain and static hosting with a custom domain. Certificate issuance happens after DNS verifies—not before.
If you hotlinked an old HTTP asset, fix mixed content before cutover—static hosting with free SSL.
Growth without rewrites
Add pages as files: uses.html, now.html, or a blog/ folder of static posts with one HTML file each. Relative links keep the site portable. Generators can appear later (Eleventy, Hugo); you can still start hand-written and migrate content into Markdown when the page count becomes annoying.
Avoid turning the personal site into a history-mode SPA unless you enjoy hash routes. On StaticHost, unknown paths 404; there is no SPA index fallback. If you later want a React toy on a subdomain, read host a single-page application first and isolate it from the brochure pages.
When not to use a hand-HTML personal site
- You need a CMS login for a non-technical co-author every week → static HTML will frustrate them; pick a CMS host or a generator plus your own build habit.
- You need server-rendered member areas on the same origin → wrong product shape; StaticHost is files only.
- You want
$0forever with no trial clock → use a forever-free host; StaticHost is paid after ~1 day—compare honestly in free vs paid static hosting. - Your “personal site” is actually a full commerce catalog → use a commerce platform.
Related personal shapes
- Resume-focused: host a resume static site
- Visual work: static portfolio hosting
- Student projects and class sites: static hosting for students
Maintenance rhythm
Edit locally → zip → deploy → peek preview → roll back if needed. Optional Git for your own history—git deploy a static site with HTML committed directly. StaticHost will not compile Markdown or run npm; if the repo is pure HTML, that is fine. If the repo is source-only for a generator, build elsewhere and publish the output tree.
Plans if the personal brand expands into multiple properties: Pro $30/mo (3 sites, 10 GB, staging), Scale $65 (10 sites, 30 GB), Business $130 (30 sites, 100 GB, teams). Most people never leave Starter.
Failure table (personal HTML)
| Symptom | Likely cause | Fix |
|---|---|---|
Preview shows directory noise or 404 on / | Zip nested an extra folder | Re-zip so index.html is at archive root |
| CSS missing on custom domain only | Absolute URLs pointing at preview host | Use relative href/src; redeploy |
Deep link to /projects 404s | You linked a path without .html and no projects/index.html | Link projects.html or use a projects/index.html directory |
| Mixed content warnings | http:// image or font URLs | Self-host assets over HTTPS |
| Site “stuck” after redesign | Browser cache or an old service worker from a past experiment | Hard refresh; unregister SW if you added one |
FAQ
Do I need JavaScript?
No. Add small progressive enhancements later if you want.
Can I use a free Google Site instead?
Yes, with different tradeoffs. StaticHost gives you ordinary files and a normal host/domain relationship after the trial or paid plan.
How do I add a contact form?
Use a third-party form endpoint, or a mailto: link if you accept spam tradeoffs. StaticHost does not process form posts or host mailboxes.
Should I blog on WordPress?
Only if you want WordPress. That needs a PHP host. Static blog generators stay on StaticHost after you build locally.
Is $9/mo worth it for a personal site?
If you want paid predictability, HTTPS, rollback, and a clear upgrade path, yes. If you need $0 forever, choose a forever-free host and accept their limits—free vs paid static hosting.