Digital Domain compiles to a completely static site — no server, no database, no runtime dependencies. Once built, every file the browser needs is plain HTML, JavaScript, and CSS that any static file host can serve. The repository already commits the built output to its root directory, so you can point a host directly at the repo and have a live site without running a build step yourself. This page explains what gets deployed, when you do need to build, and how the major hosting platforms compare.Documentation Index
Fetch the complete documentation index at: https://mintlify.com/apursley2012/digital-domain/llms.txt
Use this file to discover all available pages before exploring further.
The committed repository is pre-built output only. There is no
package.json, vite.config.js, tailwind.config.js, or src/ directory in the repo. If you want to modify and rebuild the project, you must set up a local Vite + Tailwind development environment from scratch. See the Tailwind Config page for the example configuration.What Gets Deployed
The repo root contains a complete, self-contained static site output. The key files and directories are:| Path | Description |
|---|---|
index.html | Vite entry point — the single HTML shell for the entire SPA |
assets/main.js | Compiled and bundled React application |
assets/main.css | Compiled Tailwind CSS with all custom tokens and body styles |
assets/proxy.js | Preloaded JS module (hit counter proxy) |
components/Layout.js | Preloaded JS module — layout shell component |
components/Window.js | Preloaded JS module — Win98 window frame component |
components/Marquee.js | Preloaded JS module — scrolling marquee component |
components/BeveledButton.js | Preloaded JS module — Win98 beveled button component |
components/HitCounter.js | Preloaded JS module — retro hit counter component |
pages/About.html | Static HTML fragment for the About page |
pages/Blog.html | Static HTML fragment for the Blog listing page |
pages/BlogPost.html | Static HTML fragment for individual blog posts |
pages/CaseStudies.html | Static HTML fragment for the Case Studies listing |
pages/CaseStudyDetail.html | Static HTML fragment for individual case studies |
pages/Contact.html | Static HTML fragment for the Contact page |
pages/Projects.html | Static HTML fragment for the Projects page |
pages/Skills.html | Static HTML fragment for the Skills page |
pages/Testimonials.html | Static HTML fragment for the Testimonials page |
pages/Work.html | Static HTML fragment for the Work page |
.nojekyll | Empty file that disables GitHub Pages’ Jekyll processing |
README.md | Repository readme |
Build Steps (For Customized Versions)
If you want to modify the project — React components, Tailwind config, CSS, or Vite config — you must set up a local development environment from scratch first, since nopackage.json or source files are committed to the repo.
Scaffold a new Vite + React project
Create a new Vite project with the React template and install Tailwind CSS:
Copy in the source files
Add the Tailwind configuration tokens (see the Tailwind Config page for the example config), copy the component and page source files into
src/, and add the Google Fonts @import at the top of your CSS entry point.Hosting Platform Comparison
GitHub Pages
Free hosting for public repositories, built directly into GitHub. Serves the repo root or a
docs/ folder from any branch. Requires a .nojekyll file to prevent Jekyll from interfering with asset paths — this file is already present in the repo. Ideal for portfolios since the URL becomes https://username.github.io/digital-domain/.Netlify
Free tier with drag-and-drop deploys — just drop the repo folder onto the Netlify dashboard and the site is live in seconds. Supports automatic SPA routing out of the box via a
_redirects file. Continuous deployment from GitHub is available with zero configuration.Vercel
Free tier with a first-class CLI experience. Run
vercel from the project root and the site is deployed. Rewrites for SPA routing are configured via vercel.json. Automatic preview deployments are created for every pull request.Cloudflare Pages
Free tier with a globally distributed CDN and generous bandwidth limits. Connect the GitHub repo and configure the output directory (the repo root, since no build step is needed). Supports SPA routing via
_routes.json or a catch-all _redirects file identical to Netlify’s format.SPA Routing Caveat
Digital Domain uses React Router’sBrowserRouter, which means routes like /blog and /skills are handled entirely in JavaScript — they are not real filesystem paths. When a visitor loads https://example.com/blog directly (or refreshes the page), the host tries to find a file at /blog and returns a 404 because that file does not exist.
Every host needs a configuration to return index.html for all unmatched routes:
| Host | Solution |
|---|---|
| GitHub Pages | Add a 404.html that redirects back to index.html using sessionStorage (see the GitHub Pages guide), or switch React Router to HashRouter |
| Netlify | Add a _redirects file to the deploy root with the rule /* /index.html 200 |
| Vercel | Add a vercel.json to the project root with { "rewrites": [{ "source": "/(.*)", "destination": "/index.html" }] } |
| Cloudflare Pages | Use a _redirects file (/* /index.html 200) or configure a _routes.json with a catch-all include |
The
.nojekyll file at the repo root is an empty file that serves a specific purpose on GitHub Pages: it prevents GitHub’s Jekyll static site processor from running during deployment. Without it, Jekyll would silently ignore any file or directory whose name begins with an underscore — which would break _redirects, custom _routes.json, and any other underscore-prefixed assets you add. The file has no effect on any other hosting platform.