Managing Custom Fields and JSON Conflicts Across Multiple Developer Machines

Hi everyone,

I’d like to ask for advice or best practices on managing customizations in a multi-developer environment using Frappe/ERPNext.

:wrench: Our Current Setup

  • Each developer has their own test machine.
  • We’re working on multiple apps
  • Previously, I worked solo, and custom fields were handled smoothly via custom/****.json in each app.

Now that we’re a team of three developers, we’re running into issues with field changes getting out of sync between machines.

:pray: Looking for Suggestions

  • How do teams manage custom field exports (JSON) without overwriting each other?
  • Is there a recommended workflow or version control practice to avoid these conflicts?
  • Any tips on managing multiple apps and customizations cleanly?

:thought_balloon: Thoughts We Had

  • Should we centralize the JSON update process?
  • Should we use fixtures instead of custom.json?
  • Would you recommend scripting field creation via hooks or migrations?

Would love to hear how other teams are doing this.

Thanks in advance!

  1. If fields belong to your own custom app, then it shouldn’t be a problem as they live in their own doctype.json file and any conflicts can be resolved with git.

  2. If fields belong to a different app that you’re not managing, you should use fixtures for that:
    a) Use tabProperty Setter if you’re just changing properties of those fields.
    b) Use tabCustom Field if you’re adding a new fields.

Git is the solution whereever you host or use it. It will give you the conflicts during commit and push events.