A shared task manager built as a Domo Custom App — React + TypeScript + Redux Toolkit, backed by AppDB. Stamps ownership (ownerId / ownerName) onto every todo, fetches the current user's identity and avatar, and exposes CRUD through typed Redux slices.
This repo is the companion sample for the Todo App with AppDB tutorial.
- Scaffolding a Vite + React + TypeScript app with the DA CLI
- Declaring an AppDB collection in
manifest.jsonwithdefaultPermission - Typed
AppDBClient+IdentityClient+UserClientservice layer - Redux Toolkit slices with
buildCreateSlice+asyncThunkCreatorfor async CRUD - Per-user ownership stamping and an avatar fallback
src/
├── main.tsx # Provider-wrapped app entry
├── components/
│ ├── App/ # Root: kicks off loads, shows errors
│ ├── UserHeader/ # Avatar, name, role
│ ├── TodoForm/ # New-todo form (stamps ownership)
│ ├── TodoList/ # Filter UI + list
│ └── TodoItem/ # Row with toggle/delete
├── reducers/
│ ├── createAppSlice.ts # buildCreateSlice helper
│ ├── index.ts # Store + typed hooks
│ ├── app/slice.ts # User identity
│ └── todos/slice.ts # CRUD thunks
└── services/
├── app.ts # AppDB + Identity + User clients
└── types.ts # TodoData, Todo, UserInfo
- Node 18+
- The DA CLI and the Domo CLI
domo logincompleted against your target instance- An AppDB-enabled Domo instance
pnpm install
pnpm startOn first run, publish an initial design to provision the Todos collection and copy the id + proxyId back into public/manifest.json:
pnpm uploadSee the tutorial for the full walk-through, including the Asset Library card-creation step.
| Command | Description |
|---|---|
pnpm start |
Vite dev server with the Domo proxy |
pnpm build |
Lint, test, and build for production |
pnpm upload |
Build and domo publish in one step |
pnpm generate |
Scaffold new components / reducers with da generate |
pnpm test |
Run Vitest |
pnpm storybook |
Launch Storybook |