H&A Play
Eight games, one private club for iPhone. Made for playing together.
H&A Play brings eight card, word, and board games into one private iPhone app. Invite friends to a live table, return to an unfinished match, and revisit the final board from your game history.
The collection includes my original pet-adoption game Perfect Family, six familiar games, and a two-player Rent Racket playtest. Most games also let you practise against Miso, the built-in computer opponent, when nobody else is around.
Highlights
- Play live with friends
- Practise against a computer opponent
- Revisit finished games and compare results
In action



The games

Perfect Family
Adopt pets and arrange them beside neighbours they like. Keep the household happy and compete for achievement Ribbons in the club’s original game.

Skyjo
Flip, swap, and clear matching columns in a twelve-card grid. Lowest total wins.

Railroad Ink
Build road and rail networks from shared dice rolls across your own seven-by-seven map.

Five Crowns
Arrange your cards into matching sets and sequences over eleven rounds. A different card rank becomes wild each round.

Quiddler
Make words from letter cards, with a larger hand each round. Compete for a word bonus and challenge words you think are invalid.

Bananagrams
Race to use all your letter tiles in a connected crossword. Everyone builds at once, taking fresh letters and rearranging their own grid.

Blokus Duo
Fit your pieces into the board, touching your own colour at corners and never along an edge. Rotate and reflect each piece to find its place.

Rent Racket Duel
A two-player adaptation of Rent Racket. Buy properties, collect rent, and use maintenance problems and political manoeuvres to disrupt your rival.
Eight games, different kinds of thinking
The collection moves between different kinds of play. Skyjo is a gamble over hidden cards; Five Crowns asks you to organise a growing hand into sets and runs. Quiddler scores words made from letter cards, while Bananagrams has everyone rearranging their own crossword at once. Railroad Ink connects a transport network, and Blokus Duo contests space on a shared board.
The two original games add something different again. Perfect Family turns the personalities of adopted pets into an arrangement puzzle. Rent Racket Duel adapts a physical landlord-satire game into a two-player table of properties, rent and political interference. Bringing them together meant supporting different turn structures, scoring systems and board interactions inside the same club.
A club that continues between games
Friends, invitations and unfinished tables belong to the club rather than to one game. An accepted friend can be invited by name, or a private invitation link can bring someone to a table. Leaving the board keeps the match available to continue later. Results record the game that was played, so a low-score card game and a high-score board game can both report their winners correctly.
Practice uses Miso, the built-in computer opponent, in every game except Railroad Ink. Friendly competition and practice are recorded separately: beating the computer does not become a win against a friend. The history and rivalry views give repeated games some continuity without requiring everyone to be available at the same time.
Making a tabletop fit a phone
The iPhone boards use SwiftUI, Apple's native interface framework. In Perfect Family, adopting a pet first creates a local preview: you can inspect how the household changes, undo your choices, and commit the turn when ready. Railroad Ink lets you inspect individual score components. Bananagrams preserves the positions of physical letter tiles rather than treating the crossword as a block of text.
On a small screen, players need to understand their move and reach its controls without losing sight of the board. The games have individual artwork and layouts while sharing the surrounding library, invitations, accounts and results.
Keeping the table, and the result
The backend runs on Cloudflare Durable Objects. A persistent table holds its players and connections, while each match gets its own game state. The server validates and saves moves; reconnecting reads the saved position, and repeated commands are recognised so a retry does not become a second turn. Rematches start without making everyone rejoin.
Finished games also save a viewable final board, not just a score. History can reopen a household, rail map, card layout or completed crossword in a read-only view. Saved observations respect each player's view of hidden information. Older results that never stored a board say so explicitly, rather than presenting a later rematch as the game that was actually played.
