There are a lot of JavaScript frameworks right now. You will see a lot of articles on how one framework is better than the other. This is NOT about why Vue is better. This story is about lessons learned and the practices we followed while building Chatwoot.
Chatwoot is a customer support tool for instant messaging channels which can help businesses provide exceptional customer support.
We are witnessing a paradigm shift in customer support — we can call it Customer Support 2.0. Most businesses are still stuck in the email era while their customers are on Instant Messengers. They now demand instant replies from businesses.
Chatwoot is aimed at bridging this gap. We are help businesses to be present where their customers are — a one-stop solution for businesses to manage all their customer support actions over Instant Messengers from one place. No more dabbling with multiple websites.
We started the discussion on building Chatwoot a year back. Like most of the developers, we also had a doubt on what framework to use. We were able to cut short the discussions on frontend frameworks to either React or Vue. We decided to move with Vue seeing the simpler syntax and rich documentation and we never regret it.
Started with the boilerplates in the awesome-vue repository. The basic setup has following components:
Getting started was easier. The real challenge started when we trying to implement features. We had to build all components from scratch as no-one was using Vue-Foundation combo on a large scale. We decided to build the components by ourselves.
Vue — Emoji Picker
Emoji Picker
One of the major takeaways of this decision was this emoji-picker. Emojis are rendered as unicodes by default. It supports both SVG and unicode. We are planning to open-source it soon.
One of the good things I have seen in Vue compared to React is the Vue Ecosystem which consists of Vuex and Vue router. Following are the list of packages we have used.
Response Interceptor
We have separated Frontend and Backend apps as standalone services, which helped both teams to work in isolation. All the communications were made through REST API Calls. Updates were easier to handle.
Set environment variables in your travis project settings console.
travis.com — Project Settings — Environment Variables
We had credits from FBStart program which helped to launch the product with almost zero cost. Stripe Atlas with Chargebee helped us in setting up billing and subscriptions with very minimal effort.
It has been a year with Vue. The good parts I found in Vue are as follows
Don’t forget to try Chatwoot and let us know your feedbacks.