nodeStorage is an open source project that brings simple S3-based storage to applications written in JavaScript that run in the browser.
For example, you could do a nice text editor or spreadsheet with nodeStorage as the back-end.
I built this server software to run behind apps like Radio3, Little Card Editor, Happy Friends and Little Pork Chop. Exactly the same software runs behind all these apps, which gives you an idea how versatile it is.
All web apps need to be able to store information on behalf of the user. We've had a couple of different approaches to work with that don't require an identity system -- cookies and local storage. These are good but the data is bound to a machine, not to a person. So if you went to a different machine, you'd have to start over.
Good for simple apps, but in order to get real utility, you need more.
nodeStorage builds on three technologies: Node.js for the runtime, Twitter for identity and Amazon S3 for storage. The software could be ported to other runtimes, and other systems could be used for identity and storage.
To get things started we're using these technologies because they are well-deployed and reliable, and fit in well with the kinds of applications I wanted to make.
I like building software that runs in the browser, and has the smallest server footprint possible. It's a very efficient model, and gives the user maximum power.
Public storage for publishing applications, private storage for preferences, personal documents.
Access to basic features of the Twitter API, sending and getting tweets, retweet, getting info about users, tweets, logging in and out.
Long-polling for realtime applications.
Whitelisting keeps access to an app limited to specific accounts.
Display of embedded tweets.
URL-shortening through the Bitly API.
Full source to an example app to help you get started coding.
As of late January 2015, we've opened the software up to the server-snacks mail list. You'll find all the source code on the GitHub repository. There's a simple demo program running at macwrite.org. It's a text editor, for which we provide full source code. It's meant to show a curious developer how to build an app that runs on the other side of the Nodestorage API.
I hope people kick the tires, read the code, ask questions. We'll keep polishing the code and improving the sample app, and building more real apps on top of the API. Anyone who does the same will be compatible. I hope that as a result, over time, it becomes a community, and a platform, and can evolve to the benefit of all developers who build on it and people who use their products.