Skip to content

the guide

In this guide, you will learn to selfhost any static backend website easily on Vercel. We will also be using FreeDNS so you can have a dedicated subdomain.

getting started: prerequisites

To properly follow this guide, you need some prequisites before continuing:

Notice: none of these services are sponsoring this guide.

1. GitHub Account You can sign up here.

2. Vercel Account You can sign up here, and ensure to select the "Hobby" plan. You will also need to link your GitHub account to your Vercel account to have a streamlined deploying experience.

3. FreeDNS Account You do not need to sign up for this yet, the process will be done as the guide progresses.

4. An email For signing up to the various services.

TIP

You may want to use a temporary email, such as SmailPro, to avoid spam and tracking when signing up for FreeDNS. Signing up for Vercel and GitHub will not require this.

5. A functional brain Ensure you have this requirement before continuing.

steps

Let's get started.

Step 1: Setting up the code

Ensure that you are logged in to your GitHub account, and then fork the 3kh0 Game Assets. You can edit whatever you need, such as repository name, description, etc. When you are ready, press "Create fork". This will create essentially a copy of the 3kh0 assets, which will be used for deployment.

Fork the repository

Fig. 1: Forking the 3kh0 repository.

After forking, it should take you to the repository. As you should see, all the games are already listed in the project directory.

Now, we will need to add the index.html file so when deployed, Vercel reads the deployment properly and serves the correct file. If there is no index file, Vercel will return a 404 error after deployment. We have provided an auto-generated index.html file, but you can also use your own. If you prefer to generate your own file, skip to here.

The auto-generated file is below: (contained in the Details block)

Details
html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>blaze directory</title> <!-- Replace this with whatever you want-->
<!-- This is the style block, edit this for a different UI-->
<style>
  body {
    font-family: system-ui, sans-serif;
    padding: 2rem;
    background: #f5f5f5;
  }
  h1 {
    text-align: center;
  }
  ul {
    max-width: 600px;
    margin: 2rem auto;
    list-style: none;
    padding: 0;
  }
  li {
    background: white;
    margin-bottom: 0.5rem;
    padding: 0.75rem 1rem;
    border-radius: 8px;
  }
  a {
    text-decoration: none;
    color: #0070f3;
    font-weight: 500;
  }
  a:hover {
    text-decoration: underline;
  }
</style>
</head>
<body>
  <h1>blaze directory</h1> <!-- Replace this as well-->
  <ul>
    <li><a href="1/">1/</a></li>
<li><a href="10-minutes-till-dawn/">10-minutes-till-dawn/</a></li>
<li><a href="100ng/">100ng/</a></li>
<li><a href="1v1-lol/">1v1-lol/</a></li>
<li><a href="1v1space/">1v1space/</a></li>
<li><a href="2048/">2048/</a></li>
<li><a href="2048-multitask/">2048-multitask/</a></li>
<li><a href="9007199254740992/">9007199254740992/</a></li>
<li><a href="99balls/">99balls/</a></li>
<li><a href="CMM-Client/">CMM-Client/</a></li>
<li><a href="DOOMORI/">DOOMORI/</a></li>
<li><a href="DogeMiner/">DogeMiner/</a></li>
<li><a href="Dogeminer2/">Dogeminer2/</a></li>
<li><a href="HexGL/">HexGL/</a></li>
<li><a href="MonkeyMart/">MonkeyMart/</a></li>
<li><a href="OfflineParadise/">OfflineParadise/</a></li>
<li><a href="Rocket-League/">Rocket-League/</a></li>
<li><a href="Run 2/">Run 2/</a></li>
<li><a href="ShapeShootout/">ShapeShootout/</a></li>
<li><a href="Stickman-Survival/">Stickman-Survival/</a></li>
<li><a href="Trimps/">Trimps/</a></li>
<li><a href="a-dance-of-fire-and-ice/">a-dance-of-fire-and-ice/</a></li>
<li><a href="achievementunlocked/">achievementunlocked/</a></li>
<li><a href="adarkroom/">adarkroom/</a></li>
<li><a href="adrenalinechallenge/">adrenalinechallenge/</a></li>
<li><a href="adventure-drivers/">adventure-drivers/</a></li>
<li><a href="ages-of-conflict/">ages-of-conflict/</a></li>
<li><a href="alienhominid/">alienhominid/</a></li>
<li><a href="amazing-rope-police/">amazing-rope-police/</a></li>
<li><a href="amidst-the-clouds/">amidst-the-clouds/</a></li>
<li><a href="among-us/">among-us/</a></li>
<li><a href="angry-sharks/">angry-sharks/</a></li>
<li><a href="aquapark-slides/">aquapark-slides/</a></li>
<li><a href="astray/">astray/</a></li>
<li><a href="avalanche/">avalanche/</a></li>
<li><a href="awesometanks2/">awesometanks2/</a></li>
<li><a href="backrooms/">backrooms/</a></li>
<li><a href="backrooms-2d/">backrooms-2d/</a></li>
<li><a href="backrooms2d/">backrooms2d/</a></li>
<li><a href="bacon-may-die/">bacon-may-die/</a></li>
<li><a href="bad-ice-cream/">bad-ice-cream/</a></li>
<li><a href="bad-ice-cream-2/">bad-ice-cream-2/</a></li>
<li><a href="bad-ice-cream-3/">bad-ice-cream-3/</a></li>
<li><a href="baldis-basics/">baldis-basics/</a></li>
<li><a href="balldodge/">balldodge/</a></li>
<li><a href="ballistic-chickens/">ballistic-chickens/</a></li>
<li><a href="basket-random/">basket-random/</a></li>
<li><a href="basketball-stars/">basketball-stars/</a></li>
<li><a href="basketbros-io/">basketbros-io/</a></li>
<li><a href="battleforgondor/">battleforgondor/</a></li>
<li><a href="bigredbutton/">bigredbutton/</a></li>
<li><a href="bitlife/">bitlife/</a></li>
<li><a href="blacholesquare/">blacholesquare/</a></li>
<li><a href="blackknight/">blackknight/</a></li>
<li><a href="blockpost/">blockpost/</a></li>
<li><a href="bloonstd/">bloonstd/</a></li>
<li><a href="bloonstd2/">bloonstd2/</a></li>
<li><a href="bloxors/">bloxors/</a></li>
<li><a href="bntts/">bntts/</a></li>
<li><a href="bobtherobber2/">bobtherobber2/</a></li>
<li><a href="bonkio/">bonkio/</a></li>
<li><a href="boxhead2play/">boxhead2play/</a></li>
<li><a href="boxing-random/">boxing-random/</a></li>
<li><a href="breakingthebank/">breakingthebank/</a></li>
<li><a href="btd4/">btd4/</a></li>
<li><a href="btd5/">btd5/</a></li>
<li><a href="btts/">btts/</a></li>
<li><a href="burger-and-frights/">burger-and-frights/</a></li>
<li><a href="bus and subway/">bus and subway/</a></li>
<li><a href="busandsubway/">busandsubway/</a></li>
<li><a href="cannon-basketball-4/">cannon-basketball-4/</a></li>
<li><a href="canyondefense/">canyondefense/</a></li>
<li><a href="cars-simulator/">cars-simulator/</a></li>
<li><a href="cell-machine/">cell-machine/</a></li>
<li><a href="champion-island/">champion-island/</a></li>
<li><a href="championarcher/">championarcher/</a></li>
<li><a href="checkers/">checkers/</a></li>
<li><a href="chess/">chess/</a></li>
<li><a href="chill-radio/">chill-radio/</a></li>
<li><a href="chrome-dino/">chrome-dino/</a></li>
<li><a href="circlo/">circlo/</a></li>
<li><a href="classicube/">classicube/</a></li>
<li><a href="cluster-rush/">cluster-rush/</a></li>
<li><a href="cnpingpong/">cnpingpong/</a></li>
<li><a href="connect3/">connect3/</a></li>
<li><a href="cookie-clickers/">cookie-clickers/</a></li>
<li><a href="core-ball/">core-ball/</a></li>
<li><a href="craftmine/">craftmine/</a></li>
<li><a href="creativekillchamber/">creativekillchamber/</a></li>
<li><a href="crossyroad/">crossyroad/</a></li>
<li><a href="csgo-clicker/">csgo-clicker/</a></li>
<li><a href="ctr/">ctr/</a></li>
<li><a href="ctr-holiday/">ctr-holiday/</a></li>
<li><a href="ctr-tr/">ctr-tr/</a></li>
<li><a href="cubefield/">cubefield/</a></li>
<li><a href="cupcake2048/">cupcake2048/</a></li>
<li><a href="dante/">dante/</a></li>
<li><a href="deal-or-no-deal/">deal-or-no-deal/</a></li>
<li><a href="death-run-3d/">death-run-3d/</a></li>
<li><a href="deepest-sword/">deepest-sword/</a></li>
<li><a href="defend-the-tank/">defend-the-tank/</a></li>
<li><a href="doctor-acorn2/">doctor-acorn2/</a></li>
<li><a href="dodge/">dodge/</a></li>
<li><a href="doge2048/">doge2048/</a></li>
<li><a href="doodle-jump/">doodle-jump/</a></li>
<li><a href="doom/">doom/</a></li>
<li><a href="doublewires/">doublewires/</a></li>
<li><a href="dragon-vs-bricks/">dragon-vs-bricks/</a></li>
<li><a href="draw-the-hill/">draw-the-hill/</a></li>
<li><a href="drift-boss/">drift-boss/</a></li>
<li><a href="drift-hunters/">drift-hunters/</a></li>
<li><a href="drive-mad/">drive-mad/</a></li>
<li><a href="dsc/">dsc/</a></li>
<li><a href="ducklife1/">ducklife1/</a></li>
<li><a href="ducklife2/">ducklife2/</a></li>
<li><a href="ducklife3/">ducklife3/</a></li>
<li><a href="ducklife4/">ducklife4/</a></li>
<li><a href="duke-nukem-2/">duke-nukem-2/</a></li>
<li><a href="dumbwaystodie/">dumbwaystodie/</a></li>
<li><a href="eaglerfaithful/">eaglerfaithful/</a></li>
<li><a href="earntodie/">earntodie/</a></li>
<li><a href="edge-surf/">edge-surf/</a></li>
<li><a href="edgenotfound/">edgenotfound/</a></li>
<li><a href="eel-slap/">eel-slap/</a></li>
<li><a href="eggycar/">eggycar/</a></li>
<li><a href="elasticman/">elasticman/</a></li>
<li><a href="endlesswar3/">endlesswar3/</a></li>
<li><a href="escapingtheprison/">escapingtheprison/</a></li>
<li><a href="evil-glitch/">evil-glitch/</a></li>
<li><a href="evolution/">evolution/</a></li>
<li><a href="exo/">exo/</a></li>
<li><a href="factoryballs/">factoryballs/</a></li>
<li><a href="fairsquares/">fairsquares/</a></li>
<li><a href="fake-virus/">fake-virus/</a></li>
<li><a href="fancypantsadventures/">fancypantsadventures/</a></li>
<li><a href="fantasy-dash/">fantasy-dash/</a></li>
<li><a href="fireboywatergirlforesttemple/">fireboywatergirlforesttemple/</a></li>
<li><a href="flappy plane/">flappy plane/</a></li>
<li><a href="flappy-2048/">flappy-2048/</a></li>
<li><a href="flappy-bird/">flappy-bird/</a></li>
<li><a href="flappybird/">flappybird/</a></li>
<li><a href="flappyplane/">flappyplane/</a></li>
<li><a href="flashtetris/">flashtetris/</a></li>
<li><a href="fleeingthecomplex/">fleeingthecomplex/</a></li>
<li><a href="flippy-fish/">flippy-fish/</a></li>
<li><a href="fnaw/">fnaw/</a></li>
<li><a href="fridaynightfunkin/">fridaynightfunkin/</a></li>
<li><a href="froggys-battle/">froggys-battle/</a></li>
<li><a href="fruitninja/">fruitninja/</a></li>
<li><a href="frying-nemo/">frying-nemo/</a></li>
<li><a href="gachalife/">gachalife/</a></li>
<li><a href="game-inside/">game-inside/</a></li>
<li><a href="gdtd/">gdtd/</a></li>
<li><a href="gearsofbabies/">gearsofbabies/</a></li>
<li><a href="generic-fishing-game/">generic-fishing-game/</a></li>
<li><a href="geochallenge/">geochallenge/</a></li>
<li><a href="geodash/">geodash/</a></li>
<li><a href="geodashlite/">geodashlite/</a></li>
<li><a href="geogeo/">geogeo/</a></li>
<li><a href="geops1/">geops1/</a></li>
<li><a href="georash/">georash/</a></li>
<li><a href="georgeandtheprinter/">georgeandtheprinter/</a></li>
<li><a href="geotrash/">geotrash/</a></li>
<li><a href="getaway-shootout/">getaway-shootout/</a></li>
<li><a href="gimme-the-airpod/">gimme-the-airpod/</a></li>
<li><a href="gladihoppers/">gladihoppers/</a></li>
<li><a href="glass-city/">glass-city/</a></li>
<li><a href="gmonster/">gmonster/</a></li>
<li><a href="go-ball/">go-ball/</a></li>
<li><a href="goodnight/">goodnight/</a></li>
<li><a href="goodnight-meowmie/">goodnight-meowmie/</a></li>
<li><a href="google-feud/">google-feud/</a></li>
<li><a href="google-snake/">google-snake/</a></li>
<li><a href="gravity-soccer/">gravity-soccer/</a></li>
<li><a href="greybox/">greybox/</a></li>
<li><a href="grindcraft/">grindcraft/</a></li>
<li><a href="hackertype/">hackertype/</a></li>
<li><a href="handshakes/">handshakes/</a></li>
<li><a href="happy-hop/">happy-hop/</a></li>
<li><a href="happywheels/">happywheels/</a></li>
<li><a href="hardware-tycoon/">hardware-tycoon/</a></li>
<li><a href="hba/">hba/</a></li>
<li><a href="helicopter/">helicopter/</a></li>
<li><a href="hellscaper/">hellscaper/</a></li>
<li><a href="hexempire/">hexempire/</a></li>
<li><a href="hextris/">hextris/</a></li>
<li><a href="highrisehop/">highrisehop/</a></li>
<li><a href="hill-climb-racing/">hill-climb-racing/</a></li>
<li><a href="hungry-lamu/">hungry-lamu/</a></li>
<li><a href="iceagebaby/">iceagebaby/</a></li>
<li><a href="iceagebaby2/">iceagebaby2/</a></li>
<li><a href="idle-breakout/">idle-breakout/</a></li>
<li><a href="idle-shark/">idle-shark/</a></li>
<li><a href="idledice/">idledice/</a></li>
<li><a href="impossiblequiz/">impossiblequiz/</a></li>
<li><a href="impossiblequiz2/">impossiblequiz2/</a></li>
<li><a href="impossiblequizbeta/">impossiblequizbeta/</a></li>
<li><a href="interactivebuddy/">interactivebuddy/</a></li>
<li><a href="invite-the-blackbird/">invite-the-blackbird/</a></li>
<li><a href="iron dash/">iron dash/</a></li>
<li><a href="irondash/">irondash/</a></li>
<li><a href="jetpack-joyride/">jetpack-joyride/</a></li>
<li><a href="jmw-v6/">jmw-v6/</a></li>
<li><a href="just-fall/">just-fall/</a></li>
<li><a href="just-one-boss/">just-one-boss/</a></li>
<li><a href="kirkaio/">kirkaio/</a></li>
<li><a href="kitchen-gun-game/">kitchen-gun-game/</a></li>
<li><a href="kittencannon/">kittencannon/</a></li>
<li><a href="knife-master/">knife-master/</a></li>
<li><a href="krunker/">krunker/</a></li>
<li><a href="learntofly/">learntofly/</a></li>
<li><a href="learntofly2/">learntofly2/</a></li>
<li><a href="legacyflashgames/">legacyflashgames/</a></li>
<li><a href="level13/">level13/</a></li>
<li><a href="linerider/">linerider/</a></li>
<li><a href="linkgen/">linkgen/</a></li>
<li><a href="ltf-idle/">ltf-idle/</a></li>
<li><a href="ltf3/">ltf3/</a></li>
<li><a href="madalin-stunt-cars-2/">madalin-stunt-cars-2/</a></li>
<li><a href="madalin-stunt-cars-3/">madalin-stunt-cars-3/</a></li>
<li><a href="mario/">mario/</a></li>
<li><a href="marvinspectrum/">marvinspectrum/</a></li>
<li><a href="matrixrampage/">matrixrampage/</a></li>
<li><a href="mcje/">mcje/</a></li>
<li><a href="meme2048/">meme2048/</a></li>
<li><a href="merge-round-racers/">merge-round-racers/</a></li>
<li><a href="mindustry/">mindustry/</a></li>
<li><a href="mineblocks/">mineblocks/</a></li>
<li><a href="minecraft-15/">minecraft-15/</a></li>
<li><a href="minecraft-18/">minecraft-18/</a></li>
<li><a href="minecraft-classic/">minecraft-classic/</a></li>
<li><a href="minecraftbeta/">minecraftbeta/</a></li>
<li><a href="minecrafttowerdefence/">minecrafttowerdefence/</a></li>
<li><a href="minesweeper/">minesweeper/</a></li>
<li><a href="miniputt/">miniputt/</a></li>
<li><a href="missiles/">missiles/</a></li>
<li><a href="monster-tracks/">monster-tracks/</a></li>
<li><a href="motox3m/">motox3m/</a></li>
<li><a href="motox3m-pool/">motox3m-pool/</a></li>
<li><a href="motox3m-spooky/">motox3m-spooky/</a></li>
<li><a href="motox3m-winter/">motox3m-winter/</a></li>
<li><a href="motox3m2/">motox3m2/</a></li>
<li><a href="my-rusty-submarine/">my-rusty-submarine/</a></li>
<li><a href="n-gon/">n-gon/</a></li>
<li><a href="neal.fun/">neal.fun/</a></li>
<li><a href="ninja/">ninja/</a></li>
<li><a href="ninjavsevilcorp/">ninjavsevilcorp/</a></li>
<li><a href="noob-steve-parkour/">noob-steve-parkour/</a></li>
<li><a href="ns-shaft/">ns-shaft/</a></li>
<li><a href="nsresurgence/">nsresurgence/</a></li>
<li><a href="om-bounce/">om-bounce/</a></li>
<li><a href="osu!/">osu!/</a></li>
<li><a href="out-of-ctrl/">out-of-ctrl/</a></li>
<li><a href="overwatch/">overwatch/</a></li>
<li><a href="ovo/">ovo/</a></li>
<li><a href="pandemic2/">pandemic2/</a></li>
<li><a href="papasburgeria/">papasburgeria/</a></li>
<li><a href="papaspizzaria/">papaspizzaria/</a></li>
<li><a href="paperio2/">paperio2/</a></li>
<li><a href="papery-planes/">papery-planes/</a></li>
<li><a href="particle-clicker/">particle-clicker/</a></li>
<li><a href="piclient/">piclient/</a></li>
<li><a href="pigeon-ascent/">pigeon-ascent/</a></li>
<li><a href="pixel-gun-survival/">pixel-gun-survival/</a></li>
<li><a href="planetlife/">planetlife/</a></li>
<li><a href="plantsvzombie1/">plantsvzombie1/</a></li>
<li><a href="polybranch/">polybranch/</a></li>
<li><a href="popcat-classic/">popcat-classic/</a></li>
<li><a href="portalflash/">portalflash/</a></li>
<li><a href="precision-client/">precision-client/</a></li>
<li><a href="protektor/">protektor/</a></li>
<li><a href="push-the-square/">push-the-square/</a></li>
<li><a href="push-your-luck/">push-your-luck/</a></li>
<li><a href="rabbit-samurai/">rabbit-samurai/</a></li>
<li><a href="rabbit-samurai2/">rabbit-samurai2/</a></li>
<li><a href="resent-client/">resent-client/</a></li>
<li><a href="retro-bowl/">retro-bowl/</a></li>
<li><a href="rhythm-doctor/">rhythm-doctor/</a></li>
<li><a href="riddleschool/">riddleschool/</a></li>
<li><a href="riddleschool2/">riddleschool2/</a></li>
<li><a href="riddleschool3/">riddleschool3/</a></li>
<li><a href="riddleschool4/">riddleschool4/</a></li>
<li><a href="riddleschool5/">riddleschool5/</a></li>
<li><a href="riddletransfer/">riddletransfer/</a></li>
<li><a href="riddletransfer2/">riddletransfer2/</a></li>
<li><a href="roblox/">roblox/</a></li>
<li><a href="roblox copy/">roblox copy/</a></li>
<li><a href="robuxclicker/">robuxclicker/</a></li>
<li><a href="rolling-forests/">rolling-forests/</a></li>
<li><a href="rolly-vortex/">rolly-vortex/</a></li>
<li><a href="rooftop-snipers/">rooftop-snipers/</a></li>
<li><a href="roommate/">roommate/</a></li>
<li><a href="ruffle/">ruffle/</a></li>
<li><a href="run/">run/</a></li>
<li><a href="run 3/">run 3/</a></li>
<li><a href="run2/">run2/</a></li>
<li><a href="run3/">run3/</a></li>
<li><a href="run4bootleg/">run4bootleg/</a></li>
<li><a href="runner/">runner/</a></li>
<li><a href="sand-game/">sand-game/</a></li>
<li><a href="sandboxels/">sandboxels/</a></li>
<li><a href="santy-is-home/">santy-is-home/</a></li>
<li><a href="scooperia/">scooperia/</a></li>
<li><a href="scrapmetal/">scrapmetal/</a></li>
<li><a href="scratcharia/">scratcharia/</a></li>
<li><a href="shellshockers/">shellshockers/</a></li>
<li><a href="shogunshowdown/">shogunshowdown/</a></li>
<li><a href="shotinthedark/">shotinthedark/</a></li>
<li><a href="shuttledeck/">shuttledeck/</a></li>
<li><a href="sky-car-stunt/">sky-car-stunt/</a></li>
<li><a href="sleepingbeauty/">sleepingbeauty/</a></li>
<li><a href="slime-rush-td/">slime-rush-td/</a></li>
<li><a href="slitherio/">slitherio/</a></li>
<li><a href="slope/">slope/</a></li>
<li><a href="slope-2/">slope-2/</a></li>
<li><a href="slope-ball/">slope-ball/</a></li>
<li><a href="sm64/">sm64/</a></li>
<li><a href="smashkarts/">smashkarts/</a></li>
<li><a href="smokingbarrels/">smokingbarrels/</a></li>
<li><a href="snowbattle/">snowbattle/</a></li>
<li><a href="snowrider3d/">snowrider3d/</a></li>
<li><a href="soccer-random/">soccer-random/</a></li>
<li><a href="soccer-skills/">soccer-skills/</a></li>
<li><a href="soldier-legend/">soldier-legend/</a></li>
<li><a href="solitaire/">solitaire/</a></li>
<li><a href="sort-the-court/">sort-the-court/</a></li>
<li><a href="soundboard/">soundboard/</a></li>
<li><a href="space-company/">space-company/</a></li>
<li><a href="spacegarden/">spacegarden/</a></li>
<li><a href="spelunky/">spelunky/</a></li>
<li><a href="spinningrat/">spinningrat/</a></li>
<li><a href="squaredash/">squaredash/</a></li>
<li><a href="ssurferbotleg/">ssurferbotleg/</a></li>
<li><a href="stack/">stack/</a></li>
<li><a href="stack-bump-3d/">stack-bump-3d/</a></li>
<li><a href="starve/">starve/</a></li>
<li><a href="station-141/">station-141/</a></li>
<li><a href="stationmeltdown/">stationmeltdown/</a></li>
<li><a href="stealingthediamond/">stealingthediamond/</a></li>
<li><a href="stick-archers/">stick-archers/</a></li>
<li><a href="stick-duel-battle/">stick-duel-battle/</a></li>
<li><a href="stick-merge/">stick-merge/</a></li>
<li><a href="stickman-boost/">stickman-boost/</a></li>
<li><a href="stickman-golf/">stickman-golf/</a></li>
<li><a href="stickman-hook/">stickman-hook/</a></li>
<li><a href="stickwar/">stickwar/</a></li>
<li><a href="stormthehouse2/">stormthehouse2/</a></li>
<li><a href="stumble-guys/">stumble-guys/</a></li>
<li><a href="subway-surfers/">subway-surfers/</a></li>
<li><a href="subway-surfers-ny/">subway-surfers-ny/</a></li>
<li><a href="suggestions/">suggestions/</a></li>
<li><a href="superautopets/">superautopets/</a></li>
<li><a href="superfowlist/">superfowlist/</a></li>
<li><a href="superhot/">superhot/</a></li>
<li><a href="supermarioconstruct/">supermarioconstruct/</a></li>
<li><a href="surviv/">surviv/</a></li>
<li><a href="sushi-unroll/">sushi-unroll/</a></li>
<li><a href="swarmsimulator/">swarmsimulator/</a></li>
<li><a href="swerve/">swerve/</a></li>
<li><a href="synesthesia/">synesthesia/</a></li>
<li><a href="tactical-weapon-pack-2/">tactical-weapon-pack-2/</a></li>
<li><a href="tacticalassasin2/">tacticalassasin2/</a></li>
<li><a href="tank-trouble-2/">tank-trouble-2/</a></li>
<li><a href="tanuki-sunset/">tanuki-sunset/</a></li>
<li><a href="temple-run-2/">temple-run-2/</a></li>
<li><a href="the-final-earth/">the-final-earth/</a></li>
<li><a href="the-final-earth-2/">the-final-earth-2/</a></li>
<li><a href="the-hotel/">the-hotel/</a></li>
<li><a href="thebattle/">thebattle/</a></li>
<li><a href="theheist/">theheist/</a></li>
<li><a href="there-is-no-game/">there-is-no-game/</a></li>
<li><a href="thisistheonlylevel/">thisistheonlylevel/</a></li>
<li><a href="throwrocks/">throwrocks/</a></li>
<li><a href="tiny-fishing/">tiny-fishing/</a></li>
<li><a href="tiny-islands/">tiny-islands/</a></li>
<li><a href="tosstheturtle/">tosstheturtle/</a></li>
<li><a href="townscaper/">townscaper/</a></li>
<li><a href="tube-jumpers/">tube-jumpers/</a></li>
<li><a href="tunnel-rush/">tunnel-rush/</a></li>
<li><a href="tv-static/">tv-static/</a></li>
<li><a href="twitch-tetris/">twitch-tetris/</a></li>
<li><a href="unfairmario/">unfairmario/</a></li>
<li><a href="veloce/">veloce/</a></li>
<li><a href="vex2/">vex2/</a></li>
<li><a href="vex3/">vex3/</a></li>
<li><a href="vex4/">vex4/</a></li>
<li><a href="vex5/">vex5/</a></li>
<li><a href="vex6/">vex6/</a></li>
<li><a href="vex7/">vex7/</a></li>
<li><a href="volley-random/">volley-random/</a></li>
<li><a href="wallsmash/">wallsmash/</a></li>
<li><a href="waterworks/">waterworks/</a></li>
<li><a href="weavesilk/">weavesilk/</a></li>
<li><a href="webcleaner/">webcleaner/</a></li>
<li><a href="webgl-fluid-simulation/">webgl-fluid-simulation/</a></li>
<li><a href="webretro/">webretro/</a></li>
<li><a href="webxash/">webxash/</a></li>
<li><a href="win-the-whitehouse/">win-the-whitehouse/</a></li>
<li><a href="wolf2d/">wolf2d/</a></li>
<li><a href="wolf3d/">wolf3d/</a></li>
<li><a href="wordle/">wordle/</a></li>
<li><a href="worlds-hardest-game/">worlds-hardest-game/</a></li>
<li><a href="worlds-hardest-game-2/">worlds-hardest-game-2/</a></li>
<li><a href="wounded-summer-baby-edition/">wounded-summer-baby-edition/</a></li>
<li><a href="x-trial-racing/">x-trial-racing/</a></li>
<li><a href="xx142-b2exe/">xx142-b2exe/</a></li>
<li><a href="yohoho/">yohoho/</a></li>
<li><a href="yoshifabrication/">yoshifabrication/</a></li>
<li><a href="you-are-bezos/">you-are-bezos/</a></li>
<li><a href="zigzag/">zigzag/</a></li>
<li><a href="zombs-royale/">zombs-royale/</a></li>
  </ul>
</body>
</html>

Inserting the file

We are going to put this file in the root (/) directory of your GitHub repository. Simply click on "Add file" and then "+ Create new file". On the "Name your file" placeholder located on the top, type in index.html (so Vercel knows this is the index file). Copy the code from the details block and paste it in here. Next, click "Commit changes..." Click on the "Commit changes" button again in the popup window. Now you are done with the code. Skip to here to continue.

Generating the index.html (Custom)

The author(s) of the guide are too lazy to have a writeup on this, instead just run node generate.js in a Codespace of your repository (Option 1) Alternatively, you can generate a ED25519 SSH key and add it to GitHub. Then clone your repo with SSH, and make the desired changes (Option 2) You can also create generate.js as a file within the / of your repository, and set the Build Command under Build and Output Setting as node generate.js (Option 3, Recommended). Make sure generate.js is the following file and is located within all your game files:

Details
js
const fs = require('fs');
const path = require('path');

const ROOT_DIR = '.';
const OUTPUT_FILE = 'index.html';

// ignore these folders - add more with same syntax ,'folder'
const IGNORE = ['.git', 'node_modules', '.vercel'];

const entries = fs.readdirSync(ROOT_DIR, { withFileTypes: true });

const folders = entries
  .filter(e => e.isDirectory())
  .map(e => e.name)
  .filter(name => !IGNORE.includes(name))
  .sort();

const html = `<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>blaze directory</title>
<style>
  body {
    font-family: system-ui, sans-serif;
    padding: 2rem;
    background: #f5f5f5;
  }
  h1 {
    text-align: center;
  }
  ul {
    max-width: 600px;
    margin: 2rem auto;
    list-style: none;
    padding: 0;
  }
  li {
    background: white;
    margin-bottom: 0.5rem;
    padding: 0.75rem 1rem;
    border-radius: 8px;
  }
  a {
    text-decoration: none;
    color: #0070f3;
    font-weight: 500;
  }
  a:hover {
    text-decoration: underline;
  }
</style>
</head>
<body>
  <h1>blaze directory</h1>
  <ul>
    ${folders.map(f => `<li><a href="${f}/">${f}/</a></li>`).join('\n')}
  </ul>
</body>
</html>
`;

fs.writeFileSync(OUTPUT_FILE, html);
console.log(`Generated ${OUTPUT_FILE} with ${folders.length} folders`);

Then commit the changes with git commit, edit the commit message, and use git push to push the changes to the main branch if you used Option 1 or Option 2.

Deploying on Vercel

We will now begin the deployment stage, which makes your repository openly accessible on the web. This can be achieved using a great static web hoster called Vercel. First, navigate to the Vercel dashboard at https://vercel.com (you must sign in, if you haven't already). Click on "Add New..." and then "Project". If your GitHub account is linked, you can choose "3kh0-assets" (or whatever you named the repository) under "Import Git Repository". Elsewise, you can copy the link of your repository and paste it in the first box. It should be something similar to https://github.com/username/3kh0-assets (replace username with your username, and 3kh0-assets with your repository name). Click "Continue" or "Import" depending on how you imported the repository, and you will be taken to the "New Project" page. If you used Option 3 in custom generating the index.html file, go to Build and Output Settings, and edit the Build Command to node generate.js. Otherwise, you can now click the big Deploy button. Vercel will now begin deploying your repository to the web. This will take a few minutes as the repository for all the games is huge (~5.7 GB), so be patient. Cloning should be complete in 3-4 minutes, and deploy time should be around 8 minutes. Once your project has successfully deployed, you can now visit it. Click on the URL ending in *.vercel.app and you will be taken to your website. As you can see, the games are all there. However, the problem is that *.vercel.app is in the blacklist of many f1lters. So, we use another domain/subdomain linked to the Vercel project.

Domain Setup

Made with ♡ in San Jose, CA