
Sandstorm Oasis hosting open beta and App Market - kentonv
https://blog.sandstorm.io/news/2015-08-31-oasis-beta-launch.html
======
kentonv
One thing we'll do before coming out of beta is make sure we can scale
seamlessly to these impromptu HN load tests. :) Sorry it's a bit slow right
now! You can, of course, install your own and have all the resources to
yourself:

[https://sandstorm.io/install/](https://sandstorm.io/install/)

Edit: Things seem a bit better now. This is our first time getting a load
spike on Blackrock (codename for the "enterprise" add-on to Sandstorm which
can utilize a whole cluster, which we use to run Oasis); previously, it was
always the single-machine demo.

The problem is, ironically, we haven't parallelized our front-end yet. We are
seamlessly distributing the apps themselves across way more machines than we
actually need, but everyone is connecting to the same instance of the
surrounding management UI. Honestly I didn't prioritize this because I thought
our reinvented-wheel back-end was going to be the bigger bottleneck -- whoops.

Luckily this shouldn't be too hard to fix as the front-end is _mostly_
stateless. Probably fixed in a week or two.

Nice to know what to focus on, in any case! Thanks for testing!

~~~
kentonv
We now have four front-ends (and can add arbitrarily more, of course). Will be
fun to see how things perform at the next spike.

------
seagreen
Congratulations! I couldn't be more excited about this.

The personal computer revolution won't be complete until users have personal
servers. Desktops, laptops, smartphones -- none of them compare in importance
to controlling your own server.

Sandstorm is a great step in that direction. There's something very beautiful
in how it "rolls with the blow" of how awful the web is. While Mozilla (sorry
to pick on you guys) is just trying to force more JS everywhere, Sandstorm
makes one small product and wildly improves what a web app means.

~~~
seagreen
Severine: you're hellbanned.

~~~
severine
Ha, I'm in heaven again! (thank you)

------
yebyen
I have been happily using the Sandstorm closed alpha since it was available to
Kickstarter users and I have been very happy with the progress. There are
still places where the grain paradigm needs to be fleshed out a bit, like I
had to explain to my old boss that in Sandstorm Gitlab there is no user, there
are only allowed and deleted web keys...

When I explained that we might use this for a project or two, if it turned out
to be too much trouble to put our GitLab instance with all its private repos
on the public internet, he understood right away.

Up until that point he basically knew what Sandstorm was all about and he was
saying "I don't think Sandstorm is for us." I'm still not sure he sees, but
the free open beta and the app store will probably work to help convert him.
He loves app stores. (Why not add, a shameless plug for Synology DSM OS with
its Docker Hub support!)

------
ykumar6
Simple question to the founders, in a world where software is increasingly the
sum of not just code, but cloud services and APIs; how does Sandstorm scale to
real-world SaaS? Are you going to require your users to configure lots of API
keys and services manually and manage these vendor relationships?

How does Sandstorm create an update-model for SaaS when developers are
deploying hundreds of changes a day?

I like the idea, but I wonder if this idea would have worked better in an era
when software wasn't always continuously evolving to the needs of customers

~~~
kentonv
> how does Sandstorm scale to real-world SaaS?

It doesn't! Sandstorm is the anti-SaaS. Sandstorm is all about running fine-
grained instances of apps (e.g. a separate Etherpad instance for every
document) in a decentralized way rather than huge centralized "scalable" SaaS
apps. Supporting SaaS-style apps is explicitly a non-goal for us.

Sandstorm is meant for people hosting personal servers for themselves or for
businesses hosting corporate-internal apps for their employees; generally not
for external-facing apps.

It turns out that decentralized apps are trivial to scale, without any fancy
distributed systems architecture.

> Are you going to require your users to configure lots of API keys and
> services manually and manage these vendor relationships?

No. "Managing vendor relationships" is not a thing that one needs to do in
Sandstorm's usage model.

Sandstorm apps are generally self-contained; they include all their code
dependencies directly in the package, including the full stack of front-end,
business logic, database, etc.

The only time a Sandstorm app needs to reach out to other apps and services is
when the app logically needs to interact with other objects. For example,
imagine a chart app which renders charts based on the contents of a
spreadsheet (another app). These apps need to be connected, but this kind of
connection makes logical sense to an end user. They know what a chart is, they
know what a spreadsheet is, and they know they need to connect them. Sandstorm
will provide something we call the "powerbox UI" to allow users to create
these connections in a user-friendly way.

[https://docs.sandstorm.io/en/latest/developing/security-
prac...](https://docs.sandstorm.io/en/latest/developing/security-
practices/#capability-based-usable-security)

> How does Sandstorm create an update-model for SaaS when developers are
> deploying hundreds of changes a day?

It's like mobile. You ship an app to the app market, and then users get
updates from there.

~~~
ykumar6
Also, are business style corporate/internal apps going out of existent when
they are faced with a fierce SaaS company competing for that business.

It's almost like the SaaS DNA is to move very quickly (break things) and react
to customers.

If your developers cannot continuously deploy to their customers and make
changes behind the scenes, how will your developers compete with a Slack?

Is your only value proposition data security?

~~~
kentonv
Developers on Sandstorm don't have to maintain infrastructure. They don't have
to protect and back up user data. They don't have to implement authentication,
sharing, document management, search, etc. They don't need to think about
consensus algorithms or distributed infrastructure problems. They can relax
their security diligence as many common security bugs are mitigated by
Sandstorm itself.

A guy in Turkey and a guy in France working in their free time built Wekan, a
Sandstorm app that easily replaces Trello. Two people in their spare time vs.
a whole funded company. There is no way that they'd be able to build and run a
SaaS service competing with Trello -- and no way I personally would use a
service run by two random guys in their spare time -- but building a Sandstorm
app was no problem for them, and has been incredibly useful to me.

To me the question is: how will SaaS developers be able to compete against
Sandstorm developers that can build apps so much more easily?

~~~
ykumar6
The guy is Turkey or France building an app on sandstorm has bigger challenges
than worrying about how to manage infrastructure.

He needs to figure out how to create a viable business, and his first order
concern is getting to P/M fit by rapidly iterating and delivering product
(often making several changes a day).

If they create a viable business, they have enough leverage and margins (given
SaaS has very favorable unit economics) to pay for a infra and a dude to
manage it,

------
zimbatm
Tough question: how do you see the developer getting paid for their work ?

I would love to be able to work on Open-Source apps and might occasionally
build some for free but at the end of the day I still need money to pay my
rent and all.

The answer to that is probably central to what kind/quality of application
that you will get on the market.

~~~
kentonv
To be clear, we aren't exclusively for open source apps. We in fact have one
proprietary app on the app market today (draw.io).

We want to help developers get paid for their work by making it really easy to
get paid. Sandstorm Oasis users will already have a credit card on file; we
want to make it easy for them to use that card for in-app purchases. In the
case of open source apps, we want to make it easy for app developers to
solicit "tips", perhaps by implementing this as part of the Sandstorm UI -- if
you use an open source app a lot, the UI could (hopefully not overly
intrusively) say "Hey, would you consider giving a weekly tip to this
developer?"

I've also thought about a "spotify" model where we automatically pass along
some portion of subscription fees to apps that get used a lot.

Of course, things are more complicated for personal servers where the user
doesn't necessarily have payment methods on file. We're still thinking about
how that will work, but we'll come up with something.

------
jimmcslim
Is there an official Docker image for running Sandstorm? I'd like to play
around with it without installing it directly nor standing up a separate VM.

I've also speculated in the past that Sandstorm would be something great to
have on NASs of the QNAP, Synology variety... any progress in that direction?

~~~
kentonv
Sandstorm actually self-containerizes. The installer unpacks a bundle under
/opt/sandstorm which, when executed, runs itself in a container (Linux
namespace) and mostly avoids interacting with the rest of the system. It also
(with your permission) auto-updates itself within 24 hours of any release with
near-zero downtime.

I know that Docker-izing it could be more comfortable for people who are
already familiar with launching Docker images, and similarly Debian packages
would be more comfortable to long-time Debian users, etc. But, these other
distribution mechanisms would have significant technical disadvantages
compared to what we have (and what we are building), while adding some
significant maintenance cost for us. So we've decided not to pursue them for
now. That said, it might make more sense when we have a "stable release".

Regarding Synology, they actually sent us a test unit that we plan to play
with at some point... so much to do, so little time.

~~~
jimmcslim
> Sandstorm actually self-containerizes.

Ok, that's interesting... so hopefully it wouldn't conflict with my Docker
install and its containers at all (other than port numbers I suppose).

~~~
kentonv
Correct. Other than port numbers, Sandstorm should have no interaction with
anything else on the system, including Docker. (Please file a bug if you find
otherwise. :) )

------
andrewstuart
Offtopic from Sandstorm but on the topic of personal servers it would be good
if somehow an email server could also respond to requests as a web server in
some way. Or maybe respond to particular inbound emails as HTTP requests. Sort
of makes sense since the server that your email address lives at is kind of
your "home on the web".

You could configure your email then perhaps to respond with things like your
personal profile, in response to anonymous inbound requests.

~~~
paulproteus
That's something that should be possible in a Sandstorm app, if you want to
make it do that. (-:

To do it securely in Sandstorm would have to wait for our secure inter-app
communication system, similar to Android intents, called the Powerbox. But
we're working on it.

------
makmanalp
Oh my god, this is magic - it took 10 seconds to install wordpress. I'm buying
an account for my mom. It'd be awesome to know the pricing for the managed
hosting!

~~~
kentonv
Sorry, we spent so much time making the billing prompt a seamless part of the
flow of using Sandstorm that we forgot to publish the pricing outside of that.
You can see pricing if you sign in, go to your account settings, and click
"change plan".

(It's $6/mo for the standard plan, which is probably enough for most people.)

~~~
kentonv
Oh, but note that all plans are free during the beta period, which will last
at least a few months. :)

------
andersonmvd
That's amazing. No more 70 vendors, just take your apps and host in your
server. Cheaper and data under your control. I'm a big fan of this project :)
Congrats!

------
unhammer
Would it be possible to use this to host a Weechat instance with
[http://www.glowing-bear.org/](http://www.glowing-bear.org/) ? (I mean, the UI
of course, but weechat itself is a bit challenging, since you need to generate
an ssl cert, open some ports and whatnot.)

~~~
paulproteus
Yes -- that would work great! With a caveat -- apps have no network access in
Sandstorm by default. The way apps can get network access is that (soon) there
will be a way to have one program called an "IRC driver" receive real network
access, and then it would export the capability to speak to IRC servers to
other apps. An Android intents-like chooser would let the user pick/install an
IRC driver, if an app needs one.

The general idea is that if an app needs IRC access, it can bother the user
once to get it, and if it doesn't need IRC access, then it shouldn't ever have
access to IRC (or the network).

This isn't ready yet, but good golly am I excited for us to finish it up so I
can tell all my friends that Sandstorm is the easiest way to run an IRC
bouncer.

------
escherize
I'd be very interested in a hackpad demo on sandstorm. It's nice to see
Etherpad and Wave though!

~~~
ocdtrekkie
I know Hackpad has been excitedly discussed on #sandstorm before.

------
mintplant
Do you plan on supporting paid apps in the future, or will Oasis be sticking
to free only? I can imagine a one-off payments or subscription models where
users pay for continuous updates, funding further development.

~~~
ocdtrekkie
kentonv answers that mostly here:
[https://news.ycombinator.com/item?id=10150249](https://news.ycombinator.com/item?id=10150249)

------
mjnaus
Are you guys planning on adding paid/premium apps to your app store?

~~~
kentonv
Yes. Probably not in the form of upfront payments, but rather in-app purchases
-- including a "pay what you want" system for open source apps.

------
andybak
Minor gripe.

I can't figure out how to make etherpads public by default.

Which rather kills the primary use-case of etherpads for me (frictionless
collaborative documents - non-guessable urls are the only authentication)

~~~
kentonv
Use the "share" button in the top bar to create a sharing link. :)

~~~
andybak
OK. I'm an idiot.

I'll tell you why I didn't suss this out (and I think this is a geek blind
spot more than a true UX flaw).

1\. I decided all the options FOR the app would be inside the part of the
screen owned by the app (i.e. not the top bar). So I only looked there.

2\. I was expecting the url in the browser's address bar to be shareable.

~~~
paulproteus
Hi andybak, I work on the Sandstorm team and it seems pretty clear that you're
not an idiot.

I'll see if there's something we can do to make this essential UI element more
discoverable.

To some extent, it's a matter of learning about Sandstorm -- Sandstorm's role
in the web app ecosystem is basically to add sharing & access control, so
maybe everyone has to learn this. But hopefully we can help people figure it
out more easily.

~~~
unhammer
Some more UI feedback for you then:

It did take me a while to figure out how to delete "grains" (I would've
thought from the list of grains, instead I had to open one and click the
delete button).

Also, I don't quite understand why I started out with five wekan grains from
the get-go? Maybe a bug.

Also, I think first-time users might need some more hints (like unintrusive
first-run popups or something) that the top bar is the Sandstorm stuff, while
the rest is the app itself. I don't know what would be the best way, it seems
quite challenging to design something like this :-)

What does the key icon do? (No hover text.)

Maybe "Share" should say "Share app"? (So I don't get confused into thinking
it means "share this one wekan note" or "share this particular song from
groovebasin".)

~~~
ocdtrekkie
Being able to delete and rename grains and stuff from the list is something
I've been nudging them about. :)

Yesterday in particular Oasis was under heavy load from HN, if you clicked on
New Wekan a bunch of times before it did it, it might have made a bunch.
Usually it's near instant so this sort of thing doesn't happen.

paulproteus will love all your feedback. He likes feedback. :D

------
cstrahan
Congrats, team Sandstorm!

Just played around with the new UI, looks great!

Looking forward to setting up an instance soon (or perhaps paying for hosting)
:)

The work you all are doing is awesome - keep it up!

------
beilabs
Awesome job guys. Any chance that you'll have apps like Dashing on the
horizon? Containerised dashboard monitoring....

~~~
beilabs
also, Jekyll support pretty please.....

~~~
ocdtrekkie
The 'Hacker CMS' app is actually based on Jekyll, I believe. It can be a bit
kludgy at times, but works.

------
wyldfire
So, how do I manipulate these grains? I created a gitweb repo and I'd like to
rename it, etc. But how?

~~~
ocdtrekkie
If you click on the name of the grain at the top of your screen when it's
open, it'll let you rename it!

And Gitweb itself should present you with some basic instructions on setting
up a webkey to push code to it.

~~~
wyldfire
> And Gitweb itself should present you with some basic instructions on setting
> up a webkey to push code to it.

Yes, but the name of the repo itself has _RENAME_ME as its suffix and AFAICT
there's no way to change it. It seems as if gitlab behaves this way too.

EDIT: ok embarassing mistake on my part, it's all clear now.

~~~
paulproteus
Hi wyldfire,

I hope you don't stay embarrassed. We could improve parts of the interface,
and we need feedback like this to know what people think is going on, so that
we can decide how to change the interface to show people what is actually
going on.

Thanks for leaving the comment and I hope you enjoy using Sandstorm!

~~~
wyldfire
I think in general it's related to the conceptual shift Sandstorm is trying to
drive. There's a lot of touting "control of your own data" and it took a while
for that to sink in for me.

I think it took so long because it's so different from what I'm used to. It
seems like a powerful idea but challenging to make sure your customers'
expectations are managed.

The sidebar/navbar clearly is part of the strategy, well done there. But the
gulf that exists between the specific-app content pane and the sandstorm
navbar is the tricky bit.

------
appleflaxen
This is freaking awesome. I love it.

Definitely in for the $6 hosted version, once you guys are out of beta.

Seriously... wonderful work.

~~~
kentonv
Well all the plans are free during beta so you might as well sign up now. :D

------
technofiend
This is exciting. I would love rstudio here.

