Hey everyone! I’m working on developing a collaborative document editing application similar to Google Docs and need some guidance on choosing the right API.
My requirements are:
Full text editing capabilities (formatting, tables, images, etc.)
Real-time collaboration where multiple people can edit simultaneously
Ability to store documents on my own server infrastructure
I’ve been looking at different options like LibreOffice API, Google Workspace API, and Microsoft Office 365 API. From what I understand, LibreOffice might be better for custom server storage, but I’m not sure about its collaboration features.
Has anyone worked with these APIs before? Which one would you recommend that covers all three requirements? Am I missing any important considerations about these platforms?
CKEditor 5 with their real-time collaboration plugin is another solid choice. I used it for a client project eight months ago and it hit all your requirements. The rich text editing is extensive, collaboration works smoothly with their cloud services, or you can self-host. What I loved most - you keep full control over document storage while getting robust collaborative editing without building everything from scratch. Licensing gets pricey depending on your user base, but you’ll save massive development time. Their docs are solid and the community helped when I hit websocket issues during implementation. Performance stayed good even with heavy formatting and embedded media.
I built something similar last year and went with a combo approach. Skip the major APIs - used Yjs for collaborative editing with Quill as the rich text editor instead. You get full control over server storage plus solid real-time sync. Google and Microsoft APIs are powerful but they’ll lock you into their ecosystems and storage, which sounds like the opposite of what you want. LibreOffice API works for document processing but it’s missing the real-time collaboration stuff you need. Yjs gives you conflict-free data types that handle all the tricky collaborative editing parts, and you can store everything on your own infrastructure. Yeah, there’s a steeper learning curve than just using established APIs, but the flexibility is worth it for custom apps.
i get it, those big platforms can be a pain. have you looked at peerjs too? it’s cool for real-time stuff and doesn’t tie you down like the others. plus, you can manage your own storage easily with it. worth checking out!