Posts
All the articles I've posted.
-
Polishing and Completing the React Proof of Concept
Polishing the React proof of concept so that it can be a standalone project that is 'finished' and does not take up more of my time. Creating a clean design for a single interactive use case (player placing a road). Creating a clean design for optimistically updating the UI and syncing with server state.
-
Hosting the Settlers Journal On a Static Website
Migrating all existing `settlers-journal` entries into a static website built on AstroJS and AstroPaper (this website). Deploying this static website on my portfolio website. Automating the migration of journal entries by using Claude Code for formatting and frontmatter generation.
-
Revisiting Catan With a Fresh Perspective
Exploring a new React proof of concept that redesigns the UI. The responsive layout is now handled using SVG elements that scale naturally. Using new AI coding workflows that change my approach to this project. Reflecting on how large the scope of building a professional-grade Catan web application really is.
-
Computing Available Actions for the `TURN_SPEND_RESOURCES` State
Improving the automated testing setup I used for local development. Implement checks in `CatanBankService` that ensure a player can make particular purchases. Checking which purchases a player can make before returning available `Actions`.
-
City Placement Validation, Double Resource Collection, and Robber Blocking
Implementing getAvailableCityIndices in CatanGraphService, adding an isCity field to the Settlement model to double resource collection for cities, and updating resource gathering to skip hexagons blocked by the Robber.
-
Implementing Available Settlement Placement Validation in the Graph
Writing getAvailableSettlementIndices in CatanGraph with brute-force validation across all board positions, and reflecting on how sparse graph design and mixed key types made the implementation more complex than necessary.
-
Combining Bank and Graph Checks for Legal Purchase Transitions
Updating the spend-resources NOOP transition to validate that purchasable items can also be legally placed on the board, and implementing road placement availability checks in CatanGraphService.
-
Checking Purchase Eligibility with CatanBankService Before Turn Transitions
Adding a NOOP transition that checks whether any purchases are possible before rolling, introducing CatanBankService for resource-cost comparisons, and fixing an immutable list bug in the player's available actions setter.