Today we are going to make some choices for the application we will be using for the foreseeable future of the project.

Frontend

My initial instinct was starting a new create-react-app frontend but upon further reflection I decided that this makes little sense. Since most of the application will be rendered in a single HTML canvas React wouldn’t bring much to the table. It would be handy for a couple of non-game related pages (login, registers, …) but on the main app there would be a single JSX component wrapping a HTML canvas. So I don’t think bringing react into the mix makes a lot of sense.
So instead I’ll be creating a vanilla JS app drawing on a single canvas.

Backend

I’m going with a simple Ruby on Rails application for the backend. I have some experience building rails apps so this will get me up fairly quickly. I’m still quite new in building API only rails application so this would be a good exercise.

Database

I opted for a simple Postgresql database, I’ve always wanted to play around with something like a MongoDB but I don’t think this project is a good usecase for that. So I’ll stick to a relational DB for now.

Server

For now I’m going to deploy the server old-school style. A simple DigitalOcean box with an Nginx web server. Hosting a Puma application server serving the rails application. In the future when the project has some body I’m probabbly going to upgrade this to deploy on a kubernetes cluster on gce. But for now its simpler to start so I can focus on the actual project instead of the operational side of things. This also means that I will not be working in a containerized environment for the first couple of releases but I do plan on eventually doing this.