Introducing Tempest

06 Jan 2023

Recently I came to a hard realization: I am never going to get Sandstorm off the ground in a real way.

I’ve been part of the Sandstorm community since it was run by a for-profit startup, initially as a user and app developer. For the past three years, I’ve been the most active contributor to Sandstorm itself, and in that time I’ve fixed some bugs, added a few features, but ultimately most of the energy I’ve put into Sandstorm core has been:

It feels like I’m just treading water. Nobody’s paying me, and hacking on Sandstorm is not fun. For a project that is now heavily dependent on volunteer labor, not being fun is fatal.

But the reasons Sandstorm exists are as relevant as ever, and I’m not willing to wait until Sandstorm is no longer runnable and then go back to not having anything like it.

So I’m starting over. I’ve started writing Tempest (working name), a platform that can run existing Sandstorm apps, but with a slightly different focus, and a tech stack that I (and some others I’ve talked to) can get excited about, and can actually maintain.

There are a few ways in which the focus is different.

Since Sandstorm-the-business shut down, the community has wanted to focus more on the self-hosted use case, especially smaller deployments – so Tempest is designed with that in mind from the get-go. Some concrete examples of this:

Sandstorm was also never good at dealing with apps that want to talk to the outside world. With all the recent excitement about the Fediverse, I really, really want Sandstorm to be a good solution for hosting ActivityPub-enabled apps. But the platform features we’d need to make that happen are too difficult to build with the current tech stack. The details of why this is hard in Sandstorm are a topic for another post, but the ability to actually deliver these features was a major consideration in selecting technologies to build on.

I’ll have more to say about the whys of Tempest’s tech stack in future blog posts; I spent a fair amount of time evaluating different options and I want to give that process the space it deserves. The TL;DR:

I plan on writing blog posts talking about progress at least once a month; stay tuned.


Ok, so Sandstorm’s biggest contributor has given up on the project 😬. What does that mean for Sandstorm?

In the short to medium term, not much, actually. I’ll probably be more frank about the fact that we aren’t really shipping platform features, and I will waste less time trying to do ambitious things only to hit dead-ends. But I’m still using Sandstorm, and so I’ll keep putting out fires and keep it afloat until I’m actually ready to jump ship; Sandstorm will remain fit for purpose until I have something better for my purposes.

I’ll also keep working on app packaging and development; Tempest’s sandbox aims to be fully compatible with Sandstorm’s, so efforts here won’t be wasted. If you’re thinking of working on apps, don’t let this deter you either.

…and of course, I’m not the only contributor to Sandstorm; Kenton has managed to keep the dependencies up to date continuously since the business shut down, so there’s no reason to believe Sandstorm will just collapse in my absence when the time comes.

I’ll also continue to hang out in #sandstorm on libera.chat; feel free to talk to me about either Sandstorm or Tempest there.