diff --git a/usage/lifecycle-maintenance/handling-update-conflicts/custom-conflict-resolution.mdx b/usage/lifecycle-maintenance/handling-update-conflicts/custom-conflict-resolution.mdx index 625bede3..4d3abc3a 100644 --- a/usage/lifecycle-maintenance/handling-update-conflicts/custom-conflict-resolution.mdx +++ b/usage/lifecycle-maintenance/handling-update-conflicts/custom-conflict-resolution.mdx @@ -89,7 +89,7 @@ async uploadData(database) { ``` -The following structure is only received by the backend if the transactions are not mutated in your clients `uploadData` function +The following structure is only received by the backend if the transactions are not mutated in your client's `uploadData` function **Backend API receives:** @@ -119,7 +119,7 @@ Operations are **idempotent** - your backend may receive the same operation mult ## Implementation Examples -The following examples demonstrate the core logic and patterns for implementing conflict resolution strategies. All client-side code is written for React/Web applications, backend examples use Node.js, and database queries target PostgreSQL. While these examples should work as-is, they're intended as reference implementations, focus on understanding the underlying patterns and adapt them to your specific stack and requirements. +The following examples demonstrate the core logic and patterns for implementing conflict resolution strategies. All client-side code is written for React/Web applications, backend examples use Node.js, and database queries target Postgres. While these examples should work as-is, they're intended as reference implementations, focus on understanding the underlying patterns and adapt them to your specific stack and requirements. --- @@ -1168,4 +1168,7 @@ If batch processing fails midway, how do you recover? Use database transactions Track how often conflicts occur and why. This data helps you improve UX or adjust resolution strategies. **Leverage CRDTs for collaborative docs:** -For scenarios with real-time collaboration, consider CRDTs to automatically handle concurrent edits. For information on CRDTs, see [separate guide](/usage/use-case-examples/crdts). \ No newline at end of file +For scenarios with real-time collaboration, consider CRDTs to automatically handle concurrent edits. For information on CRDTs, see [our separate guide](/usage/use-case-examples/crdts). + +**Collaborative editing without using CRDTs:** +You can use PowerSync for collaborative text editing without the complexity of CRDTs. See Matthew Weidner's blog post on [collaborative text editing using PowerSync](https://www.powersync.com/blog/collaborative-text-editing-over-powersync).