EV

Evolve

Browser-based incremental idle game of civilization evolution

Game Servers ★ 1.2k stars Easy setup GPL-3.0

Evolve is an open-source incremental idle game in JavaScript where you guide a species through evolution, civilization, and space eras with prestige resets. It runs entirely in the browser and can be self-hosted as static files.

Key features

  • Deep incremental idle gameplay
  • Self-host as static files
  • Offline progress
  • Many evolutionary paths

Pros & cons

Strengths

  • Trivial to host
  • Extremely lightweight

Trade-offs

  • Single-player only
  • Niche genre

Evolve replaces

Last reviewed Sep 13, 2026 · 745 words

Evolve is a static folder. Hosting it means copying a directory to any web server and opening the page; the whole thing weighs a few megabytes and needs no backend, no database and no runtime beyond the browser. The trap is the save file: progress lives in the browser's localStorage for that exact origin, so switching from http://192.168.1.10 to https://games.example.com shows you a fresh game and your 300 hours of civilisation are sitting in the old tab's storage. Export the save string before you touch a URL. Everything else about this entry is easy.

What kind of game this is

Evolve is an incremental idle game with 1,240 GitHub stars, written in JavaScript by one developer and released under GPL-3.0. You start as a single-celled organism, pick a species from about 40 with different traits, build a civilisation, and eventually reach space, with prestige resets that grant permanent bonuses and open new paths. The prestige tree is deep: a first reset is possible in a day or two, and players who chase every achievement talk about years. It runs whether the tab is focused or not and grants a capped amount of offline progress, so a home server tab left open on a Pi counts. It is single-player and there is no multiplayer to bolt on, which is fine; the reason to self-host is not sharing, it is owning the game and its save on your own hardware and being able to play when the developer's GitHub Pages site is down or changes.

Build it once, serve it forever

The repository builds with Node:

git clone https://github.com/pmotschmann/Evolve.git
cd Evolve && npm install && npm run build

The result is a folder that needs serving. With nginx it is a one-block site pointing root at the build directory, and a Caddy site block is a single line with automatic TLS; the Caddy entry covers that. Static hosting means it runs on anything: a Pi Zero, a corner of an existing web server, a Nextcloud public folder, an S3 bucket. RAM on the server is irrelevant; the 64 MB minimum on the row is the browser's problem, not yours. Updates are git pull, rebuild, copy, and because there is no server state there is nothing to migrate.

Saves: export, import, and the origin rule

The settings panel has export and import buttons that produce a compressed string. That string is the backup. Browser storage is per origin, so a new hostname, a new port, or a switch from HTTP to HTTPS gives you an empty game; the string moves it. I keep a text file of the export in the same Syncthing folder as everything else, refreshed weekly, because a browser profile reset or an aggressive "clear site data" also wipes it. If you want the game reachable on the phone and the desktop with one save, the import string is how, and it takes 20 seconds. There is no cloud sync and there is no account, and that is the point.

Why this beats a public idle game for a self-hoster

Cookie Clicker and its relatives live on someone's ad-supported page, run trackers, and can change or vanish. Evolve has none of that; the Cookie Clicker alternatives page makes the same case. It is also one of the few games in the games category where "self-host" costs literally nothing: no port to open, no process to supervise, no volume to back up beyond a text string. The downsides are the ones the genre carries. It is a numbers-go-up game with a spreadsheet's charm, the interface is dense text and buttons, and if idle games leave you cold nothing here will change that.

What I'd do

Build it on any machine with Node, drop the output behind Caddy on a subdomain of the homelab, and play from there on every device. Export the save on the first day and every week after into a synced folder. Pin the build to a git tag rather than tracking master if you care about balance changes mid-run, since the developer ships tweaks often. And do not overthink it: this is the easiest entry in the catalogue to host, and the only way to lose is to change the URL without exporting first.

Similar game servers apps