- Connected to live data
- Combined with other compelling visualizations and filtering components for a dynamic experience
- Distributable as an application you can share or embed anywhere
- Create your infographic and export it as a
.pngimage - Get your data in Domo
- Create a Domo App that dynamically inserts the data on top of your
.pnginfographic image
Step 1: Create your Infographic Template
For this example, lets say you’re in real estate and want to regularly share key insights on the housing market in your area. You could create an infographic in a great tool like Canva, duplicate it for each zip code, and manually update the data for each as it changes as shown below.

Prepare infographic template
To prepare your infographic template, you’ll want to delete all the pieces of the infographic that you want to be dynamic, but before you do that it’s important to note the unique styles associated with those components. For example, we’ll want to replicate the font and text alignment properties set in Canva for the title as well as the description components of our initial infographic. Let’s note these down.



- Title:
- Font: Moontime
- Alignment: Center
- Color: #000000
- Description:
- Font: Raleway
- Alignment: Center
- Color: #000000

.png file. If you’d like to follow along for the next steps, you can download this infographic template here.
Step 2: Setup Data in Domo
In this example, we will setup data in a Domo Webform that we can edit whenever we would like. However, Domo has a vast array of tools for integrating many different sources of data. A subsequent step in this project — but not covered in this tutorial — would be to setup an automatically refreshable data pipeline for the real estate data. To add data to a Domo Webform, just navigate to “Data” > “Connectors” > Search “Webform”.

| city | zip | num_homes_listed | avg_dom | median_list_price | price_change_pct | market_type |
|---|---|---|---|---|---|---|
| Bend | 97701 | 73 | 127 | 725000 | 48 | 36 |
| Bend | 97702 | 114 | 96 | 842000 | 45 | 38 |
| Bend | 97703 | 105 | 129 | 1500000 | 46 | 36 |
| Bend | 97707 | 42 | 109 | 914000 | 38 | 31 |
| La Pine | 97739 | 68 | 130 | 492000 | 26 | 36 |
| Prineville | 97754 | 82 | 127 | 471000 | 39 | 30 |
| Powell Butte | 97753 | 24 | 91 | 1525000 | 33 | 27 |
| Redmond | 97756 | 159 | 114 | 599000 | 39 | 35 |
| Sisters | 97759 | 40 | 164 | 1225000 | 38 | 35 |
| Madras | 97741 | 41 | 128 | 470000 | 32 | 33 |

Step 3: Build Domo App
Complete code for this walkthrough can be found on GitHub here.Initialize App
Before beginning, please be sure you have the Domo App CLI installed sucessfully. See the Quickstart instructions here. To generate an initial app template, use thedomo init command from your command line in the directory where you want your app files to live.
You’ll be prompted to:
- Give your app a name
- Select a starter template
- Connect a DataSet
dataset id with the id of your DataSet. You can find the dataset id by navigating to your Dataset in Domo and copying it from the url.


cd command and explore the basic file structure of your App. It should look like the following:

manifest.json file you can see that we have some default configuration set for our app.
thumbnail.png file to use for the App’s icon image in Domo. You may use the image found here or any thumbnail image of your choice as long as you name the file thumbnail.png.
Once, you’ve added the thumbnail.png file, go ahead and run the domo publish command (after running domo login). This should automatically add the id of the App Design in Domo to your manifest.json file as well as a fileName property.
Make sure your manifest.json file now looks something like this:


h1 element and is successfully wired up to a DataSet with the alias infographicData, which we’ve set by default to the sample DataSet we setup in Step 1.

index.html file contains the basic structure of our page and loads our JavaScript and CSS assets.
domo.js utility library provides a number of useful functions for interfacing with Domo, including the domo.get call that is included in our app.js file by default.
infographicData.
Let’s confirm that this is working by running the domo dev command to launch a hot-reloading local server. You should see a window open in your browser at localhost:3000.

domo.get request is logging data from your DataSet.

Add Infographic Template
First of all, let’s add to our project the infographic.png image that we created in the step 1. Name this file infographic.png and place it in the same directory as the rest of your app files.

index.html file; let’s create a simple structure that we can use to display the infographic information.
Note: we are loading in fonts from Google Fonts to match the look and feel of the original infographic template. You can get the fonts you need by searching the Google Fonts library and copying the link tags it generates for you.
id properties like title or homes-listed and the classes like description that we added to the HTML tags above. These will help us replace the data dynamically and style the elements later.
Please note that we set the img tag to use our infographic as the App’s background by using the src="infographic.png" attribute.
Add Item CSS
The next step is adding some CSS rules to help the elements position in our layout, and includes the infographic background correctly, for this, let’s update the app.css file by adding the next snippet.
domo dev command again, please remember to open a window in your browser at localhost:3000.

Make Our Infographic Dynamic
Once we have our static infographic template looking good and displaying our information, we need to make it dynamic. For this, we will pull some data from our dataset and inject this data to our HTML code by using Javascript and adding it to theapp.js file.
First of all, we will add a data structure to link the HTML IDs we added before to the respective column in our dataset; this will allow us to identify the correct element and add the data quickly.
{key}; this will help us to replace them later by using our Javascript code.
Then, our title tag will go from this:
app.js file, our file should look similar to this.
init() function call to the body onload event in your app.html file like so:
domo dev command to see if is working well and including our dataset data in the HTML code:

domo publish command to deploy the updated code to Domo.
Step 4: Finalize App and Benefits of Building on Domo
Now that we have our App deployed to Domo, we can display it in an App Studio canvas. This will make it so we can add:
- easy filtering capabilities to switch between different locations
- other visualizations that live alongside our infographic
- a way to share our dynamic embed our infographic with others.
Create App Studio Canvas
Let’s start by creating an App Studio canvas in Domo, which will provide a place for our new dynamic infographic to live alongside out-of-the-box Domo components like charts and filters. You can create an App Studio canvas by navigating to “Apps” > “Create App” > Select Theme > “Apply” as shown below.

Pro-code and No-code Components
One of the great things about both Domo Dashboards and App Studio is that “pro-code” components like our dynamic infographic can easily live along-side out of the box components. Adding a filter component The first out-of-the-box components we’ll want to add to make our infographic truly dynamic is a filter card component. This will allow users of our App to toggle between locations to update what data is displayed on the infographic. To create a filter card, we’ll:- drag a new card on to our App Studio canvas
- choose to create a new visualization from existing data
- select the filter card visual
- make sure it’s hooked up to the same dataset that is powered our dynamic infographic
- create a Beast Mode (
city_zip) that we can use to display both city and zip in our filter - Size our filter component on the App Studio canvas

- drag a new card on to our App Studio canvas
- choose to create a new visualization from existing data
- select the bar chart card visual
- adjust the y and x axes as well as the sorting settings


- rename the App
- rename the App page
- adjust the styles of different components for consistency

Sharing our App
One of the major benefits of building our solution on Domo is that we can now easily share our app via an embed or a link.- click the share icon
- select “Embed Domo App”
- configure the embed settings
- copy the Iframe (for embedding in other places) or just the link to your app
