Make CRUD interactions legible
Make each interaction state visible in the page itself: label inputs, use a submit control for the write, and provide success feedback with on_success_toast. These are supported form-block configuration points, so the feedback does not depend on an undocumented custom flow.
Keep the create form and its list close together when the user needs to see the result. Form submissions update the client cache, and record-list and data-table blocks re-render when records change, allowing the interface to show the completed action without navigation.
Use local state deliberately. Expression comparisons treat both sides of == and != as dotted paths rather than literals, so seed a comparison value into local state when a block needs to compare against a fixed value.
Avoid path navigation for minor in-page state changes: ? and # links are shallowly routed, while a same-application path-changing href uses client-side navigation. Reserve redirects for a genuine change of page or workflow.
