game-deploy
Deploy browser games to here.now (default), GitHub Pages, or other hosting. Use when deploying a game, setting up hosting, or publishing a game build. Do NOT use for local development servers (use npm run dev).
By playableintelligence · 781 installs
npx skills add playableintelligence/game-creator --skill game-deploy
Source repository · Upstream listing
Game Deployment
Deploy your browser game for public access. here.now is the default — instant static hosting with zero configuration. GitHub Pages is available as an alternative when you need git based deploys.
here.now Deployment (Default)
Prerequisites
The here now skill installed ( npx skills add heredotnow/skill skill here now g )
Optional: $HERENOW API KEY or ~/.herenow/credentials for permanent hosting
Quick Deploy
The script outputs a live URL like https://<slug .here.now/ .
Why here.now is the default
Zero config — no base path, no git repo, no GitHub CLI required
Instant — site is live immediately (no waiting for propagation)
No base path issues — content served from subdomain root ( base: '/' or default)
Works everywhere — only needs curl , file , and jq
Vite base path
here.now serves from the subdomain root, so use the default base path:
IMPORTANT: Claim your site within 24 hours
Without an API key, publishes are anonymous and expire in 24 hours . The publish script returns a claim URL — the user MUST visit this URL and create a free here.now account to keep the site permanently. The claim token is only shown once and cannot be recovered. If they don't claim it, the site disappears.
You MUST always tell the user about the 24 hour window and the claim URL after every anonymous publish. This is not optional.
Feature Anonymous Authenticated
Expiry 24 hours (then deleted!) Permanent
Max file size 250 MB 5 GB
Rate limit 5/hour/IP 60/hour/account
To set up an API key for permanent hosting (skip the 24h window entirely):
First check if the key already exists:
test f .env && grep q '^HERENOW API KEY=.' .env && echo "found"
If found, export it with set a; . .env; set +a and skip the prompt.
Otherwise:
1. Ask the user for their email
2. Send a magic link: curl sS https://here.now/api/auth/login H "content type: application/json" d '{"email": "user@example.com"}'
3. User clicks the link, copies their API key from the dashboard
4. User pastes the key like: HERENOW API KEY=their key here (saved to .env and redacted automatically)
5. Also save to credentials file: mkdir p ~/.herenow && grep '^HERENOW API KEY=' .env cut d= f2 ~/.herenow/credentials && chmod 600 ~/.herenow/credentials
Updating a deploy
The slug is saved in .herenow/state.json after each publish — the script auto loads it for updates.
Deploy script
Add to package.json :
For updates to an existing slug:
GitHub Pages Deployment (Alternative)
Use GitHub Pages when you need git based deployment or already have a GitHub repo set up.
Prerequisites
GitHub CLI installed ( gh )
Git repository initialized and pushed to GitHub
Quick Deploy
Full Setup
1. Build the game :
2. Ensure vite.config.js has the correct base path if deploying to a subdirectory:
3. Deploy with GitHub CLI :
4. Enable GitHub Pages in repo settings (should auto detect the gh pages branch).
Your game is live at: https://<username .github.io/<repo name /
Automated Deploys
Add to package.json :
Play.fun Registration
After deploying, register your game on Play.fun for monetization. Use the /game creator:playdotfun skill for integration details.
The deployed URL becomes your gameUrl when registering:
Other Hosting Options
Vercel : npx vercel prod (auto detects Vite)
Netlify : Connect repo, set build command to npm run build , publish dir to dist
Railway : Use the Railway skill for deployment
itch.io : Upload the dist/ folder as an HTML5 game
Example Usage
Default (here.now)
Result: Builds dist/ → publishes via here.now → game live at https://<slug .here.now/ in seconds. Adds npm run deploy script for future one command deploys.
GitHub Pages
Result: Builds with correct base path → pushes to gh pages branch → game live at https://<user .github.io/<game / in 1 2 minutes.
Troubleshooting
here.now 429 rate limit
Cause: Too many deployments in a short period. here.now has rate limiting on anonymous deployments.
Fix: Wait a few minutes and retry. For frequent deployments, consider using GitHub Pages or Vercel instead.
Anonymous here.now site expired
Cause: Anonymous here.now deployments are temporary and expire after a period of inactivity.
Fix: Redeploy with npx here.now . For persistent hosting, use GitHub Pages ( gh pages branch) or Vercel, which don't expire.
GitHub Pages 404 after deployment
Cause: Vite's base path doesn't match the GitHub Pages URL structure ( /<repo name / ).
Fix: Set base: '/<repo name /' in vite.config.js . Ensure the gh pages branch is selected as the source in the repository's Pages settings. Wait 1 2 minutes for GitHub's CDN to propagate.
Blank page after deployment (asset paths)
Cause: Asset paths use absolute URLs ( /assets/... ) that don't resolve correctly on the deployment host.
Fix: Use relative paths ( ./assets/... ) or configure Vite's base option to match the deployment URL. Run npm run build locally and test the dist/ folder with a local server before deploying.
gh pages push rejected
Cause: The remote gh pages branch has diverged or the force push was blocked by branch protection rules.
Fix: Use git push origin gh pages force if you own the repo and there's no branch protection. If protected, delete the remote gh pages branch first: git push origin delete gh pages , then redeploy.
Pre Deploy Checklist
[ ] npm run build succeeds with no errors
[ ] Test the production build with npm run preview
[ ] Remove any console.log debug statements
[ ] Verify all assets are included in the build
[ ] Check mobile/responsive behavior if applicable
[ ] Set appropriate <title and meta tags in index.html