cdglabs / apparatus

A hybrid graphics editor and programming environment for creating interactive diagrams.
http://aprt.us/
MIT License
1.03k stars 58 forks source link

Suggestion: Consider Sandstorm.io for packaging this app #6

Open ocdtrekkie opened 8 years ago

ocdtrekkie commented 8 years ago

Hey guys, this is really neat.

I wanted to suggest a potential platform to distribute this app on, that would give you the document and user management components that you need for a robust sharing-enabled web platform, without devoting a lot of specific development time to all of those features.

It's called Sandstorm.io, github.com/sandstorm.io/sandstorm and it's a app hosting platform that your app would probably run on pretty smoothly. It's easiest to explain by trying the ten-second demo at https://demo.sandstorm.io

cc: @paulproteus

paulproteus commented 8 years ago

Hi @ocdtrekkie and all! Relevant notes:

Anyway, happy to do whatever helps here. Let me know!

mquandalle commented 8 years ago

:+1: This application looks like a perfect fit for Sandstorm

electronicwhisper commented 8 years ago

I'm intrigued but want clarification on what problem this would solve.

My priorities for "distribution" are sharing and embedding. Use scenarios I have in mind:

  1. An enthusiast on http://math.stackexchange.com/ wants to answer a question with an interactive diagram. She draws it in Apparatus, then selects "Save to URL" from the menu and it gives her a URL like http://aprt.us/27304 . She pastes this in on stackexchange. This is like the "jsfiddle" workflow.
  2. A blogger writes a long explanation for a physics topic illustrated with plentiful interactive diagrams. She draws the diagrams in Apparatus and then for each one selects "Embed" from the menu and it gives her some HTML which she can paste into Wordpress to intersperse into her blog post. The HTML is an iframe that shows her diagrams in a "viewer" interface (without the sidebars). This is like the "youtube" workflow.

Does Sandstorm help with these? Or am I interpreting it wrong? Thanks!

ocdtrekkie commented 8 years ago

I'll try to answer as best I can, but I definitely think the easiest way to understand what Sandstorm is and what you can use it for is to try the demo. It is a bit like Google Drive, but an open source project with a lot more versatility. If one installed Apparatus on a Sandstorm server, one could create a number of Apparatus documents and share them independently.

1) The Sandstorm link is a bit longer (you could make a shortlink, I suppose), but yes. Rather than having to write your own system to handle sharing (private, public, etc.), and potentially having user management for that as well. The only think your software has to be able to do is save/load a document from the server. (Sandstorm apps only need to worry about saving a single document, as each document is a completely sandboxed version of the entire app.)

2) Sandstorm would probably help in the fact that you would be able to handle the individual document, but it may take a bit of thinking on the best way to present something easily embeddable from Sandstorm. I think the web publishing API would do it.

From what I see right now, the app appears to be entirely/almost entirely client side? But to save and store in the cloud, you need a server backend. Sandstorm could be the majority of that backend, and would let you focus your efforts primarily on your front-facing application development.

And not only could one use Sandstorm to centrally host an application and make documents shareable, you can publish your app to the App Market, so users could install it and run it easily on their own servers (perhaps hosted on their own website, or internally to their organization) or on any other Sandstorm server.

electronicwhisper commented 8 years ago

I looked into this more. I think Sandstorm is a cool idea, but supporting it is not a priority for me. If somebody else would to lead making Apparatus work in Sandstorm, I'd be happy to support by answering any questions.