LlamaBerry Online Strategy Board Game

LlamaBerry online strategy board game

As the global COVID-19 pandemic began, I wanted a fun way to stay in touch with friends and family. Since my partner and I often play board games with the family, I thought it would be fun to develop an online board game that we could play at a safe distance. The result was LlamaBerry, an online strategy board game in which players compete to grow the most productive berry farms over the course of their farming careers, hiring llamas to help them along the way.

I used LlamaBerry as an introduction to TypeScript (for the UI and in CDK) and especially enjoyed building out the AWS infrastructure in CDK. I deploy the web application to an autoscaling AWS ECS cluster of EC2s (because it's way cheaper to run EC2s than Fargate), but I run Celery workers on Fargate and autoscale the workers based on SQS queue length. The request flow is browser --> CloudFlare --> NAT gateway --> ALB --> Nginx sidecar --> Daphne web server --> ASGI app.

Read more about how I built LlamaBerry.

Technologies Used
  • Django (Python)
  • Channels (websockets)
  • Celery
  • Postgres
  • Redis
  • React (TypeScript)
  • AWS ECS
  • AWS CDK