All projects

One Small Life

A vibe-coded experiment. A free browser game about evolution: guide one lineage from a single cell to the stars.

Year
2026
Status
In progress
Stack
  • TypeScript
  • Phaser
  • Laravel
  • Tailwind CSS
Links
One Small Life's cell editor, "Shape your first cell": a round teal cell beside its speed, attack, defence and sense, with choices of palette, body shape, membrane and feeding.

What it is

One Small Life is a vibe-coded experiment: a free, single-player, browser-based evolution game. You guide one continuous lineage from a single cell through creatures, tribes, civilisations and a planet, and finally to the stars.

It’s a Laravel monolith with a Blade and Tailwind interface, and Phaser runs the gameplay scenes. It’s a work in progress, and it’s free to play in the browser with an account.

Why I built it

I loved Spore growing up, and wanted to see if it was possible to recreate it in the browser.

Technical notes

  • A seeded random number generator (mulberry32 with xmur3) sits behind all generation, so a stored seed replays identically and saves can be migrated.
  • There’s a strict rendering boundary: the Blade interface and the Phaser canvas talk only through a typed event bridge.
  • Saves are checked on the server. The client posts its state, and the server validates its shape, traits, ranges and stage transitions.
  • Creatures are built from layered parts, and each species portrait is built from the same parts at runtime, so the two can’t drift apart.