Overview
The DA CLI (Domo Apps CLI) streamlines Domo app development with four main capabilities:- App Creation - Generate new Domo apps from templates
- Code Generation - Create components, reducers, and other code structures
- Manifest Management - Handle environment-specific configurations
- Template System - Support for custom templates from NPM, GitHub, or local paths
Installation
Install the DA CLI (Domo Apps CLI) globally to use it from anywhere:Quick Start
Create your first Domo app in seconds:Commands
da new
Creates a new Domo application from a template. Syntax:name- The name of your application (required)
--force, -f- Overwrite existing directory--template, -t- Specify a custom template (npm package, GitHub repo, or local path)
- Validates the app name
- Checks for existing directory
- Prompts for package manager selection
- Downloads/clones the @domoinc/vite-react-template (or custom template)
- Updates package.json with your app name
- Initializes git repository
- Installs dependencies
da generate
Generates code files from templates. Syntax:Component Generator
Creates a complete React component with associated files.src/components/MyComponent/MyComponent.tsx- Main component filesrc/components/MyComponent/MyComponent.module.scss- Stylessrc/components/MyComponent/MyComponent.test.tsx- Test file (optional)src/components/MyComponent/MyComponent.stories.tsx- Storybook file (optional)
Reducer Generator
Creates a Redux slice with automatic imports.src/reducers/myFeature/slice.ts- Redux slice- Auto-imports into
src/reducers/index.ts
da manifest
Add a manifest override for additional deployment/proxy environments. If you need to deploy to multiple instances, or proxy to different cards for various testing environments, you can use this command to add a manifest override. Syntax:identifier- Key for the manifest override (e.g.,instance.prod,instance.dev)description- Description of the override
da apply-manifest
Applies manifest overrides to your application. This will substitute properties from manifestOverride into your manifest.json file. Useful for deploying to multiple instances, or proxying to different cards for various testing environments. Syntax:id- The identifier of the override to apply
Templates
Default Template
The DA CLI uses the @domoinc/vite-react-template by default, which includes:- Vite for fast development and building
- React 18 with TypeScript support
- SCSS for styling
- Jest and Testing Library for testing
- Storybook for component development
- ESLint and Prettier for code quality
- Domo Toolkit integration
Custom Templates
You can use custom templates in several ways:NPM Package
GitHub Repository
Local Path
Template Structure
Templates should follow this structure:Configuration
Environment Variables
For local development, you can set a default template path:Package Manager
The CLI supports multiple package managers:- pnpm (recommended) - Fastest and most efficient
- npm - Standard Node.js package manager
- yarn - Alternative package manager
Troubleshooting
Debug Mode
Enable verbose logging for troubleshooting:Support
For issues and questions:- GitHub Issues: Create an issue
- NPM: @domoinc/da on npm