# CRDTs lose to CSVs Conflict-free Replicated Data Types (CRDTs) are the hot thing to enable real-time collaboration between users on a single document, usually to allow two people to edit text simultaneously without editing conflicts or just to sync offline edits between multiple devices. They sound like a silver bullet, a magical way to synchronise state. Well, I suppose they are. But. They are far too complicated for smaller use-cases, and you should just use a CSV. CSVs are easy to understand, easy to edit - even manually - and, significantly, they are just a file. Files on your filesystem can be synchronised using any third-party tool, like Syncthing. On Chrome, web applications can directly edit user-selected files. On Firefox and Safari, users must manually upload, download, and then move the downloaded file. That *is* a real shame, but I have come to the conclusion that the simplicity of a CSV is hard to beat. Granted, merging changes is likely only simple if you are only appending rows to the file (and yes, that is a CRDT :). In practical terms, if you can simplify your application state to an append-only log, then a CSV is good enough. If you need to edit or delete rows, then merging is much more complicated and you are /probably/ better off with a CRDT system. However, you could also just say: it's an unlikely scenario so I won't worry about it. If you're making app for your family, just use a CSV.