Free Games With No Catch: How This Site Actually Works
No sign-up, no payment, no trial period. The games are genuinely free. Here is where the money comes from and what we ask in return.
Read article →Next.js, Express, MySQL, PM2 — nothing exotic. A pragmatic stack chosen for reliability, low hosting cost and fast iteration.
People occasionally ask what runs this site. The answer is deliberately boring: a Next.js frontend, an Express API, a MySQL database, and PM2 for process management. No Kubernetes, no serverless functions, no microservices. One server, three processes, done.
The public-facing site is a Next.js application. Why Next? Because it gives us static generation for game pages (fast, cacheable, good for SEO) and server-side rendering for dynamic pages (search results, category listings) without maintaining two separate codebases.
Game pages use generateStaticParams — all seventeen game detail pages and seventeen guide pages are pre-rendered at build time. When you visit /games/wizardsort, you get a static HTML file served from disk. No database query, no API call. That is why the page loads in under 100ms.
The API is a straightforward Express application with a MySQL database. It handles game listings, comments, contact messages, and admin operations. No ORM — raw SQL queries with parameterized inputs. For a schema this simple (six tables), an ORM adds abstraction without saving time.
The database has games, categories, comments, contact_messages, settings, and admins. Total data size is under 2MB. MySQL is overkill for this volume, but it is reliable, well-understood, and already installed on the server.
Three Node.js processes run on the server: the API (port 3001), the Next.js frontend (port 3000), and the admin panel (served as static files by the API at /admin). PM2 keeps them alive, restarts on crash, and logs stdout/stderr to files.
A single VPS running Ubuntu. Code is pulled from a private Git repository, dependencies installed, Next.js built, and PM2 reloaded. Total deploy time: about 90 seconds. No CI/CD pipeline, no container orchestration. For a site this size, that complexity is not justified.
Every technology in this stack has been stable for 3+ years. None of them will break with a security update next Tuesday. The total attack surface is small, the debugging tools are mature, and any Node.js developer can read the codebase and understand it in an hour. That is worth more than any performance gain a fancier stack might offer.
No sign-up, no payment, no trial period. The games are genuinely free. Here is where the money comes from and what we ask in return.
Read article →A stuttering browser game is usually not the game's fault. Five quick adjustments that recover 60 fps on almost any device.
Read article →After curating nine puzzle titles for this site, patterns emerge. Here is what separates a puzzle you finish smiling from one you abandon in frustration.
Read article →Got a question about something on this page? Contact us — we read it, and we would rather fix a page than have you give up on it.