In this post, we tell a story of a single question in our community Slack, which led to unforeseen consequences and resulted in the launch of an open-source product for all communities and teams using Slack.
Cube.js has a vibrant and growing community that is quite active on Slack. It's the place where developers share their experience, ask for advice, and connect with the Cube.js team. That's why the discussions on Slack often become the source of inspiration for new features of Cube.js and new examples of how Cube.js can be fit for different uses cases.
A few weeks ago, a community member asked whether Cube.js integrates with Slack Analytics. He just wanted to know a week by week message count on a particular channel. Surprisingly, there was no way to learn this from Slack and it's built-in features. However, it sounded like a no-brainer for Cube.js with its support of various granularities for time dimensions.
So, we decided to build an application that answers all kinds of questions about Slack with data and beautiful visualizations. Meet Slack Vibe 🎉, the open-source analytics for Slack!
Slack Vibe provides various insights into public activity in a Slack workspace:
- Do people share more messages or express more reactions over time? 📊
- How fast is the community or team growing? 🚀
- What are the hottest days of a week and hours within a day? 🔥
- Which emoji are used the most by a particular user? 🐱
These are the questions we can answer in a few seconds just by looking at Slack Vibe.
But hey, remember the Ultimate Question of Life, the Universe, and Slack! What is a week by week message count on a certain channel?
Here's when the real power of Cube.js comes to play. Either by click or via Cmd+K, we can toggle the ultimate filter popup, which allows filtering data by any user and (or) channel while selecting various periods and metric granularities. Job's done!
And here's how it works, technology-wise:
- Slack Vibe takes a ZIP file with public data exported from any Slack workspace, imports it in an embedded SQLite database, and spins a Cube.js backend.
- The front-end app renders the interface with React and visualizes data with amCharts (really, could be anything because Cube.js is visualization agnostic).
- The metrics are queried via API using a Cube.js client library.
Want to run your own Slack Vibe? It's super-easy, and you even don't have to be an admin of any Slack workspace to do that. Slack Vibe is fully ready for self-hosting.
- Do you have Docker installed? Just run
docker run -p 4000:4000 cubejs/slack-vibe:latestand open
localhost:4000in your browser.
- Do you have a Heroku account? Click this magic link, enter the app name, hit "Deploy", and enjoy your own Slack Vibe running in the cloud.
- Do you feel confident running
npm installon your machine? Follow this short guide on GitHub.
When you have Slack Vibe running, just drag and drop a ZIP archive with Slack data. Now your own Slack Vibe is ready, and you're awesome! 🎉
If you like Slack Vibe, you might also like Cube.js. It's the technology behind Slack Vibe and essentially a complete open-source analytics framework. Many developers build internal business intelligence tools or add customer‑facing analytics to applications with Cube.js.
Also, Slack Vibe is featured on Product Hunt, and your upvote will be much appreciated 😇