3/4/2023 0 Comments Postico herokuVanilla Postgres is virtually always good enough. It might have been cool to experiment with something like TimescaleDB, given the fact that the site is essentially a time series graph of people’s ranks and also that it’s backed by Postgres, but I decided it wasn’t worth the extra overhead of figuring out how to deploy and work with it. I get to use Postico which is a really nice macOS application, and Heroku has first-class support for hosted Postgres instances. Postgres is my go-to database whenever I need one. This includes things like tables containing player info, rank information per player per day, and which players should be associated with which leaderboards. Unsurprisingly, this is where the data for the backend is stored. I honestly don’t think the choice of backend server technology is anywhere close to one of the most important choices when it comes to personal projects - let’s be honest, most side projects will be measuring performance on the order of QPM rather than QPS. In my opinion, pick whatever stack you’re most comfortable with and roll with it. While it would have been cool to write my backend in Rust (the other language I like using for side projects), I suspect the MVP would have taken far more than a single weekend, and I likely would have lost interest in the project before even making. However, I am extremely comfortable with Python and its ecosystem, so that’s what the backend is written in. Python is slow: we’ve all heard it before. Once I am confident that changes are stable, I use Heroku’s CLI tool to “promote” that build to the production app, where it is deployed to the main site. Changes pushed to master are automatically built and deployed to the staging site, which has its own staging database. I actually have two apps in the same pipeline - one for staging and one for production. Heroku greatly simplifies my deployment story. Herokuįor personal projects, I almost always use Heroku, mostly because I don’t want to have to worry about manually managing the uptime of all of the processes / databases involved this is something that I will happily pay Heroku to do for me. I’ve been asked on a number of occasions about the tech stack powering the site, so here it is. I learned a ton building the site taking an idea from inception to production involves so much more than anything taught in school (which is the reason that working on personal projects is an oft-encouraged activity for those trying to break into the industry). To my surprise, over 10k people visited the site on the day I made the post, and I continued to have hundreds of consistent users for weeks afterwards! To top it all off, it still hasn’t gone down yet: a mild reassurance that I at least somewhat know what I’m doing in this profession. I worked on final version of the site during November and December, and made an announcement on /r/leagueoflegends the week before the new ranked season started the following January. While the initial MVP was a single page that graphed our ranks, the final product would need a landing page where anyone could create a leaderboard for their own friend group. This was the perfect task to occupy my free time, since I ended up taking the fall semester of my the final year of my undergrad off. Having a nice domain gave me grander ambitions for the site - I wanted to polish it up and make it available for other League players to use with their friend groups as well. I ended up registering the domain name for fun Zeal is an item you can purchase in the game, and I was surprised to find that such a short domain name wasn’t taken yet. The purpose of it was to graph the solo queue ranking of our intern cohort while we were working there, since like most of the League of Legends population, a handful of us got really competitive about it. Back while I was interning at Riot Games, I spent one weekend throwing together a prototype for what would eventually become zeal.gg.
0 Comments
Leave a Reply. |
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |