How Mexican Train got started

A year ago at the beginning of the Pandemic, my wife complained there’s no online version of Mexican Train, a popular dominos-based game that her family often plays together in person. I was sort of in-between side projects and learning React at the time, so I quickly registered, spent a few weeks building the game in React using the WordPress API.

We’d come up to NH to stay with the family while we sold our house and the pandemic hit, so we found ourselves “stuck” living in a little apartment with her family (6 people total) in the woods with terrible DSL. Updates were tough, but I got enough of the game online to start playing.

Her folks spend the winters at their home in the villages, a huge retirement community in Florida. Before I knew what happened, my mother-in-law posted the game to the resident’s Facebook group and suddenly the site had quite a bit of traffic. I was thrilled, but also petrified. I spent the next few months struggling to keep the game online, while it grew from a few games a day, to dozens, and then to hundreds.

Mexican Train is very popular in retirement communities. It’s easy-going, a mix of skill and luck, and fun to play while chatting. With a lot of older folks staying home because of COVID, the game caught on. I started receiving dozens of emails daily, mostly from seniors, thanking me for building the game. They’d replaced their in-person games with my online game. It made my heart sing.

I started accepting donations in September using the GiveWP plugin to cover site costs, and people have been very generous. I also set up “offline” donations, and have received many wonderful notes (and checks) from folks around the world thanking me for creating the game, which helped them stay connected during the pandemic.

But I was still using basic AJAX-based polling to get game updates, and it was killing the server. On Thanksgiving, we had 600 games before the server fell over. So between Thanksgiving and Christmas, I moved the site to Spinupwp and Digital Ocean, and I started using Pusher to push changes instead of polling.

On Christmas, we had over 2500 concurrent people playing before I stopped checking. The server never went down. Whew!

Early this year, I wrote a custom API so the majority of the game traffic is no longer using WordPress, but the rest of the site is WordPress, all designed and maintained using the Beaver Builder page builder.

With vaccinations and springtime, games have leveled off to a few hundred a day, but many people still tell me they play daily or weekly, and will likely continue to use the online version. It’s been an amazing journey so far.