Skip to main content

Documentation Index

Fetch the complete documentation index at: https://mintlify.com/theinfamouscoder5/codys-shack-games/llms.txt

Use this file to discover all available pages before exploring further.

Cody’s Shack Games is a fully static site: every page is a plain HTML file, every script is vanilla JavaScript, and the game list is a JSON file read by the browser at runtime. That means deployment is as simple as copying files to a host that can serve them over HTTP. There is no npm install, no compile step, and no environment variables to configure. If your host can serve an index.html, it can run Cody’s Shack.
Before uploading anywhere, open index.html directly in your browser to verify the files are intact. Most of the landing page will render correctly from a local file path. However, the game list on projects.html and the app list on apps.html are populated via fetch() calls to config/games.json and config/apps.json respectively — browsers block those requests under the file:// protocol. To test those pages locally, serve the folder with any simple HTTP server (e.g. python3 -m http.server 8080) and open http://localhost:8080 instead.

Prerequisites

  • A static file host (Netlify, GitHub Pages, Cloudflare Pages, or any plain web server)
  • Git (to clone the repository) or a browser (to download the ZIP from GitHub)
  • No Node.js, no package manager, no build tools

Deployment steps

1

Download the repository

Fork or clone the repository from GitHub so you have a local copy of all the files.
git clone https://github.com/theinfamouscoder5/codys-shack-games.git
cd codys-shack-games
Alternatively, click Code → Download ZIP on the GitHub repository page and extract the archive to a local folder.
2

Verify the folder structure

Before uploading, confirm the following key paths exist. These are the files the site depends on at runtime — none of them are generated by a build process, so they must all be present.
codys-shack-games/
├── index.html          ← Landing page
├── projects.html       ← Games list page
├── apps.html           ← Website proxies page
├── movies.html         ← Movie streaming page
├── misc.html           ← Settings / tab cloaker page
├── config/
│   ├── games.json      ← Game catalogue (title, thumbnail, link)
│   └── apps.json       ← Website proxy catalogue
├── projects/           ← Bundled game files (one subfolder per game)
├── apps/               ← Iframe wrapper pages for proxied websites
└── js/
    ├── main.js         ← Tab-cloak logic (reads localStorage on every page)
    └── subtitle.js     ← Animated homepage subtitle
3

Upload to a static host

Upload the entire folder contents (not the folder itself) to the root of your static host. Three common free options:Netlify — drag the folder onto the Netlify drop page. Your site will be live on a *.netlify.app subdomain within seconds.GitHub Pages — push the repository to a GitHub repo, then go to Settings → Pages, set the source to the main branch and root directory, and save. The site will be published at https://<your-username>.github.io/<repo-name>/.Any web server — copy the files to your server’s document root (e.g. /var/www/html/) and ensure the server is configured to serve static files. No special MIME types or server-side modules are required beyond standard HTML/CSS/JS/JSON serving.
4

Open the site and confirm the game list loads

Navigate to your published URL. On the landing page, click start playing (or go directly to /projects.html). The page will:
  1. Display a spinning loader while fetch("config/games.json") runs.
  2. Parse the JSON array and render one clickable tile per entry.
  3. Hide the loader once all tiles are appended to the DOM.
If the game list never appears and the spinner keeps spinning, open your browser’s developer console (F12) and check the Network tab for a failed request to config/games.json. This usually means the file was not uploaded or the base path is incorrect.The config/games.json entry format that drives each tile is:
[
  {
    "link": "projects/2048/index.html",
    "imgSrc": "projects/2048/thumb.png",
    "title": "2048"
  }
]
  • link — relative path to the game’s entry point, opened when the tile is clicked.
  • imgSrc — relative path to the tile thumbnail image (displayed at 210×210 px).
  • title — display name shown below the thumbnail and used by the live search filter.
To add a new game, append a new object to the array following the same structure and redeploy.
Some game files are very large. Titles like Eaglercraft (Minecraft), Super Mario 64, and other 3D or Emscripten-compiled games can be tens or hundreds of megabytes each. Many free static hosts enforce upload size limits, request timeout limits, or bandwidth quotas that these files will exceed — uploads may fail silently, or the game may time out mid-load for visitors.If you run into this, the most reliable workaround is to host the oversized game folder(s) on your own server or object storage (e.g. an S3-compatible bucket or a VPS with nginx), then update the corresponding "link" value in config/games.json to point at that external URL instead of a local relative path. The rest of the site — the landing page, smaller games, proxies, and settings — can remain on the free static host.

Build docs developers (and LLMs) love