-
Notifications
You must be signed in to change notification settings - Fork 46
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Firebase is proprietary #4
Comments
For more firebase alternatives, look at http://nobackend.org/solutions.html. Haven't found a directly usable alternative yet. |
Hood.ie looks promissing! |
Yay, first comment not by me in this project :-) Thanks for the link. First impressions:
|
Turns out the client-side firebase.js was only MIT-licensed by mistake, now corrected: |
Short-term I'm staying on Firebase, long-term I'd love a fully open alternative. In the medium-term, I'm thinking of combining Firebase for most users with some story for self-hosted backend, even if not scalable. |
https://swarmjs.github.io/articles/todomvc looks promising as a firepad alternative. Reading list: |
I recommend you do some more reading on CouchDb - specifically look at it's Eventual Consistency model and Conflict Management which I think is a mature well thought out solution that you can algorithmically customise as per your app requirements. CouchDb can replicate and scale from offline mobile device (via PouchDb) => single server => replicated servers => clustered => geospatial replication. Since it's a multi-master database engine, any of these replicated instances can receive both reads and updates. Update conflicts are also retained and replicated in a tree per object that tracks revision ancestry for eventual resolution via a conflict resolution service that you build. CouchDb + PouchDb (inside Hood.ie) is a killer combo. CouchDb 1.7 is a solid 5 year old technology. Couch 2.0 is now in developer preview and will bring BigCouch clustering (thanks to Cloudant) and much more. No you don't need to host CouchDb yourself. Have a look at Cloudant.com (IBM), Couchappy.com and IrisCouch.com . Hosting and configuring it all yourself is now much easier and cheaper than it used to be using places like DigitalOcean.com (tons of step by step guides to setup and secure your host) and Hood.ie will also likely help here when it matures. You might want to also look at Docker. Best of all it's Apache 2.0 or MIT licence - no propriety lock in here! |
Thanks for the pointers. Is there any ready implementation of collaborative text editing on top of [CP]ouchDB? I'm also eyeing https://github.com/mizzao/meteor-sharejs implementing OT on top of Meteor collections (some more discussion at https://trello.com/c/tkBErvIk/39-operational-transformation). |
You might look at the Delta Pouch plugin for PouchDb
Factoryng - AngularJS Adapter"An all-in-one AngularJS factory that wraps PouchDB and Delta Pouch" Other useful plugins |
Thanks. I'll need to dig deeper as Delta Pouch is not extensively documented. "conflict-free editing of same docs" is promising but I'm getting the suspicion it's using the Mongo/Couch jargon sense of "doc" = json object, and conflict-free merely means different fields in the json structure can be modified simultaneously OT indeed represents text as a sequence of write-once deltas, but there is more to it. Not much Note to self: also look at http://derbyjs.com/, an outgrowth of ShareJS which certainly does support OT. I should note that moving off Firebase is a long-term desire but at the current rate I'm unlikely to touch it anytime soon (say not in a year). There are many things to fix that are more immediately embarrassing. |
No longer accidentally open source (see #4).
Time to upgrade to non-ancient firebase. |
Just don't include Firebase keys/logins in your source code (you shouldn't be doing this anyway). Rather, include in your README the instructions for signing up with Firebase and generating and configuring the keys. Most developers do this via an environment variable as this is the typical way to configure keys in a cloud hosted service. That way, they then must sign up and agree to the Firebase terms of service and you're not involved in that legal relationship. |
Personally I'd avoid any hosting company that offered any of the Firebase 3.x terms. The last one 3.4 is a serious "turn off" for me. These guys are sharks. |
Good ideas. This issue is by far the most — the only — one people comment on. |
I am looking into changing the Firepad database to be a plugin, so that you can choose/build your own data-store. I will also be working on a Meteor/MongoDb data-store as the first alternative. |
@jamesgibson14 Cool! It seems firepad doesn't need much beyond atomic append (on collision one succeeds and others have to retry). It does use onDisconnect for presence & cursors. |
More random thoughts: I've played today with Sandstorm. It certainly makes self-hosting fun. I've read up a lot on CRDTs.
|
Hey, I'm in the middle of writing a collaborative writing tool using my Open Source Firebase replacement (http://github.com/amark/gun). The editor will use CRDTs and DAGs instead of OT, because OT requires a centralized server unfortunately as @cben already noted. I have a single-user demo up here: http://db.marknadal.com/random/write.html (Warning! This is out of my Dropbox folder so it might vanish or be broken at any given moment). Hope you guys might find it helpful since this thread seems to be a compiling list for alternatives/ideas, just wanted to share. Vice-versa, if anybody would like to help me out on building it, I would love that! Thanks. :) |
Eureka! That means (1) focusing on fixing CodeMirror-MathJax, and integrating that first whereever math can be edited (2) integrating any remaining markdown styling/editing goodness? If my target audience is scientists, that'd make great sense. SMC already does lots of other stuff they need, including collaborative latex editing. Food for thought for me... Other places I've dreamt of integrating CodeMirror-MathJax are IPython notebook and ShareLaTeX (but the latter uses Ace, CodeMirror would be a big re-work). Gitit might also be nice. |
Emmm, no. |
Just came across this because of looking into operational transform, but you might in theory be able to deepstream.io ;) (disclaimer: core contributer) |
The Firebase backend is proprietary so you can't run your own instance of the full stack.
At this stage, I would not trust myself with running a secure & reliable backend, so using Firebase is better for Mathdown end-users.
OTOH, there is little need to change anything about Firebase and being able to develop as a purely client-side code makes forking and testing much easier - a user can try any fork without exporting/importing user data.
"Running" a fork is as simple as loading the static HTML from anywhere - local checkout, github pages, cloud9 workspace etc.
Any free solution should preserve the ability to fork and use without migrating data.
Best free-backend alternatives to Firepad:
Includes node.js server code; no persistence layer?!
Includes node.js server code, needs MongoDB.
For other firebase-like functionality (if we add any), meteor.com looks most similar in spirit, and even provides free hosting for server-side part of the app (arbitrary node.js?).
The text was updated successfully, but these errors were encountered: