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.