# PokèVerba

A daily Pokémon crossword with a collection of the Pokémon you catch and a blog, in Italian and English.

Stack: WordPress, PHP, React, Vite

## Links

- Demo: https://sbustiamobro.it

## Context

A crossword about Pokémon that changes every day, played in the browser. The site will carry ads and affiliate links, so the use is commercial: no official text or image may appear anywhere, and every clue has to be our own.

## How it is built

- A classic WordPress theme for the whole site (home, blog, pages) and a plugin with its own tables, a REST API and WP-CLI commands.
- A React app built with Vite, embedded through a shortcode: the grid, the Collection of caught Pokémon, achievements and coins.
- A server-side generator lays out 10 to 15 words in a grid of up to 15 × 15, seeded by the date, with no Pokémon repeated within 30 days.
- Italian and English without a multilingual plugin; progress lives in the browser, in local storage.

## Key decisions

### The answers never reach the browser

The app only knows how long each word is. Checking goes through the API, which judges whole words only, so the Check button never gives letters away one at a time.

### Original clues composed from facts

The generator composes each clue from facts such as type, generation, height and weight, imported from PokéAPI, and rejects any clue that names the answer. No official text is ever copied.

### One puzzle a day, cached until midnight

Today's puzzle is cached until midnight in Rome, when the next one is generated, so the server does the work once a day.

## Outcome

Live at sbustiamobro.it and at version 1.18 in October 2026, with a regional crossword, coins and achievements.

Emanuele Del Monte, Frontend Engineer: https://www.emanueledelmonte.it/en/
