Raphaël: Hey folks, and welcome to the
small tech podcast from Ephemere Creative.
I'm your host Raph.
And today we're going to talk
about data and dashboards.
If you like the work that we do, I'd
really appreciate it if you hit that like
and subscribe button on YouTube, or if you
subscribe in your podcast app of choice.
Every little bit helps.
We're a tiny team and we could
definitely use the support.
So today I want to talk about three
different types of dashboards and
data and how we build them, why we
build them, the things that we use
to build them, and they roughly break
down into three different categories.
So it's analytics data that you
generally will use off the shelf, SaaS
analytics tools to build dashboards for.
The other one is when you use BI
tools to create dashboards that
include analytics data and internal
data operations or application data.
And finally the last one is application
dashboards, things that you want
users to interact with and visualize.
So for off the shelf analytics we're
generally talking about things like
Google analytics or Mixpanel or Amplitude.
These are the things that you're going
to use primarily internally, there
are maybe a couple weird edge cases
where you could embed graphs from these
different tools into a public facing user
interface, but for the most part, this
is for your team to understand how people
are interacting with a product, with a
website, something along those lines.
These tools are usually really easy
to get started with you add a snippet
to your website or your application.
Sometimes you need a developer
to integrate with your
application code more tightly.
Maybe identifying users and submitting
events with metadata about those events.
But it usually doesn't take a whole lot
of time to get started and they usually
have some mechanism to say, all right,
I want this event plotted out over time.
Maybe grouped by certain things.
So you want.
Users of a certain type who
were clicking a given button.
You want to know, you want to compare
these different user groups over time
and see if there's any trends you
want to see if there's one that clicks
the button more often than the other.
That's a great reason to set up those
kinds of dashboards, where you can just
quickly get an overview of how your
application is performing, how your
features are performing and understand
your product and your user base.
So next let's talk about
BI data and BI tools.
These tools vary in their structure and
usage and that's because BI business
intelligence, that can mean a lot of
things, that can include the analytics
data from the previous section, but it
usually also includes more internal data.
Because it's not just about your
application or your website, it's
about your business as a whole.
You want to understand how, for
example, usage of your application
translates into dollars.
And if you're going to do that, you either
need to find a good way to track dollars
in your application, but that doesn't
always make sense so you want to bring
in data from, for example, a payment
processor like Stripe or Braintree.
You probably also want to understand
how your features correlate
with your work internally.
So you might want to bring in data from
an application like Assana or click
up where you manage your productivity.
And you can start tying all of these
data together into a single data
warehouse where you can visualize and
understand the correlations between
these different types of data to get a
better sense of what's happening, that
leads to more dollars or fewer dollars.
And are you actually using your
resources efficiently as a business?
So the tools that you might want to use
to build out these kinds of dashboards
are well, you'll need a database.
You'll need a place to store your data.
For the scale of projects that we work on.
And given that this is the small
tech podcast, we find that a Postgres
database is usually fine, but there
are tools that are specifically set
up for this kind of data, warehousing
to ingest huge chunks of data.
You can think of tools like Snowflake
or Google's big query, or aWS Redshift.
There's plenty of them out there.
So I talked about how you might want
to bring in data from tools like
Stripe Braintree, Asana, ClickUp.
You can even bring in data
from your marketing tools, like
your Google ad words, AdSense
Facebook ads, LinkedIn ads,
all of this other stuff.
And to do that, you will either
need to hire some engineers to deal
with it, or probably more sensibly,
you'll want to use some tools that
already provide that functionality.
We have some experience setting up
a tool called FiveTran, which is
pretty neat, pretty, fairly priced
connects with a lot of stuff.
Basically allows you to connect to your
different tools, point it to a database,
and it takes care of normalizing all
of your data, making sure that it's
in sync, making sure that everything
is updated on a regular basis.
And yeah, it makes it really easy
to pump all of your data into one
database that you can then use to
build your custom BI dashboards.
There's a neat open source
tool called AirByte as well.
We like to use Metabase to
actually produce that dashboard.
It's just a really neat tool.
Because it's open source we just
deploy it onto our own servers
and use that to build dashboards.
But there are other alternatives, like
QuickSight or Google Data Studio or
Tableau or plenty of others out there.
Some of them can get
pretty pricey pretty quick.
Google data studio I find is a
neat product in that you have
access to it if you're already
using the Google workspace tools.
And I don't actually know what it
costs because whenever I've used it, I
haven't run into any pricing questions.
I, so I get the sense that
you don't need to pay for it.
Maybe there are advanced features that
you do need to pay for, but yeah, for
that reason, it's a pretty neat one.
Just before I forget.
Another thing that we like to bring
into these types of databases and
these dashboards is accounting.
We use zero for that sort of stuff.
And I found it pretty practical
to have that kind of data
in this type of dashboard.
With these BI tools, everything
we've talked about so far
is really internal data.
It's stuff that you want to understand
to get an overview of your business.
But the thing about them is that you can
visualize any kind of data with them.
You can visualize your
internal application data.
You can visualize your analytics data.
If it is in a database.
You might get it in there
using a tool like segment.com.
And if you do have that data in
there, there are some cases where
you want to display that data
back to a user of an application.
Now tools like Metabase do provide
a way of filtering that data so that
you can just provide a dashboard
that is for a given user, for
example, or given organization.
So you can actually use Metabase and some
of these other tools to embed analytics
into your user facing application.
That being said, you can't.
Customize how they are displayed to
the extent that you could building
custom tools and custom dashboards.
So when I talk about building custom
tools and dashboards, essentially
what I mean is you're not using off
the shelf tools for visualization.
And there are a couple of reasons
why you might want to do this.
Hey, you might need to have a
really custom user interface, or
it might need to be tightly coupled
with an existing user interface.
Let's say you have a bunch of sensor
data from an IOT platform and you
have a custom platform where your
users can manage those sensors.
They can interact with the data.
They can see real-time
updates, that sort of thing.
And you want to show them the data
and allow them to graph it and
visualize it and manipulate it.
Maybe annotate it.
All of that functionality is stuff
that you might be able to get 30, 40%
of the way there with the BI tools,
but it will never be as smooth as if
you build it out yourself and really
integrate it deeply into the code that
you're building for your platform.
So that's exactly what we
did for one of our clients.
They have sensors that are out in the
field, monitoring various metrics for
a given use case, and they needed their
clients to be able to interact with this
data, to annotate it, to say at a given
time, this thing was happening and we
can see that there's these different
changes in the different metrics.
So to do that kind of dashboard,
you're generally going to want
to use a charting library.
You could build something yourself but
generally you would use an existing
charting library because building that
from scratch is going to be a lot of work.
So we've used one in the past called am
charts, which is really customizable,
flexible, easy to use and very powerful.
You can do a lot of stuff with it.
We've also built charts and dashboards
on react, native, using a Victory
chart's victory pie and victory.
I forget what the other victory
charting libraries are called, but
it's all under the banner of victory
and they've been pretty great for us.
They usually still offer you a variety
of user controls, animation, that sort of
thing that you can tweak to your use case.
And the thing with them is that when
you're building your own dashboarding
system, you can really customize
things to your user specific case.
You can really make it smooth
and flow very well for that user.
The trade-off of course is the
time it takes to get to your first
graph and the cost of developing
these types of dashboards.
So if you really need things to be smooth,
tight, and designed for a very specific
use case, you might want to go this path.
If you don't, then you might want
to look at BI tools and an existing
sort of off the shelf platforms.
Before we wrap it up, I will
talk about a couple other tools
that you might want to consider.
If you're going to build
your own custom dashboards.
If you're going to build around time
series data, there are a variety
of time series databases out there.
But the one that we found most
practical in this small tech
context is called Timescale.
And the reason that it's practical is
because it's just a Postgres extension.
So if you're already building an
application on a Postgres database, it's
really easy to get started with Timescale.
You can integrate it with tools like
Hasura, you can use other libraries
like Cube JS to make your data
available for your dashboarding system.
It makes it really easy to
build around that type of data.
Of course, you don't
have to use timescale.
You can just use straight up Postgres,
you can use Mongo, you can use basically
whatever database you want, because
a lot of the tools out there are
built to work with a variety of them.
But specifically for time series
data like sensor readings from an
IOT device, timescale is a really
great option to get started with.
Alrighty folks, thanks for listening.
If you enjoy this stuff please like and
subscribe on YouTube and make sure to
subscribe in your podcast app of choice.
And leave us a review.
It would be so helpful for us.
We'd love to hear about why you
like the podcast to what you want
more of what you want less of.
Is there anything that you'd like to
talk about with me on the podcast?
I'm really into the idea of talking to
you about the things you have learned
as you build a small tech business.
Also make sure to subscribe
to our newsletter.
We are going to be sending you
tons of great info about how
to build small tech products.
Everything from videos, blog posts,
and even the podcast episodes
that you might have missed, but
surely you didn't miss any right.
So go to smalltechpodcast.com and click
the newsletter button in the navbar.
That'll take you to the right spot,
and we'll see you in your inbox.
That's it for this week's episode and we
all want to do some good in the world.
So go out there and build something.