Hacker News new | past | comments | ask | show | jobs | submit login
Sandstorm Oasis hosting open beta and App Market (sandstorm.io)
170 points by kentonv on Aug 31, 2015 | hide | past | favorite | 75 comments



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/

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!


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.


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.


Severine: you're hellbanned.


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


I fully agree, including the apology.

I've just stumbled upon the update (upgrade?) on my self-hosted Sandstorm instance, which I just installed a week ago to try and learn. It feels (and looks, and works!) better.

I'm one of the perfect use cases for Sandstorm -- I use Xubuntu and I've installed it in some friends and relatives' computers, I occasionally help people with "computer problems" and I might dabble with my systems and local network but I'm by no means a net/sysadmin or programmer, and yet I find the whole... ecosystem? (sorry, I can't find the word) fascinating. It's the best sci-fi you can read.

But there is this huge gap that only I seem to see, and I feel Sandstorm could help filling that gap, between those that know how some of this "real sci-fi" works and those that, like me and lots and lots of my fellows, don't.

Let the documentation improve. Hehe, I'm happy about some software thing...


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!)


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


> 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...

> 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.


Makes sense, but mobile developers have realized why this update model is a problem, and have created frameworks that wrap content served up by a server. It gives them the ability to continuously iterate.


While I'm sure there's certainly some refinement to be done on how app updates work, Sandstorm explicitly closes the WebView loophole. An app you run doesn't have access to make backend network requests or frontend javascript requests unless you grant that permission. So it's not really possible to build an app that pretends to run on your server but is really just a wrapper for a SaaS.


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?


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?


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,


I feel that the *aaS model is obsolete. I don't think it was ever particularly good in the first place, but it was convenient, and of course, quite profitable for the providers.

But it has security problems, privacy problems, and leaves users out of control of the platform they are using. And in many cases it's an excuse to charge a subscription fee for something where a one-time charge will do. Service-oriented infrastructure is a distinctly consumer-unfriendly way to operate.

In an age of poor Internet speeds and insufficient PC processing power, the 'cloud' may have briefly made sense. But I think we're well past the point where it does, and consumers should have better options.

The great part about Sandstorm (to me), is that people happy to have cloud hosting services, can, and people who want to self-host, can, and both can use the same apps and software without a problem. Companies that want to pay for a managed hosting service can, and companies that want (or need) everything on premises can, and they can both use the same apps and software.


I look at things through a different framework. The products that end up winning in the very competitive world of software are the products that evolve very quickly.

Almost all the value creation that's happening in the cloud is about enabling agility, and very fast release models.

Agility is far more valuable then the time/effort it takes to maintain these apps.

Agility is the ability to launch a new product or feature faster than your competitors

When agility is no longer valuable to a business, they already have a dominant position in the market or have been disrupted by something else.


I believe your mental model is so tied-up in your ability to create a company based on the SaaS model, it is preventing your ability to comprehend the power behind a platform like Sandstorm. Somehow, you seem to get the power of Docker, but not a simpler, user-friendly version of the same idea.

You obviously are not a believer in the Sandstorm platform, and are thinking about things in a way that I would call traditional (at least for the last 10 years). You could very well be correct, but many of us on this thread think you are incorrect. It's as simple as that.


The power of Docker is enabling companies to move faster. Docker lets developers and companies to continuously deploy with fewer bottlenecks and issues.

Yes, I realize it can be used for other things. I'm not sure if there is value in those things.


> The products that end up winning in the very competitive world of software are the products that evolve very quickly.

On this point, I completely agree. Where we seem to disagree is how best to make sure developers can iterate quickly.


But is that agility good for consumers? In my world, it's not. I deal with a lot of seniors, and you know what they hate? How people in Silicon Valley feel obligated to move stuff around every six weeks.

In fact, most people not in Silicon Valley hate it. And something like Sandstorm puts the user in control of whether or not their stuff changes. Someone can have auto-update on, and have the latest everything, and someone else, even on the same server, can choose to keep a stable version that does what they need.


I don't know, but the solution is education. There more educated the consumer is, the less a company like google or facebook can get away with.

Clearly, there is not enough education about privacy and how your data is being used to extract money from your pockets.

But when it comes to agility, yes, it's more about improving upon (or finding) the value proposition of that product.

If uber could cut down the time it takes to find a car from 5 minutes to 1 minute, wouldn't that be better for everyone?

How does a company on Sandstorm compete with a modern SaaS company that can change an algo behind-the-scenes and instantly improve experience?


I still feel like you're assuming modern SaaS companies changing things behind the scenes "improves" the experience.

Those sorts of mindsets are why my views on Google has heavily soured over the years, the same way my feelings soured about Facebook.

But I definitely agree that consumer education is key. :)


Also, there is this notion that somehow open-source solutions are competitive with SaaS solutions.

Give me one example where the distribution or usage of an open-source solution is comparable to it's SaaS competitor People misunderstand what open-source really is. There is a selfish reason to maintain open-source projects. Developers are above fixing their own problems when working on open-source. This is the only reason companies and developers invest in open-source.

Hence, the type of projects that become massively successful are components, frameworks or platforms... things that are re-usable for the solutions or apps these developers are creating for their companies. There is real economic value being unlocked there. Recent examples being Docker, AngularJS, etc that are supporting by lots of companies

Creating an app or solution is a whole different ballgame. They are usually side projects because there is little or no incentive for a company to take away resources from building their own apps/solutions, to save a few bucks.


I think you just noticed what Sandstorm is, in part, created to do: Make open source solutions competitive. Sandstorm, as-is in beta, already allows me to do more than I can do with Google Drive. To my needs, it's not just competitive... It's winning.


I am very interested to know what are the specific capabilities that you are able to unlock that Google drive can't deliver upon.


Well, first of all, I can run the sorts of apps directly on Sandstorm that I might otherwise have to order AWS or GCE style hosting for. I can publish a website out of this as Drive is actually retiring that functionality.

Also, unlike many Drive apps, where I have to share my information with a third party provider, or "trust" the app, Sandstorm doesn't let my apps betray me. Privacy is inherent in the design.

But the key thing, is if I don't like my host, I CAN LEAVE. I am at the point that I loathe storing my data with Google. I love Gmail, and I wish I could take it with me and put it on a server run by a company I trust. But I can't do that. With Sandstorm, I can. I can run the app I want on the host I want. I have control of my app, my experience, and my data.

Google ruins my experience on a weekly basis. They change things without my permission that breaks my workflow and makes it hard for me to go about my day. I KNOW my Sandstorm hosting will do what I want it to do.

Google can't do any of this for me.


Just a quick note on Gmail. It's not just a mail server, it also filters and classifies emails better than any other product on the market.

No other company has that kind of volume of data and heuristics


I use the manual filters. The supposed intelligent crud is a hindrance and I've largely shut it off. Gmail is a great web mail client, nothing more.

The big issue, is your much talked about data and heuristics are unreliable. Since Google changes their software or algorithms without my permission, I can't rely on any of them.


It's only gmail users that I sometimes have to contact via other means to make them find my mail in the spam...


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.


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.


I know they want to heavily support the "pay what you want" model, as a way to appreciate and reward open source developers for their work. Proprietary apps are supported too, kentonv mentions in-app payments specifically.

Source: https://news.ycombinator.com/item?id=10150249


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?


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.


> 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).


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. :) )


There isn't an official Docker image for now as far as I know, so your best bet is to make an Ubuntu 14.04 Docker container and run the regular Sandstorm installer within it.

I agree it'd be great on NASs. I'm particularly excited about Synology ones since I know they have some x86-64 models. If you're interested in possibly helping out with that stuff, feel free to email community@sandstorm.io and I can see if there's a way we can give you a preview of that sooner rather than later.


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.


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.


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!


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.)


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



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!


Would it be possible to use this to host a Weechat instance with 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.)


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.


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


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


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.


kentonv answers that mostly here: https://news.ycombinator.com/item?id=10150249


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


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.


I believe they intend to support that in the future, yes.


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)


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


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.


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.


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".)


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


Your assumptions seem pretty fair to me. We have to do a better job of teaching people that the topbar contains grain-related functionality -- specifically, functionality that is mediated by Sandstorm, like access control.

FWIW, the first version of Sandstorm let you copy/paste the URL from the address bar, and I'm definitely a fan of that model. But, a lot of people are uncomfortable with that. It "feels" insecure. So we're trying to find a happy middle ground, where the people who like URL sharing can use it, and those that don't can avoid it. It will take some experimentation to get right.


I kinda miss the copy/paste link for certain types of documents. But yeah, sometimes the assurance is nice that absolutely no matter what you need my account to log into something, even if I happen to have a URL in a screenshot or something like that.


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!


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


If you request on the sandstorm-dev list (it's a Google Group) an app, someone might want to port it, or add it to the app voting list. If you're developer-inclined, you can even package apps yourself, Sandstorm has pretty decent dev tools.

Though, depending on what you want to monitor, the ideal drivers to let the app talk to things outside of Sandstorm may not be ready yet.


also, Jekyll support pretty please.....


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


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


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.


> 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.


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!


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.


You're referring to the copy/pastable commands for setting up git, right? You can actually replace the _RENAME_ME thing (and the randomly-generated text before it) with whatever you want when you enter the command. The instructions could certainly use some work, though.


This is freaking awesome. I love it.

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

Seriously... wonderful work.


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


This is exciting. I would love rstudio here.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: