2
0 Comments

Get off of my Cloud!

I've been working on a new version of my ezInvoice app.

What we're doing is kind of new and different. I don't know of any other apps doing things this way, so please bear with me while I explain...

First off, let me provide a little context. ezInvoice was one of the very first "Web Apps" (if not the first). We created the first version in 2001 for a client to run in-house on an iMac. (It used the built-in web server and perl cgi scripts. No Javascript at all)

We released the first "Cloud" version in early 2002. It used a simple flat file database on the server side. While we were developing it I was very aware of the pros and cons of storing user data "in the Cloud" (this was before we even called doing that "in the Cloud"). Back then there was no way to store data on their device with a web app and that was, in my opinion, the biggest downside for users, and it still is. This version of our web app finally solves that problem.

Actually, there are three versions of this app and each works a little differently. All three versions are modern "Progressive Apps" that employ service-workers to store all the app code in the user's web browser.

One version stores your data in the web browser's built-in DB , and it works pretty good. I call it a "Browser " app because it's not just an "offline first" app, it's "offline only". The app never sends any user data at all over the internet. This version is free and you can try out the beta version right now here:

https://cherrypc.com/app/web.html

We also have a "Cloud Only" version of this app. This version doesn't store any data at all in your web browser and you can use it with most web browsers on any device. All of your data is stored in the Cloud on our CouchDB server. You can use it on any device, anywhere you have an internet connection, and when you're done using it none of your data is stored on that device. So, if you're on the road and you lose your iPad you don't have to worry about all your business data being accessible on it. At worst, you'll have to change your password if something like that happens.

The next version is a "Desktop" version. This is a completely different approach than a "Cloud" app and as far as I know we're the first to build a web app this way...

To use the Desktop app you have to install CouchDB on your desktop pc. The app still runs in your web browser but it uses the CouchDB application on your pc to store and manage your data, it doesn't store any data at all in your web browser, and you don't need an internet connection to use it. This setup performs like a "desktop app". It's blazing fast and reliable and CouchDB provides options to create backups and snapshots of all your data.

https://couchdb.apache.org/

This is a much more powerful app than the both the "Browser" and Cloud versions and you have CouchDB's built-in "Fauxton" db manager app to view and edit and manage all your data as well as the ezInvoice app.

The Desktop version also includes a feature that makes it easy to "Live Sync" your data to our "CouchDB in the Cloud" (just click a checkbox in your "Preferences"). Now you have an offsite backup of all your data, and our Cloud based CouchDB is backed up every week, and each backup is kept for four weeks, so with 6 copies of your data there is very little chance of you ever losing all of your data.

Now here's where it really shines.... If you're using the "Desktop" version of the app in your office and have it configured to "Live Sync" with our Cloud based CouchDB you can run the "Cloud Only" version of our app on as many devices as you want and all of them will sync up almost instantly. And there is no "Per seat" charge. We don't care how many devices you use it on.

And if you started off with the free "Browser Only" version of the app we'll have an easy way for you to get your data out of your web browser and into CouchDB on your desktop pc or our Cloud DB (or both) so you have a solid upgrade path.

I'll also point that using CouchDB on the client side is akin to having a "runtime environment" for web apps on the client side. Anyone can create apps designed to use CouchDB installed on the user's desktop pc. There's nothing extraordinary going on here. We use PouchDB.js, jQuery, and Bootstrap along with a few other rock solid opensource Javascript tools.

If you're interested in beta testing the Cloud and/or Desktop versions of the app let me know and I'll help get you set up.

on June 7, 2020