Frontend Tutorial#
Build the matching UI in React + Mantine, following the thinxar/clinic reference. This layer doesn’t write fetch/axios calls by hand — it uses @palmyralabs/palmyra-wire for the transport, @palmyralabs/rt-forms + @palmyralabs/rt-forms-mantine for forms and validation, and @palmyralabs/template-tribble for ready-to-use grid templates.
- Project setup — Vite + React 19 + Mantine 8 + the Palmyra frontend libraries, with a
/apiproxy to the backend. - Store factory — configure
PalmyraStoreFactory, wire the error handler, surfaceuseFormstore/useGridstore. - Grid pages — render a
SummaryGridwith column definitions, server-side pagination, sort, and search. - Forms and ACL — dialog-form pattern with
rt-forms-mantineinputs,useAclAccessgating on permission codes. - Advanced — dashboards, custom grid controls, file upload, workflow UI, Excel export, ACL gating.
The UI never calls axios directly; it passes endpoint paths from a central ServiceEndpoints config into templates, and the store resolves list/read/create/update/delete against the injected factory.