Case study 08 of 08
Safari Game Portfolio
A game-style WordPress portfolio theme where visitors explore projects as wildlife sightings, earn XP and unlock achievements.
01The Problem
Most developer portfolios look the same, and visitors skim them in seconds.
I wanted a portfolio people would explore, that still stays fully editable in WordPress.
02The Approach
I split it into a classic theme for presentation and a bundled core plugin for content, so projects, skills and testimonials survive a theme change.
Content lives in custom post types, and a small vanilla JS engine turns it into a game. No JS framework, and ACF is optional.
03The Solution
The front page is a single safari console built from blocks.
- Seven custom post types, including projects, skills, testimonials, achievements and easter eggs, with one global settings option.
- Twelve server-rendered blocks under
safari/*, with live previews in the block editor. - A vanilla JS game layer: a boot screen, a HUD, project encounters that award XP, five ranks from Day Tripper to Master Ranger, and achievement toasts. Progress saves in the browser.
- Seed content from an admin page or
wp safariWP-CLI commands, so a fresh install looks complete in minutes. - A static demo build that runs from plain HTML with fallback data.
04The Why
Server-rendered blocks keep the content crawlable and editable, with the game layered on top.
Content in a plugin means the work is not lost if the theme changes.
WP-CLI seeding makes the theme quick to install and easy to test.
05The Result
The full theme and plugin are public on GitHub.