Full-Stack Web · Games 

Browser Arcade

Ten arcade classics and originals, rebuilt from scratch in vanilla JavaScript and HTML5 Canvas — no game engine, no frameworks — backed by real user accounts and a MySQL leaderboard.

Vanilla JavaScript HTML5 Canvas PHP (PDO) MySQL bcrypt auth

arcade.png — nine games, one leaderboard

Overview

What started as a static art-and-documents site grew a full arcade. Each game is hand-written against the Canvas API — no libraries — which kept the bundle tiny and the game loops fully under my control. On top of the games sits a complete authentication layer and a server-side leaderboard, built on a free PHP + MySQL host.

The games

Behind the scenes

🔐 Real accounts

Sign-up and login with bcrypt password hashing, secure session cookies, a CSRF header, and per-IP login throttling.

🏆 Server leaderboard

Scores persist to MySQL via PHP/PDO endpoints and rank players across every game.

🔄 Transparent score sync

The client wraps localStorage so personal-best scores sync to the server automatically, with no per-game wiring.

🎨 Shared polish

A cursor-parallax background (reusing the site's gallery art) and a shared arcade stylesheet tie the games together.

Runs entirely on a card-free host (InfinityFree): static front end plus free PHP/MySQL. A nice constraint — it forced lean, dependency-free code.