🎉 Hooray! Two years of Bot.tf
It still feels like yesterday, when I realized how much demand there was for automation of trading in Team Fortress 2 and started working on the first prototype of Bot.tf. Trading bots were already around at the time, but it was quite obvious that people did not quite know how to run and maintain them. And when you finally got it working you had this scary command line prompt where nobody really knew what was happening. Not to mention that most of these bots were poorly written, infested with bugs that the developer themselves did not even know about, until it got exploited and the damage was already done. So my idea was rather simple: a trading bot, but as a service (SaaS) and with a friendly UI, so Bot.tf was born. 👐
On June 2nd it has been two years since the launch and during this time I have learned a lot, I am not only writing this post to celebrate Bot.tf’s anniversary, but also to share with you my experience with Bot.tf, why I did certain things, the big mistakes I have made, as well as what is up next in the future!
🎨 Initial design philosophy.
During the brainstorming-phase of the project there were several design decisions that I have made — I have listed some of them below in no particular order, most of them I still stand behind, but there are a few of them I have changed my mind on.
- It cannot be free;
The core purpose of Bot.tf is to provide the highest quality trading bots around — premium. Costs are involved when you want to provide such service, in my case the costs consist mainly of server costs, the money I have to deposit to every new Steam account I create for the service and I have to take any unexpected costs into account as well. Of course I could cover them myself, but it would not make sense to do so.
Another reason why it cannot be free is the fact that Team Fortress 2 was not ready for mass scale automation at the time. A sudden presence of hundreds of automatic trading bots would probably severly impact the economy negatively, due to the panic this may spread. I knew that I had to introduce these bots to the mass slowly and one way to do it is to add a price tag to it.
It is odd to think, but I actually never made Bot.tf with the intention to make a lot of 💵, it was actually made for a few friends to run their bots and to easily manage them, but I thought I might as well open it to the public for everyone to enjoy and perhaps earn a little bit on the side if I was lucky. —Guess what? I have been more than just lucky. And for that, I am forever grateful.
- It has to be a win for both the user and me;
Perhaps the primary reason why Bot.tf is so successful is the fact that in the end, it is both a win for the user and me. These trading bots are designed to automatically trade for the user and generate profit for them. Especially now with the introduction of autopricing, the user quite literally only has to add the items they want the bot to trade to their configuration, sit back, relax and watch their profit grow every day. The bot can automatically determine the right prices for them and generate profit.
Naturally, the win for me is the monthly fee that users pay for the service. The awesome thing about this win-win model is that it stimulates both parties to benefit each other. In simpler words: it is in my best interest to make sure that the users have the right tools to generate as much profit as possible and it is in the user’s best interest to pay for my services and continue using them.
- It should have as little staff as possible;
It was apparent to me how much responsibility I would have, because the items of other people would be stored on Steam accounts that I own. People trust me with their items, so in return I should never betray their trust. In order to do so, I would need as little staff as possible — which is going very well so far, I am still the only staff member — reason being that I simply do not trust anyone else who can handle the temptation of borrowing other people’s items without their permission. One would ask: “But Danny, how are you so sure you can handle it?” 😮, which is an excellent question. To which I would answer that I have handled it for over two years now and to be frank, I never really had this temptation. I am happy with where I am right now and I know that I am more than capable to get the things I want without stealing a penny, not to mention that thinking long-term is much more of importance to me than short-term.
Many keep asking me how I am able to manage this whole project just by myself and even call me a “one-man-army”, but the reality is that I am usually not even interacting with anything, I have designed the sytem to manage itself as much as possible, even in case of a failure it can fix itself in most cases. The only real thing I do have to do myself, is answering the support tickets I receive and of course continuing the development.
- It should be available to everyone; rich, poor and everything inbetween;
I really disliked the idea of creating a service that is only accessible to a small wealthy group of people. I believe that everyone should be able to get and use one of my trading bots, that is why I am always trying to find the perfect balance for everyone. A great example of this balance is the autopricing I have introduced, these are available for $USD 0.75 per activation or significantly cheaper when paying using Mann Co. Supply Crate Keys. I have specifically chosen for a pay-per-use model instead of a subscription based model or a large one-time payment, because this pricepoint is affordable for everyone, the only difference is that wealthier people are able to use the autopricer more frequently , which I find to be fair and balanced.
— Now, when I say that Bot.tf should be available to everyone, I do not literally mean everyone. A trading bot is not a feasible option for a user who just stepped a foot into the trading scene of Team Fortress 2, this explains the price of $USD 9.99 per month. — It is a paywall to protect these users.
- It should be reliable;
What is SaaS if it is not reliable, down or even not working most of the time? Bad. That is why Bot.tf is constantly being monitored, almost everything in the infrastructure is redundant and hosted on a reliable platform in Europe. I am proud to announce that Bot.tf has an uptime of 💯 percent the past 365 days — excluding any scheduled maintenances.
In rare events an individual bot would stop working for a couple of hours and while not mentioned in the SLA, I have always offered a compensation for the time lost after I had promptly fixed the issue.
Of course, reliability is not only about the technical side, it is also about the support you provide to your users. As promised, in almost all cases I answer and resolve tickets within 24 hours, sometimes even within the same hour. Since I have setup the Discord server, where I am very active on, the number of support tickets have dropped significantly and the users appear to be much more pleased. However, there was a period where I was hard to reach, you will read about the consequences of this later in this post.
- Automating pricing of items is dangerous;
I was convinced that automatic pricing of the items (autopricing) would be dangerous for Team Fortress 2’s economy. Based on following the trend of the prices, you could conclude that the prices were dropping rapidly because of the trading bots — in reality they were dropping because the prices did not correspond with the supply and demand, trading bots basically helped correcting the prices. I believed that if autopricing would be a thing, that all items would be worthless in no-time. To this day I still believe it, however not too long ago I realized that there are actually two ways of doing autopricing. One way is to undercut, which essentially means to always be the lowest seller and the highest buyer, this will in fact make items worthless in no-time. The other way is to match the most common prices, which is the right way and will not affect the economy, since the bot users would price these items the same. Because of this realization I have implemented the autopricer and it appears that many users are happy with it, since they are saving several hours a day.
- It should advertise itself;
When you create an outstanding product, the people will notice it and purchase your product. I would like to think that it is exactly the case with Bot.tf. I have in fact rarely ever actively advertised this project, people know about this project because they simply love it and share the word or because they have traded with one of the bots and figured out it is from Bot.tf. As mentioned before, I never really intended for this project to make me any big bucks, I was simply focussed on creating a great product.
- I have to enjoy what I am doing.
While you see most companies pitch “We only care about happy customers”, the real thing you should care about the most is happy staff. Because the equation is quite simple: happy staff = happy customers, however happy customers does not necessarily mean happy staff. Now, since I am the only staff member, that means I have to take good care of myself, which is going swell so far. Although, there was a time where I was rather depressed which lead to poor communication…
💬 You hear it often, but communication is key. It’s true.
So about that time… I will not go into details why I got depressed, but I am sure that at some point all users could notice it. There barely was any development (new features, non-critical bugfixes and other enhancements) and customer support response times were unacceptably long, the project entered a state of stagnation. However, as always, I was prompt to fix any critical bugs and issues. After all, I have made a promise to keep the service running and functioning properly at all times. But this does not excuse me for the fact that I did not communicate the issues I was having with my users and I am incredibly sorry for failing you. I even got reported for my absence:
“I have submitted support tickets asking for my ownership back (simply to retrieve my items and be done with their service), messaged the owner on steam, and commented on his profile multiple times with no response. I do not know if something is happening in real life for him, but I haven’t got any response of any sort. I would be fine if he simply replied with “I’m busy, I’ll help you out in like a week” but he’s been completely silent.”
— Source: SteamRep.com report
Nevertheless, the past is the past and there is nothing I can change about that unfortunately. What I am able to do, however, is to improve things in the present and future. So lately I have been taking better care for myself, pushing out bigger and better updates regularly, responding to support inquiries in super speed and the results are noticable immediately. Bot.tf is blooming like never before and it has never been such a joy to serve these people. To make things official, I hereby promise that such a state of stagnation will never happen again, at the very least, not without communicating it to you first.
🔮 So what about the future?
Two years is actually still quite young, I do not plan to stop or sell this project any time soon. I am having a blast working on this project, it is incredibly rewarding to see happy users and to see my users succeed. As for the future, I have a few things I really want to add and improve, but I won’t say too much about these — However, most of the days that I spend working on Bot.tf, I tend to implement ideas and suggestions from users in the Discord server, so if you have something you would like to see, hop in the server and let me know!
All in all, the future is bright and Bot.tf is constantly evolving. And soon, I will dominate the world. 😈 *Ahem* Excuse me, this is not MvM… or is it?
👋 That is it for now!
Thank you for reading and thank you to those who have used and/or supported this project or even me personally in any way. Do not forget to join the anniversary giveaways on the Discord server!
Special thanks to Alex, Volcyy and IceKwibby.