You may have noticed updates have slowed from our normal daily clip, and that’s because we’ve got some big projects in the works.

New backend

Moo.do currently uses the Google Drive Realtime API as its backend, which was great for letting us get up and running with realtime collaboration quickly, but it comes with many downsides. The biggest downside is that Google is shutting it down in December. So we are working on a new backend which will be faster and more flexible.

One of our favorite things about storing data in Google Drive is the privacy benefit that nobody (including us) is able to access your data. Privacy is still very important to us, so we’re approaching privacy in a different (and better) way: end to end encryption. Your data will always be encrypted before saving to the database, and you’ll be able to password encrypt your data so that nobody can ever read it. We’re also adding support for working with local files, which entirely avoids any privacy issues with syncing.

Benefits of the new backend

  • Multiple simultaneous documents - each pane can view a different document
  • Faster load/sync time
  • End to end encryption
  • Easier and more flexible sharing
  • Undo/redo works offline
  • Not tied to a Google account
  • Support opening local files on your computer
  • No maximum document size

Potential new features possible with the new backend

  • Public API for accessing and adding to documents
  • Browser extensions for saving links
  • Plugins in other apps (Slack, Gmail, etc…)
  • Features for teams (manage users in a team, assign tasks, billing for teams, etc…)
  • Realtime chat

New mobile apps

The one thing we hear most from our users is that the mobile apps are really bad, and we totally agree. We had been focusing on making the web/desktop apps great and have let the mobile experience fall short. Rather than investing time in upgrading the current app to use the new backend, we’ve started on a fresh new app. The major problems are unfixable in the current app, so we’re making a new one from scratch. The new apps will be much faster and smoother, will fix a lot of the existing bugs, and we’ll be able to more quickly improve the user interface and bring over the features from the desktop apps.

Technical details

Current backend: Data is stored and synced in your Google Drive account with the Drive Realtime API. Sharing is done through Drive’s sharing system. The mobile apps are wrappers around web views (WKWebView on iOS and Crosswalk on Android), with custom native code for native features like notifications and authentication.

New backend: Data is stored and synced data with a combination of Google Firebase and Google Cloud Storage, and data is encrypted client-side before sending it to the database. Sharing is done using Firebase’s security rules. The new mobile apps are built with React Native and share a majority of the code with the web/desktop apps, but have their own unique user interfaces.

Status

We’re already quite far along with getting the basics working and we’re aiming to start beta testing in about a month. We’ll post another update when it’s ready.