First Widget Checklist
Use this checklist before opening your first widget MR.
Definition and Config
[ ]
keyis globally unique and stable[ ]
labelis user friendly[ ]
layouthas sane defaults and minimums[ ]
config.schemacontains all user facing settings[ ] Defaults live in schema
defaultvalues (not duplicated in runtime)[ ]
docsUrlpoints to widget docs
Runtime Behavior
[ ]
useLiveDataand polling behavior are explicit[ ] Loading, error, and empty states are rendered
[ ] Expensive input normalization is memoized
[ ] Host provided state (
variables,workspace,brush) uses SDK hooks
UX and Persistence
[ ] User interactions that should survive reloads persist via
useWidgetConfigPersistence[ ] Table widgets use SDK table primitives instead of custom header logic
[ ] Role levels are applied for restricted settings where needed
Quality
[ ] Unit tests cover schema/definition and critical behavior
[ ]
npm run lint,npm run test, andnpm run buildpass locally[ ] Local playground works with
createMockHost+DevProviders