About
This page explains the Settlers project I’ve set out to build, and why I document my progress.
The Project
Create a standard web application that lets up to four users play Settlers of Catan together on their personal devices.
- Frontend UI (Angular, with a React detour)
- Backend Server (Java / Spring)
- Postgres Database (In progress)
- Social Login (Maybe…)
Each time I on the Settlers project, I make a journal entry on this site (1 blog post == 1 coding session). I do my best to record every session, but seeing as this is a passion project, and I work as a professional developer full-time, I capture maybe ~80% of the notable stuff.
Journaling and looking back on my progress is more interesting to me than the app at this point, and I think the app is really interesting.
Motivation
Why would you take time out of your day to build this? There are already online Catan websites!
Ok true, but building this website allows me to demonstrate and sharpen my skills across the entire software development lifecycle and tech stack. We can build in the open and grow our digital garden.
More importantly, Catan is a fun game and I get to laugh at the bad approaches I started with 2+ years ago. This project may never get completed, but it will become more beautiful to me with every iteration. :)
Side Quests
I’ve worked on this sporadically for the past two years, and I’m probably 40% done with the project. It’s a total failure, right? No! It lets me dive into niche technical problems, explore misc technologies, and otherwise make design decisions I cannot justify at work.
I’ve explored dozens of technologies, hosting options, frontend frameworks, authn/authz systems, networking protocols, security concepts, distributed system principles, and design patterns while building Settlers. I’ve detoured to entirely new IDE setups (Neovim, Treesitter), running local LLMs within agentic coding harnesses (Copilot), and using Ubuntu as my daily driver.
These detours are rarely documented in this journal. I mostly focus on actual app development progress here. They are often documented in my blog posts, though.
This project has also been a playground for trying many different AI workflows that bloggers and tech leaders have shared. So far, Claude Code paired with spec-driven development and Beads for memory management has worked best for me.