Reusable lists for dropdowns, menus & forms
Author option sets once — labels, descriptions, help text, groups, and icons — then drop them into any dropdown, dependent picker, or form across Matrx.
What a picklist actually is
Not config files, not magic strings — a small Postgres table you edit like a spreadsheet. The same row that shows up in a dropdown can carry help text, an icon, and a group, so the UI stays rich without extra plumbing.
Drop-down option sets
Build the labels behind a single dropdown — names, statuses, categories, anything you'd otherwise hard-code.
Grouped & dependent menus
Use the group field to split a list into sections — the same data drives grouped dropdowns and dependent picklists.
Every option, richly described
Each item carries a label, description, help text, group, and icon — enough for menus, cards, forms, or in-app guidance.
Real data, not config
Backed by udt_picklists / udt_picklist_items in Postgres. Reusable everywhere a list of options is needed.
Type, don't click
Inline editing with autosave, tab between cells, Enter to add a row — the fastest way to curate options.
Optimistic & fast
Every edit applies instantly. Server errors revert quietly. No save buttons, no spinners.
Two editors, same data
Both edit udt_picklists directly. Pick whichever feels faster — they're under live comparison.
Sidebar + spreadsheet
Picklists in the left rail, a dense editable grid on the right. Familiar table feel.
- Persistent sidebar of all picklists
- Spreadsheet body with grouped rows
- Undo via toast on destructive actions
- Created during UX exploration
Compact switcher + flat table
One screen, one table. List switcher drops down from the top, table fills the rest.
- Maximum space for the table
- Inline-editable list name / description / visibility
- Native combobox for the Group cell
- Uses the official curated icon picker window
Notion-style document
List as a clean document: inline title + description, items as lines, hover reveals controls.
- Document-feel layout, no table chrome
- Items as lines with one-line preview of description/help text
- Click row (or chevron / Cmd+Enter) to expand into a full edit form
- Collapsible, inline-renamable group sections
- Autosave w/ 500ms debounce; undoable destructive actions via toast
Under the hood
Two tables, RLS-scoped per user, public-share-aware. Editors write to them directly — no middle tier.
udt_picklistsOne row per list. Carries name, description, owner, visibility (private / shared / public).
udt_picklist_itemsEach row is a selectable option: label, description, help text, group, icon. Cascade-delete with its parent list.