A live gaming dashboard — game news, free games, deals across 30+ stores, Steam specials, upcoming releases, and original blog content. Zero dependencies, no API keys, deployed on Cloudflare Pages.
🌐 Live site: https://gamepulsehub.pages.dev
GamePulse pulls live gaming data from free, open APIs and RSS feeds — no API keys, no external accounts, no build step. It runs locally as a Node server OR deployed as a Cloudflare Pages site with edge functions.
- 🎮 Gaming News — live headlines via RSS from Eurogamer, PC Gamer, Rock Paper Shotgun, Destructoid
- 🆓 Free Games — currently-free titles on the Epic Games Store + 100%-off deals from CheapShark
- 🏷️ Hot Deals — best game deals across 30+ stores with sale price, original price, % off, and Metacritic score
- 💰 Steam Specials — Steam's currently-featured discounted games
- 📅 Coming Soon — upcoming Steam releases (deduplicated by ID)
- 🚀 New Releases — just-launched games on Steam
- 📊 Top Sellers — Steam's current best-sellers chart (deduplicated by ID)
- 📰 Top Headlines — general world news via RSS from BBC World, The Guardian
- 🔬 Tech & Science — technology and science news via RSS from The Verge, TechSpot, Engadget
- 📝 Blog — original article section for AdSense compliance
| Panel | Upstream | What it returns |
|---|---|---|
| Gaming News | RSS feeds (Eurogamer, PC Gamer, RPS, Destructoid) | Live gaming headlines with images + author attribution |
| Top Headlines | RSS feeds (BBC World, The Guardian) | General world news with 700px images |
| Tech & Science | RSS feeds (The Verge, TechSpot, Engadget) | Technology + science headlines |
| Free Games | Epic Games Store freeGamesPromotions + CheapShark 100%-off |
Currently-free Epic games + 100%-off store deals |
| Hot Deals | www.cheapshark.com/api/1.0/deals |
Game deals across 30+ stores with savings, ratings, Metacritic |
| Steam Specials | store.steampowered.com/api/featuredcategories |
Steam featured discounted games |
| Coming Soon / New / Top | same Steam API, different categories | Upcoming, just-launched, and best-selling Steam titles (deduplicated) |
Local development (Node server):
Browser (localhost:5217)
│
│ GET /api/news, /api/deals, /api/steam, /api/epic-free
▼
server.js (Node.js, zero deps) ← proxies + adds permissive CORS
│
│ fetch upstream
▼
RSS feeds (syndication-licensed) · CheapShark (open API) · Steam (open) · Epic (open)
Production (Cloudflare Pages + Edge Functions):
Browser (gamepulsehub.pages.dev)
│
│ Static files served from Cloudflare CDN
│ API calls → /api/* → Cloudflare Pages Functions (edge worker)
▼
functions/api/[[path]].js ← same proxy logic, runs at the edge
│
│ fetch upstream
▼
Same upstream sources
The proxy is needed because some upstream APIs don't send CORS headers. Both server.js and the edge function forward all requests with * CORS so the page works cleanly. Neither caches — you always get fresh data.
- Node.js 18+ (tested on 24)
node server.jsThen open http://localhost:5217 in your browser.
Double-click start.bat — it launches the server and opens the browser.
- Fork this repo on GitHub
- Install Wrangler:
npx wrangler login - Create a project:
npx wrangler pages project create gamepulsehub - Deploy:
npx wrangler pages deploy public --project-name gamepulsehub --branch main - Your site is live at
https://gamepulsehub.pages.dev
The edge functions in functions/api/[[path]].js handle all /api/* routes at the Cloudflare edge — no server to maintain.
GamePulse includes built-in infrastructure for generating revenue:
public/affiliate.jswraps all deal links with affiliate redirects- Supports GreenManGaming, Humble Bundle, Fanatical, and Amazon Associates
- Edit the placeholder IDs in
affiliate.jswith your affiliate codes and all deal links auto-update
- Two
<div class="ad-slot">placeholders inindex.html(top + mid-content) - Drop in AdSense, Adsterra, or Media.net code directly
public/posts/directory holds markdown articles- Blog section renders on the page and in the "Blog" tab
- Original content is required for Google AdSense approval
- 10 data rails across 8 filterable tabs (All / News / Deals & Specials / Free / Releases / Blog / Gaming / Tech)
- Auto-refresh — re-pulls all feeds on a timer (Off / 1m / 5m / 15m / 30m, default 5m)
- Manual refresh button + "Updated X seconds ago" live indicator
- Skeleton loaders while data loads
- Graceful fallbacks if an upstream is down or rate-limiting
- Steam deduplication — same game never appears twice in a rail
- Glassmorphism UI — frosted glass cards, multi-color gradient mesh background, Space Grotesk + Inter fonts
- Fully responsive — works on any window size
- Zero dependencies — no npm install, no build step, just Node
GamePulse/
├── server.js # local proxy + static server (Node, zero deps)
├── functions/
│ └── api/
│ └── [[path]].js # Cloudflare Pages edge function (same API proxy)
├── public/
│ ├── index.html # page shell with ad slots
│ ├── style.css # glassmorphism theme, gradient mesh, animations
│ ├── app.js # render logic, card builders, tabs, auto-refresh
│ ├── affiliate.js # affiliate link wrapper
│ └── posts/ # markdown blog articles
│ ├── welcome-to-gamepulse.md
│ ├── best-deals-july-2026.md
│ └── free-games-guide.md
├── _redirects # SPA fallback for Cloudflare Pages
├── .gitignore
├── LICENSE # PolyForm Noncommercial 1.0.0
├── README.md # this file
└── start.bat # one-click launcher (Windows)
PolyForm Noncommercial 1.0.0 — see LICENSE.
You're welcome to read the source, learn from it, and use it for personal, research, educational, or other noncommercial purposes. Commercial use is not permitted under this license — deploying GamePulse as a competing ad-supported product, a paid service, or any other commercial offering requires a separate commercial license from the author. Please open an issue if you'd like to discuss a commercial license.