I bet on the low-code path and lost a few days to it
A reflection: native Shopify forms looked like the cheap way to collect member profiles, until re-submissions started overwriting data.
Loss — and what I’d do differently.
Building the member directory, I reached for native Shopify forms to collect profiles. It was the obvious low-code move: less to build, less to maintain. I wanted it to work.
It didn’t hold up against one core requirement: members must be able to come back and edit their profile. A native form re-submission overwrites instead of updating a known record — there was no clean “this is the same member editing their existing profile” contract. I spent a couple of days trying to coerce it before accepting the approach was wrong for the job.
The fix was to move input into the logged-in customer account (a customer-account UI extension writing to that member’s own metafields), so I always know who’s editing — it’s clearly that member updating their own record.
Lesson: “least code” isn’t the same as “right tool.” I should have tested the low-code option against the hardest requirement (profiles people can log in and re-edit) on day one, not after building around it. Now I write down the one requirement most likely to break a shortcut, and check that first — before I get attached to the cheap path.