June 2022

The recommended way to deploy your project to a Heroku server is through oTree Hub.

There are some unofficial tutorials online showing how to deploy to Heroku via git, etc. I discourage using these methods. There are too many possibilites to get a step wrong, and then find out too late that your experiment runs differently on the server from how it did on your computer, or worse, that participants' data was lost. I think sooner or later, most users of the git-based techniques will end up in a situation like this.

Another issue is performance problems. oTree can run quickly on a small inexpensive server -- if your server is properly configured. People who misconfigure their server often run into performance problems. In an attempt to fix this, they often scale up to very expensive dynos, Postgres, Redis, etc.

Before scaling up your server, you should use oTree Hub's performance monitoring system. It can often pinpoint the performance bottlenecks on your site that can be resolved without upgrading your server.

Common concerns and questions

"Isn't it limiting that I only get 2 free sites?"

For most people 2 sites is more than enough. You can reuse those sites forever, for as many experiments and different projects as you want. Even on a single site you can be running many sessions/apps in parallel. And when you launch a new project you can rename a site, e.g. from aaaaa.herokuapp.com to bbbbb.herokuapp.com

"I'm writing my code in PyCharm, rather than oTree Studio"

That is fine. oTree Studio is a separate, independent feature from oTree Hub's Heroku server deployment. Just run otree zip then drag and drop the otreezip file into oTree Hub.