Glific - Open Source Two Way Communication Platform for Social Sector Organizations
Glific is an open source two way communication platform with primary focus on helping social sector organizations to interact with millions of beneficiaries concurrently through automated messages with rich media content and manual intervention wherever required. With Glific one can design flows to automate conversations, see how each of the beneficiaries is interacting with the bot and measure engagement.
Donald Lobo, (who is having a great experience in the open source and social sector) is the founder of Glific and we are a 10 people team across the globe working on this product .We have been building this product for more than a year now and recently released v2.0 in July 2021.
So far Glific has empowered 24 NGOs in interacting with a total of 60K+ beneficiaries and exchanging over two million messages. Some of the vivid areas where Glific helped organizations through automated conversation are Hospital bed availability queries in Covid, connecting with thousands of students on a regular basis to build their interest in Art, Maths and other activities, and career counseling for the students. There are more interesting use cases which we keep sharing on our social media accounts.
How things are working behind the scenes
Glific has split tech architecture The core of the Glific is in the Phoenix framework which is built on Elixir. There is a frontend part also which we built in React JS, but we tried to architect the core in such a way that you can connect this with any frontend project.
We are using GraphQL to structure of APIs which is helping us to provide a more powerful and flexible API driven platform. Apart from the CURD operations the GraphQL layer is also helping to structure the subscriptions on various channels with ease.
For the WhatApp business API we are utilizing Gupshup.io for now and the system is architected in a way that we can easily plug and play more BSP like Twilio or WATI. Having said that, we are really happy with Gupshup and their prompt response to all our queries.
For the analytics and data backup purpose we have integrations with Bigquery, DataStudio and Google Cloud Storage. Organizations can create these services accounts on their G-Suite and connect them with their Glific instance.
Apart from that we are using other open source projects like Oban and Flow Editor which makes glific more solid and useful.
On the databases side, Glfiic is a multi-tenant (`Table-based multi-tenancy`) platform and we are using Postgresql.
The Deployment process in Glific is a journey itself but at the end we reached Gigalixir for our deployment, which really helps us significantly from an operational perspective, i.e. we don’t really think about it too much!
Why Elixir and React
When we started the project we knew that the core functionality of this project would be sending or receiving a lot of message requests with very little computation logic. So we were looking for a language which is lightweight and has a really good support for parallel processing.
Also Elixir compiles on a Erlang vm, which is quite old language and has been used via a lot of telecom companies and chat applications like WhatsApp, Facebook (Chat backend) , Amazon(SimpleDB) .
At the last we also wanted to explore and play with a new age technology.
All the above points perfectly fit in the Elixir bucket. This is a good article if you want to know more about Elixir.
React JS is backed by Facebook and it’s really helpful in rapid prototyping. Also it allows us to think about in the terms of components and state which makes the project scalable. React also has a strong community and some solid libraries like Apolo cache to make the GraphQL api calls which are supported by the Glific backend.
Smooth Development Experience
To grow an open source project you surely need the contribution from the community that’s why the contribution and development experience should be smooth for the member who is joining the Glific community. So we always give priority to test coverage and the documentation. We also try to make things automated as much as possible. The setup takes just a few commands. The test coverage is 90% and we keep improving that which helps invite more people to work with us without losing out on quality.
We added some code quality and specs monitoring tools in our CI process.
- Dialyzer and doctor will keep remind you for the specs
- Credo will keep the code quality intact
- Coverall will give the good test coverage details.
- Mix format will keep the linting and other things in place.
All the other resources links are also present on Glific README
This product development journey has been great so far. We are really happy to see the organizations using this platform are making some impact on society.
On the tech side our immediate future plan is to ship a mobile app for our organizations so that they can use it on their phone and communicate with their beneficiary.
We are also looking for a good and bit generic ML/NLP use case so that we can add it to the product.
In case you want to connect with us or reach out to us, ping us on our discord channel.