Messaging bots — Birth of a new craft
Tags: chatbot, instantservice, bernard, opensource
Published: 2018-04-25 17:11:18

---
title: Messaging bots — Birth of a new craft
published: true
description: You might think chatbots are just a phase. On the other hand, I literally bet all my money on it and let me tell you why.
tags: 
  - chatbot
  - instant service
  - bernard
  - opensource
cover_image: https://thepracticaldev.s3.amazonaws.com/i/iwkmm1l27s3nmsvdc18d.jpg
---

You might not have escaped the hype of *chatbots*. You might think it's just a phase that will fade out. On the other hand, I literally bet all my money on it and let me tell you why.

First of all, let's not call it a *chatbot*. Anyone trying to re-create another version of [Clippy](https://en.wikipedia.org/wiki/Office_Assistant) is doomed to fail. Neither Google nor Apple can pass the [Turing Test](https://en.wikipedia.org/wiki/Turing_test) with their assistants. Those little bots we create are by no means here to *chat*. Instead, they are here to provide a shortcut to a service. Which we access through instant messaging.

In other words, it's **instant services**.

Here are a few ideas of services you could access through instant messaging:

- Dog clean-up
- Money investment
- Place finder (with reviews, of course)
- Order and pay in a real-life restaurant

That's not science fiction, those are [100% real-life examples](https://youtu.be/ec77S25kuVs?t=77) in China, where [WeChat](https://www.wechat.com/en/) is so widely used that Apple starts to consider it as a competitor to its App Store.

Now, should you create your own chatbot? See it as websites in the early 2000s. At the time, everyone was wondering if they had to create one. It seemed cool but not necessary. Brands could exist without selling their goods online. Today in China, either you exist on WeChat either you don't exist at all. Even if you're a small farmer selling potatoes at the local market, because people will pay you using WeChat.

The other similarity with the websites is that in the 2000s nobody knew how to make websites. Since then, we invented the front-end developers, the back-end developers, the UX designers, the web designers and so on. There is a running joke of how many JS frameworks are created but that's because the technology and craft is being invented every day and only recently have we found the actual best practices that will last in time. Only now can we teach web development to students with an actual 20-something years of experience.

Don't get me wrong, at the time there was already professional developers. But they (and I) saw fit to use JavaScript to make snow fall on websites at Christmas instead of using it to make SPAs, which have been technically possible all the way back. I don't blame them, the job just didn't exist at the time. When Gmail appeared in 2004 it blew my mind, because it was showing us the true way to make web applications.

This brings an important conclusion to carry onto instant services development. What do we not see? Which are the jobs to create? **What are we, professional developers, doing wrong with instant services development?**

So *With Madrid* was born (no website yet, sorry!). We sell bots and invent the methodology and technology to build them. Spoiler alert: it's got nothing to do with Natural Language Understanding or Artificial Intelligence. It's about creating tools and patterns we can use. It's about factorizing our experience and taking a step back.

However, we're not good alone. We've seen what all the libre and open-source tools accomplished in the world of web development. We consider that it is no good to keep our intellectual property just to ourselves. Instead of hiding it behind a curtain to let people think that we're doing magical things, we need to share our state of the art and put together the community's feedback.

This is why today we are releasing [BERNARD](https://github.com/BernardFW/bernard).

It's a framework to build instant services. The release is really early since it's version 0.2 but we feel it's time to start getting external feedback.

What can it do?

- An abstraction of all platforms (Facebook, Telegram, ...) which still allows to use all specific features
- Integrate into your existing ecosystem by connecting to your business APIs
- Use any external AI service (Dialogflow, wit.ai, Google Cloud Vision, etc)
- Extensible without changing upstream code

But it's not only a technical contribution. The goal is also to share knowledge:

- The [Get Started](https://github.com/BernardFW/bernard/blob/develop/doc/get-started/readme.md) introduces the basics of methodology
- The [Patterns](https://github.com/BernardFW/bernard/blob/develop/doc/patterns.md) section of the documentation proposes design patterns for bot creation

So why writing this? It's a call to all developers out there that are interested into instant services. BERNARD proposes a vision which needs to be challenged and enriched. It needs to be confronted and to find competitors. The BERNARD project is not about the technology, it's about the service. And how to make it awesome.

---

*Cover picture [© Chris McFarland](https://flic.kr/p/a7siMj)*