Intro
This comprehensive tutorial will guide you through setting up and optimizing your local development environment using the Domo CLI. You’ll learn how to create, develop, debug, and deploy Domo apps efficiently with modern development workflows. Once published to an instance, your app will be editable as a Pro-Code App. This local development workflow allows you to integrate your preferred AI tooling, IDE, and version control alongside Domo’s built-in versioning capabilities.If you have already created an app with App
Catalyst, you can
just make sure you’re in the project directory, and go straight to Step 3:
Initial Local Development.
What you’ll learn
- Setting up a professional local development environment
- Using the Domo Apps CLI to create a new app
- Building your app UI locally with live reload
- Publishing your app to Domo
- Configuring data proxies for consuming live Domo data
- Iterating on your app with full data access
Prerequisites
Before starting this tutorial, ensure you have:- Node.js installed (version 18 or higher) - This is required for running the Domo CLI and managing dependencies. Use nvm to manage your Node.js version.
- Domo CLI installed
- A Domo instance with appropriate permissions
- A code editor (VS Code recommended)
Step 1: Initial Setup and Authentication
Install and Verify CLI
First, ensure you have the latest version of the Domo CLI:Authenticate to Your Instance
Step 2: Creating Your Development Project
Initialize a New App
Project Structure
Your new project will have this structure:Understanding the Manifest
Themanifest.json is crucial for local development:
id: The ID of your app design in Domo- This is automatically added to your manifest when you publish your app design
- This is used to link your app design to the published app design for future publishing
- This is used to identify your app design in the Domo API
proxyId: Enables API proxying for live datamapping: Defines data connectionssize: Sets app dimensions within Domo
Adding a Thumbnail
📸 Required: You must add a thumbnail image to your app design before you can create cards from it. How to add a thumbnail:- Create or find an image (PNG) - it must be named
thumbnail.pngand it must be 300x300 pixels - Add it to your project folder (e.g.,
thumbnail.png)
Step 3: Initial Local Development
Development Server Features
Thedomo dev command provides:
- Live Reload: Browser automatically refreshes when files change
- App Sizing: Renders in a frame matching your manifest dimensions
- Local Testing: Build and test your UI before publishing
Development Workflow
Step 4: Publishing Your App Design
Publishing Your App
Important: Version Management
⚠️ Critical: When you publish your app, Domo will update the existing version if it already exists. If you want to keep previous versions, you must increment the version number in yourmanifest.json (not the package.json) before publishing.
- If you publish with the same version number → Previous version is overwritten
- If you increment the version number → Previous version is preserved for rolling back
Step 5: Configuring Data Access
Now that your app is published, you can set up data access for local development.Getting a Proxy ID
To enable data queries during local development, you need to configure a proxy card:- Create a card from your published app design in Domo
- Wire up your datasets to the card
- Copy the card ID from the URL (the string after
/kpis/details/) - Add it to your manifest as the
proxyIdfield
How Data Proxying Works
To keep things secure, local queries to Domo are proxied through a card in your Domo instance. Using the manifest’s Design ID and Proxy ID, requests are passed to the card, and the card’s response is returned to the local development server. This approach uses indirect access to your Domo instance’s API, which is a security best practice and is required for using AppDB, Workflows, Code Engine, and other Domo services. See our guide on The Manifest File for more information.Step 6: Full Development Workflow
With your proxy ID configured, you now have the complete development workflow:Testing Checklist
Verify your app works correctly:- App loads without errors
- Data queries return expected results
- UI looks good and functions properly
- All features work as intended
Conclusion
Congratulations! You’ve learned the essential workflow for local development with the Domo CLI: ✅ Setup: Install Node.js and Domo CLI ✅ Login: Authenticate to your Domo instance ✅ Create: Initialize a new app withdomo init
✅ Build: Develop your UI locally with domo dev
✅ Publish: Deploy your app with domo publish
✅ Configure: Set up data access with a proxy ID
✅ Iterate: Continue developing with full data access
Next Steps
- Explore the Domo Apps CLI documentation for more advanced features
- Join the Domo Developer Community
Happy coding! 🚀