← Back to the field journal
PROJECT 01 / Play / independent

Pawzzle.

A small puzzle. A very good girl.

A daily photo puzzle inspired by my dog, Manda. Her photographs became a little game to share.

  • Next.js
  • Redis
  • Cloudflare R2
THE DAILY PAWZZLE№ 001

Select two tiles to swap them. 0 swaps

Playable sample · illustrated tiles
01 / PURPOSE

What it makes possible.

Pawzzle began with Manda, my dog, and the idea of turning her photographs into something playful. It pairs a shared daily swap-tile challenge with space for players to bring their own photographs.

  • Three grid sizes: 3 × 3, 4 × 4 and 5 × 5.
  • Seeded daily puzzles, personal photo uploads and leaderboards.
  • Installable PWA with offline play after the game has loaded.
02 / ARCHITECTURE

Under the surface.

  1. 01

    Next.js and React render the game and daily challenge.

  2. 02

    Redis sorted sets keep leaderboard scores ordered; category sets support quick membership checks.

  3. 03

    Client-side image compression reduces upload size before photographs reach Cloudflare R2.

03 / ENGINEERING DECISIONS

The deliberate choices.

  • Use swaps rather than a sliding empty square so every shuffled arrangement remains solvable.
  • Give everyone the same seeded daily board while keeping custom puzzles separate.
  • Keep the portfolio demonstration entirely local and independent of game accounts.
04 / OUTCOME & STATUS

Where it stands.

A working daily puzzle application with multiple difficulty levels, custom photographs and offline support. The miniature here demonstrates the swap mechanic using an illustrated sample.

Last commit ·

NEXT IN THE JOURNALgitinit