ChatBottle 2.0 Technology Stack 🛠️

Oleksandr Gamaniuk
Dev Tutorials
Published in
5 min readDec 15, 2017

--

ChatBottle is a cool place to discover the best chatbots. Thousands of users use ChatBottle Search Engine to find the best available bots for Facebook Messenger, Slack, Skype, Telegram, Kik and Amazon Alexa. We value design, simplicity in the code, and getting stuff done.

Prior to starting ChatBottle, I spent many years as a remote software engineer in the US software development industry. I worked on backend systems, high-load web projects, API, configuration management, and deployment and automation.

ChatBottle Full-Text Search 🔎

To implement a full-text search we decided to use Elasticsearch. Elasticsearch is a search engine based on Lucene. It provides a distributed, multitenant-capable full-text search engine with an HTTP web interface and schema-free JSON documents.

There are many ranking factors that affect positions of the bots in the search results. Here is a list of the most important ones.

  • Votes. The more people voted for the bots the better its positions in the search results.
  • Facebook Likes and Mentions
  • Description. Detailed description positively affects chatbot rating.
  • Categories and Commands.
  • Video URL.
  • Product Hunt votes and comments.
  • Last update date. Chatbots that were recently modified on ChatBottle usually appear higher in the search results.

Engineering Team 🤓

The team has a lot of flexibility in how they organize around their work, but as a company, we set quarterly goals and encourage iterative sprints. We use Bitbucket for code reviews and bug tracking and Google Apps for email, docs, and spreadsheets. We’re heavy users of Skype — and many team members use Trello as bug reporting system.

Technology Stack 🔧

We deployed to Azure App Service from the start. The main app servers were written in ASP.NET MVC, and we migrated to Microsoft Azure Virtual Machine for the public launch. The main reason why was the need to support multiple web sites on the same server.

Our web app’s UI is written in JavaScript, jQuery and Bootstrap 3. For the bindings, we use Knockout js.

The ChatBottle backed end is implemented using ASP.NET MVC and C# 6.0. The web site is hosted using Internet Information Services (IIS) 10.0 and Windows Server 2012.

Emails, Analytics and Storage

We used Azure Scheduler for tasks, Azure Standard Storage for static assets. SendGrid is great for sending transactional emails, they provide a free plan if you don’t plan to exceed 14k/mo.

https://stackshare.io/chatbottle/chatbottle

DevOps tools 🏗

The source code is managed using Atlassian Bitbucket. We use Mercurial as a source control service. The source control client we really love is TortoiseHg (Workbench) by Tortoise. The one-click website deployment is done by awesome Visual Studio 2017.

Hosting Expenses 💳

There was a database server that we used to store information about chatbots and users. From the very beginning, we’ve been using preferring NoSQL databases, in our case MongoDB. The database virtual machine (Ubuntu) used Azure Premium Storage as a persistent storage. We decided to start with a 128GB SSD disk, it cost us around $20. The web service usually cost around $42 and the Ubuntu server where we run the database server is another $45.

Costs by resource

ChatBottle Users Map 🗺️

We use Intercom to create a map of the most active users at chatbottle.co. The map has some limitations and it’s was a bit tricky to integrate it with. But this is the best way we found to geographically visualize the ChatBottle audience.

ChatBottle Audience Map

ChatBottle Bot Review Process ✅

Yes, we do review each submitted chatbot manually. It takes time and sometimes there is a chance that the users can see duplicates or disconnected bots. But do our best to make sure all the listed bots are operating and have a correct description.

We pay attention to the following:

  1. Does the bot work or not?
  2. Is the description accurate and detailed enough?
  3. Is the same bot already exist?
  4. Are the categories relevant?
  5. Is there a link to Product Hunt?
ChatBottle admin review dashboard

BIG Announcement 🔮

We would like to give developers an opportunity to drive more users to their chatbots. To do that we’re introducing Bot of the Day (#botd) and Bot of the Week (#botw).

How it works

One bot is featured for a whole day as Bot of the Day. The bot is visible on every page for 24 hours and every ChatBottle visitor has a chance vote for the bot.

Then, at the end of the week a chatbot with the biggest number of votes is automatically promoted to Bot of the Week. In this case, the approach is the same. The winner is featured at every ChatBottle page for 7 days as Bot of the Week.

This #botd & #botw project, and we’re approaching the chatbot discovery problem. We think the chatbot developers need new mechanisms for attracting new users and spreading the word about their bots.

Submit your #BOTD on ChatBottle 🚀

Submit #BOTD on chatbottle.co

Links

About the author.
Alexander Gamanyuk is CEO and Founder at botmakers.net, a chatbot marketplace focused on ManyChat and Chatfuel bot templates.

--

--