Intro
This tutorial will walk you through building a task management app. You will learn how to create a web app from scratch using Domo’s React app template. You can check out complete code examples of the To-do App on Github.
What we’re building
We will go through how to create a basic React app, use Domo’s AppDB to implement CRUD functionality, and deploy the application on the Domo platform.Step 1: Setup and Installation
For this tutorial, we will use yarn as a node package manager, but you can follow the instructions from the create-react-app documentation to install a new react app with the
@domoinc template based on the package manager of your choice (npx, yarn, or npm). Before starting, make sure you’ve successfully installed the Domo Apps CLI and completed the domo login command to authenticate against your instance of Domo.
Create Basic React App
todo-app folder with the following included:
- The manifest and thumbnail are provided in the
publicfolder. - The proxy server is setup with
@domoinc/ryuu-proxyfor local development to your Domo instance. - An upload script has been added to the
package.jsonfor easy upload.
package.json file.
Step 2: Create an AppDB collection to store tasks
AppDB is a nosql database for storing arbitrary JSON documents, we can use it to persist data in our app.
Define a collection
The collections reference has to be specified in themanifest.json file, by adding the collections attribute array, for this tutorial we will add a collection named TasksCollection using the following code.
Step 3: Wire the local instance to Domo
Now that we have our
manifest.json ready, we can publish the initial design of our app, which will allow us to wire our app to resources in our Domo instance like AppDB.
To publish the app, you need to be authenticated in the terminal first; you can run domo login if you are not. As mentioned in the first step of this tutorial, an upload script was added to the package.json for easy upload. We will use that command to build and upload the app.
Upload command

Create a new card for the app
Let’s create the card that we will wire to the AppDB collection. To do this, we need to open the created design in the link that we got from the command output and click the “New Card” option.
manifest.json. Click “Select Collection”.

Click “Create Collection” to start with an empty collection.
After creating the collection we can save the card.


manifest.json file.
idfor linking your app to the published design andproxyIdfor wiring your development instance to the card
id property as well as the proxyId property.
Your manifest.json will now look similar to this:
Step 4: Create a tasks collection service
With our App connected to the Domo card and the collection created, you are ready to start making requests to appDB, for this we will use the
AppDBClient that can be found in @domoinc/toolkit package, add this package by running the following command. See more on the Domo Toolkit library here.
taskService.js in the src directory and place the following code:
Step 5: Create App UI
Now that the app is able to interact with AppDB, let’s add some React components to display and manage our tasks.
Install sass
For this app we will use sass to speed up styling our app.App components
One of the best parts of working with the React framework is how it makes Component Driven Development easier. We’ll break down the components we need for this app as follows:- TasksContainer
- TaskListItem
- TaskForm
src/components/TasksContainer/
TasksContainer
App content section, this is the wrapper where all the tasks will be listed. Code For this parent component, we’ll place the following Javascript code insrc/components/TasksContainer/index.jsx.
src/components/TasksContainer/index.module.scss.
TaskListItem
Next, we’ll add the Javascript and CSS for ourTaskListItem component which is used to represent each of the tasks in our Todo App.
Add the following Javascript in a new directory inside of the TasksContainer with the following path: /src/components/TasksContainer/TaskListItem/index.jsx.
Code
src/components/TasksContainer/TaskListItem/index.module.scss.
TaskForm
Finally, let’s add the form that we can use to create new tasks. Code We’ll add the following Javascript to a new directory inTaskContainer with the following path: src/components/TasksContainer/TaskForm/index.jsx;
src/components/TasksContainer/TaskForm/index.module.scss;
src/index.js.
Step 6: Test your App Locally
Before you publish your App to your Domo instance you can test that it is functioning as expected using the built in local server. Just run the
yarn start script command.
Your app should look like the screenshot below and you should be able to create, edit, deleete, and mark tasks as completed.


Step 7: Publish App to Domo instance
To publish your finished app, you can use the upload script we used to publish the initial design.
yarn upload
You should now be able to create new instances of your App, which has been successfully deployed into your Domo instance.
