6

Multiplayer: Collaborative editing database

 3 years ago
source link: https://www.kickstarter.com/projects/aleks-p/multiplayer-collaborative-editing-database
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

Story

We are building the first scalable serverless collaborative editing database-as-a-service, called Multiplayer. Our goal is to enable all apps to provide a modern real-time collaborative editing experience for their users.

Want to learn more? Visit us at Final Float.

Content synchronized across different browsers

Preface: Collaborative editing database

Collaborative editing is becoming an essential part of many software products, but creating a good solution is hard, especially hard is to make it correct and high performing, and there is no standard way to do it. We want to change that and democratize collaborative editing to make it available more widely so that developers can build better products for their customers.

We are in the final phases of product development and are planning to release a closed beta in the next few months, followed by a public release. Our current budget is self-funded and sweat equity, thus extra tailwind from Kickstarter will help greatly. We are looking for enthusiastic Kickstarter backers to help us make this product more likely to succeed. We are offering great perks for those who wish to pre-buy it, and will be eternally grateful to anyone willing to support us in any other way!

Share and follow us on Twitter @finalfloat!

Collaborative editing is hard; but easy with Multiplayer

Collaborative editing is needed for building solutions that offer multiple users the ability to edit the same documents at the same time, even the same part of a document at the same time. It is also needed for a single user for editing the same document from multiple devices or in multiple tabs. 

It happens so often that people lose unsaved changes because some app does not continuously save edits, or when it does, it may be overwriting the changes of other users or changes user does from other devices, which can result in a real problem for the user. Multiplayer solves it!

The idea came from our frustration of so many apps not being collaborative yet, and also our frustration of having to rebuild essentially the same system all over again for every next project we worked on. We know first-hand how hard and time-consuming it is to build a collaborative editing backend, there still is no single off-the-shelf solution. We even know stories of companies that started and never finished their projects because of all the effort that goes into building a collaborative editing solution.

 More about Multiplayer 

  • It is a cloud database with no installation required and completely serverless.
  • It scales horizontally and automatically to your usage. 
  • You just get an API key and you are ready to go.
  • Multiplayer is technically a document store, we call each document a “block” and organize the blocks into “collections”. 
  • Each block is a JSON document that can be edited by multiple users collaboratively at the same time. Even the same parts of the document at the same time!
  • Optimistic editing with conflict resolution: we do Operation Transformation on JSON documents to automatically resolve possible conflicts between users.
  • We use JSON Patch+ operations, which includes JSON Patch RFC6902 operations, and our custom defined operations, which enable rich text editing.
  • Changes are pushed to all subscribed users in real-time. You access the service through our REST API with changes pushed through Server-sent Evets, or through a high-performance WebSocket that uses a low-overhead protocol and message batching.

Our ultimate goal is to provide a full set of features any app may need for collaborative editing: JSON collaborative editing, plain text collaborative editing, and rich text collaborative editing.

Dashboard

You usually interact with the multiplayer programmatically using our HTTP or WebSocket APIs, or client libraries, but we have also built a dashboard app for admins to quickly access the databases, below you can see the screenshots 👇

Admin dashboard

Collections. In the dashboard you create collections. Collections are like database tables—the same type of blocks are grouped in the collection. Blocks in a collection share schema and authorization rules. Here is how collections look in the Multiplayer console 👇

Collections

Blocks. Each collection consists of blocks. Blocks are real-time collaboration documents. Inside a block, there is a JSON document that can be edited in parallel by multiple users. A JSON block can represent any structured data, or plain text inputs, or even a rich text document. Here is how a block looks in the Multiplayer console 👇

A block being edited in console, changes are automatically synchronized to all users

Demos

Below are a couple of demos that users will be able to play with.

  •  The Data Card. In this demo, a Multiplayer document holds the data needed to render a card on the screen, all changes are synchronized across different browsers 👍
  •  The Leaderboard App: In this demo, we use a hypothetical Leaderboard App that shows a list of users and their scores earned for some accomplished task. You can see two different browsers and how all the changes synchronized between the windows🥇👌

You'll need an HTML5 capable browser to see this content. project video thumbnail

For whom is this Product?

For any developer or a company who is building software products and would like to provide seamless auto-saving and multiple device experience for a single user, and collaborative editing experience for multiple users and if you don't want to fund three developers for the next six months to build your a custom collaborative editing backend.

Have you ever wanted to build a collaborative editing app such as Figma, Dropbox Paper, or Google Docs? Even a company like  Kickstarter could use it to allow collaborative project editing! Multiplayer lets you easily build software products with collaborative editing features. 

With Multiplayer you get a tested complete solution in minutes, you just need to sign up and get the API keys. You pay only for what you use, starting from $50/month. 

Stretch goals

We would like to raise at least CHF5,000 (about $5,500) to make our promise official. Any amount of funding will help. But by no means CHF5,000 will fund everything we have planned for the future of Multiplayer. Therefore, here we list our stretch goals every Kickstarter supporter will receive at MVP launch if we exceed our minimum funding goal. We are working towards those goals anyways, but if we reach the below funding milestones, we will hire more developers to build those before the launch date 🤞

  • $30,000 — we will also develop a Node client.
  • $40,000 — we will also develop a CLI.
  • $50,000 — we will also develop a PHP client.
  • $60,000 — we will also develop a Go client.
  • $70,000 — we will also develop a Python client.
  • $80,000 — we will also develop a Java client.
  • $90,000 — we will also develop React.js bindings.
  • $100,000 — we will also develop integration with Slate.js.
  • $110,000 — we will also develop integration with ProseMirror.
  • $120,000 — we will also release a GraphQL API.
  • $130,000 — we will also develop a Prisma integration.
  • $140,000 — we will also create a VSCode extension.
  • $200,000 — we will also release the Presence API.
  • $300,000 — we will also develop a user system and a browser-based JavaScript client, which will be able to connect to our servers directly from the browser and respect authorization to only do the allowed edits.

Why are we on Kickstarter?

We need time and some extra resources to iron out a powerful, secure, and elegant software product. The money raised will go towards development, and more funding means we will be able to build more things in a shorter period of time. We also want to use this opportunity to gauge demand for such a product and offer potential customers the ability to pre-buy it at very attractive discounts, as well as to solicit your feedback at this early stage.

Who are we?

We are a small, yet strong and experienced team of engineers/multitaskers who have built collaborative editing apps in the past, and learned a lot from our mistakes. For the past half a year we have been working hard to combine all that knowledge and previous experiences to build a universal serverless collaborative editing backend-as-a-service to make it available for everyone.  We know the problem first hand, and really care about making collaborative editing more widely used! 

Core team

The Saga of Bob's Pain and Sally's Gain

Let's see a hypothetical story of how regular apps make Bob sad 🥺, and how Multiplayer powered apps make Sally happy 😀.

  • Bob forgets to save his changes. And loses all the work he did in the past hour. Sally's work is saved continuously. And she can view the full history of changes.
Multiplayer continuously saves changes and all history of edits.
  • Bob opens multiple browser tabs to work more efficiently. However, the changes he did in different tabs overwrote each other resulting in a loss of work. Sally also uses multiple browser tabs to do her work, but all changes she does are successfully merged together and saved.
Multiplayer works in multiple tabs.
  • Bob started editing a document on his PC but then opened the same document on his smartphone. After editing and saving the document on the smartphone, he could not save his changes on the PC anymore, as the version on the PC was outdated. Sally always does her work from multiple devices, it is especially handy when she is on the go. All changes from her devices are automatically merged and safely stored.
Multiplayer syncs across devices.
  • Bob has to work alone because every document he is editing needs to be locked, to prevent other users from modifying those documents while Bob is editing them. Sally can collaborate with her co-workers and friends. They all can edit the same documents and even the same parts of a single document at the same time. Also, users get real-time feedback on what others are working on.
Multiplayer allows collaboration with others.

To achieve a seamless multi-user editing experience you need a solution that can merge the changes and automatically resolve the conflicts, simply auto-saving the changes does not work out.

Whether you are a developer looking to build better collaborative solutions, or a regular user who has lost your work online unsaved — back this project and make the internet a better place!


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK