Worldmill Stack

We use many components to deliver Worldmill. Standing on the shoulders of giants and all that. Even writing it down, I'm a little bit surprised at how many things we are actually using to provide this service.

Major Components

Component Description
kubernetes deployment, scaling and management of containerized applications
helm package manager for kubernetes
postgres database
nginx web server
sops Simple and flexible tool for managing secrets
ghost A full-stack, modern publishing platform
cert-manager cert-manager is a native Kubernetes certificate management controller
prometheus An open-source monitoring system
grafana Grafana is the open source analytics & monitoring solution

These components provide the vast majority of our off the shelf stack. There's a lot of YAML to make these all work for us.

Development Languages

Tools Description
Rust Back End
Javascript Front End
Scala Front End
Python Utilities
Bash Utilities

Rust is a great language for developing high performance, back-end services and my first choice for most things now. Not so great (yet) for front end functionality.

Dan was designing the front-end and doing the core website design. His preferred language choice is Scala.

Neither of us is particularly Javascript competent, just enough to animate our website where required.

All applications need some glue to do simple tasks and we favour Python and Bash for that kind of stuff.

3rd Party Services

Service Description
auth0 Authentication
stripe Payments
sendgrid Mail Server
github Version Control
digitalocean Cloud Hosting

In this day and age, not many people write their entire system themselves. We've written/configured quite a lot of our stack, but it makes a lot of sense to use 3rd party services where possible.

I've left one component to the end, but it's the most important component. All of the above is wrapped around "Foundry" which is the high quality VTT at the heart of our services.

Why?

Good question. You can, of course, go ahead and either host your Foundry on your own equipment or setup your own hosted solution. There are lots of guides out there that enable you to do this fairly simply without requiring too much technical knowledge. Most of the stack above is related to the added complexity of doing this for multiple users.

If you have setup your hosting on your home computer, you'll soon begin to realise that domestic hosting in most parts of the world isn't going to deliver enough bandwidth for a satisfactory Foundry gaming experience.

If you have decided to host Foundry in the cloud yourself, then that will help you overcome the bandwidth problems. You'll still find that there may be advantages which Worldmill offers that you may find hard to replicate. I think I'll write another blog about that...

Future Improvements

We are now setting ourselves to think what additional features we can provide. Can we deliver even more to our users now that we've put in the time and effort to deliver a rock solid platform?

Expect to hear more about our future plans here...

Show Comments