Yes, working with JSON files can be challenging, but the benefits are significant—especially when dealing with large datasets or complex calculations and filtering. For small and simple tasks, native solutions are often more convenient. However, I’m so accustomed to working with JSON that I now use the JavaScript column for almost everything.
I did some testing, and Darren is right—Glide is not reliable when it comes to communication between users. Even in an app where I’m the only user, my ID generator failed to add rows in order. After rapidly clicking the add button, the ID numbers appeared out of sequence—WOW. There was even a noticeable delay in incrementing the next ID, so it’s clear you can’t rely on it.
I tested a different approach where I fetch an incremented number from a GAS web app, and it works incredibly fast and without errors. With GAS set to wait for the previous script to finish (waitLock
), there’s no way to generate duplicate numbers. Even better and faster is fetching the ID from PHP with MySQL.
Conclusion: Stick to Glide’s native Row ID.