Skip to main content

Documentation Index

Fetch the complete documentation index at: https://grantmaster.dev/llms.txt

Use this file to discover all available pages before exploring further.

CRUD Interaction Matrix

Decision guide for when to use modal-based vs page-based flows for create, read, update, and delete operations.

Decision Matrix

FactorUse ModalUse Full Page
Form complexity1-5 fields, single section6+ fields, multi-section, tabs
Data dependenciesSelf-contained, no sub-entitiesNested entities, file uploads, rich editor
Context preservationUser needs to see list behindUser focuses entirely on task
URL significanceNo need to bookmark/shareShareable/bookmarkable state needed
WorkflowSingle-step actionMulti-step wizard
FrequencyRepeated quick actionsInfrequent, deliberate actions

Current Feature Patterns

FeatureCreateEditViewDeletePattern
ExpensesModal (wizard)ModalModal detailConfirm dialogModal-first
Grants (Discovery)N/A (external)N/AFull pageN/APage-based
Grants (Application)Full page (wizard)Full pageFull pageConfirm dialogPage-based
Grants (Post-Award)N/AFull pageFull pageN/APage-based
ProjectsModal → PageFull page (tabs)Full page (tabs)Confirm dialogHybrid
Users/TeamModal (invite)ModalModal detailConfirm dialogModal-first
OrganizationsWizard (onboarding)Modal (tabs)Full pageConfirm dialogHybrid
JournalsInline (calendar)Inline/ModalFull page (review)Confirm dialogMixed
GrantorsModal (editor)Modal (editor)Tab sub-pagesConfirm dialogModal-first
Relations/ContactsModalModalSide panelConfirm dialogModal-first
ReportsFull page (builder)Full pageFull page (PDF)Confirm dialogPage-based
ComplianceModal (rule)ModalFull page (dashboard)Confirm dialogModal-first
DocumentsUpload modalRename modalPreview modalConfirm dialogModal-first
SettingsInline/ModalInline/ModalInlineConfirm dialogInline-first

Recommendations

Keep as-is (patterns match the matrix well)

  • Expenses — Quick, repetitive entries; modal makes sense
  • Grants (Application/Post-Award) — Complex multi-section forms; page-based is correct
  • Reports — Complex builder with rich output; page-based is correct
  • Documents — Simple CRUD with preview; modal is correct
  • Settings — Inline editing for quick config; appropriate

Already well-structured hybrids

  • Projects — Quick create (modal) escalates to full page for detailed editing (tabs). This is a good progressive disclosure pattern.
  • Organizations — Onboarding wizard for create, modal tabs for edit. Appropriate given the different contexts.

Guidelines for New Features

  1. Default to modal for entities with <6 fields and simple relationships
  2. Escalate to page when the form has tabs, nested entities, or file uploads
  3. Delete always uses confirm dialog (via useConfirmDialog hook)
  4. View/detail uses modal for list-context viewing, page for standalone deep-dive
  5. All modals use <Modal> from @/components/ui/Modal with <FormActions> in footer
  6. All full-page forms include <BackButton> from @/components/ui/BackButton