Hey this is Agoston here, I am the CTO aka ‘the developer guy’ at Bonomi. One part of my role at the company, at this early stage, is that I make sure we create our product scalable from the very beginning.
We have big ideas and even bigger dreams and I help overseeing every technical aspect of this small enterprise, and more specifically, the creation of the Bonomi Assistant.
So, what is the Bonomi Assistant? It is a Messaging Assistant tailored to the hospitality industry. It is not simply a chatbot, it is a lot more. It is a platform that enables hotels to help their guests during their whole stay. It is an intelligent tool to answer questions and to help hotel staff. Even more, it is also a marketing system to leverage the power of chatbots.
Bonomi Assistant integrates with many external service providers, PMSs, booking engines, etc. Therefore, it was important for us to choose technologies that help us connect to other services quickly and easily, and also, to bootstrap our development efforts and support us on the long term.
In this blog post, I am going to write about our tech-stack that helps us to achieve just that. I will focus on 3 key things: Javascript/Typescript, Heroku and Wit.ai.
Our tech-stack supports quick setup, easy integrations and scaling up. We need to act fast and so we need tools that help us out of the box without any hassle. For this, we use the following:
The Backend: NodeJS, TypeScript, Express, EJS, Winston, TypeDI, Sequelize
The Frontend: React, Typescript, Bootstrap, Chart.js, Redux, Moment.js
Infrastructure: Heroku, Postgres, SendGrid, Logentries
AI: Wit.AI
When it comes to our technical stack, it is important for us to choose technologies that help us iterate on our product fast. We work as a true startup: we have a lot of ideas, we test out new features very quickly and we are not afraid to move on fast either.
And sometimes, we have no idea what we are doing. And that’s okay.
So how come Javascript? 10 years ago Javascript was a toy language for the web. Today, it is a mature platform with all state of the art features that you would expect.
Ever since the rise of NodeJS, the Javascript community created every tool that any developer can dream about. Most of them are Open Source.
Advantages of Javascript as your primary language:
Our backend service is a mission-critical component. If it’s down, all our chatbots suffer, and anyone who wants to interact with them gets disappointed.
Typescript takes all the advantage of Javascript, and makes it as safe to use as any statically typed language.
What I specifically like about it, is that you can learn it progressively and also adapt it progressively. A new developer who doesn’t know Typescript can start contributing in Javascript, and over time learn Typescript on the job. Javascript can very easily be rewritten to Typescript with adding types and a few other changes.
It even supports dynamic variables. Just add type ‘any’ and essentially it works just like Javascript.
So, is it really worth the hassle? Oh yeah baby.
Typescript makes your code very safe. Ever since we moved to Typescript, I haven’t had a single bug that I had to manually debug for more than 10 minutes. Error messages are a lot more helpful too, and Javascript’s dynamic variable handling won’t swallow type errors.
Advantages of using Typescript:
When our CEO appointed me to oversee all technical aspects of the company, I didn’t have weeks to figure out how our infrastructure will look like. I had to be productive from day one.
For a very long time, I wanted to try Heroku because it seemed like just the perfect tool for a startup. It also runs on AWS instances so it’s very reliable.
What I love about it the most is that with a couple of clicks, you can build up your whole infrastructure. Also, you don’t need to spend hours or days on tasks that has no relevance to you at all. I want out of the box solutions for my little app, nothing fancy just things that make sense when starting up a project. Heroku can do that very nicely.
So far, I am very satisfied with Heroku. We went from zero to hero within weeks thanks to it, and it helped us be productive from the first second.
Advantages of deploying with Heroku:
Our platform wouldn’t be too good without AI in it. When guests want answers 24/7, natural language processing (NLP) helps us understand what is exactly they are looking for.
This is the task that Wit.ai helps us excel in.
What I love about Wit.ai is that it is very developer friendly. You can literally integrate it to your app in a matter of minutes. The support is just great and Wit.ai made sure that the whole service is built around the idea that a developer should be able to work with it very fast and very efficiently.
Furthermore, it is simple and knows a lot. It may not be as fully-featured as its competitors, but it was the perfect choice for our use-case, and it allowed us to very quickly test out the creation of an intelligent chat robot that answers guests’ queries with high effectiveness.
Advantages of Wit.ai:
In a startup, it is of utmost importance to act quickly and scale fast. Javascript, Heroku and Wit.AI helps us to do that, and therefore we believe that these are the perfect tools for a startup that wants to move fast. They were promising technologies in the beginning and didn’t let us down. I cannot recommend them enough.
Join us on this journey, follow this blog for news, insights and behind the scenes of a hospitality startup!