Convert Figma logo to code with AI

sandstorm-io logosandstorm

Sandstorm is a self-hostable web productivity suite. It's implemented as a security-hardened web app package manager.

6,704
704
6,704
645

Top Related Projects

11,181

The most scalable and customizable identity server on the market. Replace your Homegrown, Auth0, Okta, Firebase with better UX and DX. Has all the tablestakes: Passkeys, Social Sign In, Multi-Factor Auth, SMS, SAML, TOTP, and more. Written in Go, cloud native, headless, API-first. Available as a service on Ory Network and for self-hosters.

13,162

Scalable PaaS (automated Docker+nginx) - aka Heroku on Steroids

28,552

A docker-powered PaaS that helps you build and manage the lifecycle of applications

Simple, Versatile, Yours

YunoHost is an operating system aiming to simplify as much as possible the administration of a server. This repository corresponds to the core code, written mostly in Python and Bash.

Quick Overview

Sandstorm is an open-source platform for self-hosting web apps. It allows users to install and run various web applications on their own servers, providing enhanced privacy, security, and control over their data. Sandstorm uses a unique containerization approach to isolate apps and manage user permissions.

Pros

  • Enhanced privacy and security through app isolation and fine-grained permissions
  • Easy installation and management of web applications
  • Self-hosted solution, giving users full control over their data
  • Active community and a growing marketplace of apps

Cons

  • Steeper learning curve compared to traditional cloud services
  • Limited selection of apps compared to mainstream app stores
  • Resource-intensive for small-scale deployments
  • Development of new apps for the platform can be challenging

Getting Started

To get started with Sandstorm, follow these steps:

  1. Choose an installation method:

    • One-click install on a supported cloud provider
    • Install on your own Linux server
    • Use Sandstorm Oasis (hosted solution)
  2. For a self-hosted installation on Linux, run:

curl https://install.sandstorm.io | bash
  1. Follow the prompts to configure your server

  2. Access the Sandstorm web interface and start installing apps

For more detailed instructions and alternative installation methods, visit the official Sandstorm documentation at https://docs.sandstorm.io/

Competitor Comparisons

11,181

The most scalable and customizable identity server on the market. Replace your Homegrown, Auth0, Okta, Firebase with better UX and DX. Has all the tablestakes: Passkeys, Social Sign In, Multi-Factor Auth, SMS, SAML, TOTP, and more. Written in Go, cloud native, headless, API-first. Available as a service on Ory Network and for self-hosters.

Pros of Kratos

  • Focused on identity and user management, providing a more specialized solution
  • Offers modern authentication methods like WebAuthn and passwordless login
  • Designed for cloud-native environments with Kubernetes support

Cons of Kratos

  • Narrower scope compared to Sandstorm's full application platform
  • Requires more integration work to build a complete application ecosystem
  • Less emphasis on end-user simplicity and one-click app installations

Code Comparison

Kratos (Go):

import "github.com/ory/kratos/x"

func initializeKratos() {
    reg := driver.NewDefaultRegistry()
    kratos, err := reg.Kratos()
    if err != nil {
        panic(err)
    }
}

Sandstorm (JavaScript):

import { Meteor } from 'meteor/meteor';

Meteor.startup(() => {
  SandstormDb.ensureSubscriberRole();
  SandstormPermissions.createBasicPermissions();
});

While Kratos focuses on identity management with a Go-based implementation, Sandstorm provides a more comprehensive application platform using JavaScript and the Meteor framework. Kratos offers more flexibility for modern authentication methods, but Sandstorm provides an integrated solution for hosting and running web applications with built-in user management.

13,162

Scalable PaaS (automated Docker+nginx) - aka Heroku on Steroids

Pros of CapRover

  • Easier to deploy and manage containerized applications
  • More active development and community support
  • Better integration with modern cloud infrastructure

Cons of CapRover

  • Less focus on end-user privacy and security
  • Requires more technical knowledge to set up and maintain
  • Limited built-in application ecosystem compared to Sandstorm

Code Comparison

CapRover (Node.js):

const express = require('express')
const app = express()
app.get('/', (req, res) => res.send('Hello World!'))
app.listen(80, () => console.log('Server running'))

Sandstorm (C++):

#include "sandstorm/grain.h"
class HelloWorld: public sandstorm::Grain {
public:
  kj::Promise<void> serve(sandstorm::HttpRequest request) {
    return request.respond(200, "text/plain", "Hello World!");
  }
};

Both projects aim to simplify application deployment, but CapRover focuses on Docker-based deployments for developers, while Sandstorm emphasizes user-friendly, secure personal servers. CapRover offers more flexibility for modern web applications, whereas Sandstorm provides a more integrated, privacy-focused approach. The code examples highlight the different languages and approaches used by each project.

28,552

A docker-powered PaaS that helps you build and manage the lifecycle of applications

Pros of Dokku

  • Lightweight and easy to set up, requiring minimal configuration
  • Supports multiple programming languages and frameworks out of the box
  • Offers a Heroku-like PaaS experience on your own hardware

Cons of Dokku

  • Limited built-in security features compared to Sandstorm's containerization
  • Lacks Sandstorm's fine-grained permission system and user management
  • May require more manual intervention for complex deployments

Code Comparison

Dokku deployment example:

git remote add dokku dokku@yourdomain.com:myapp
git push dokku main

Sandstorm deployment (using vagrant):

vagrant init sandstorm
vagrant up
vagrant ssh -c "sudo sandstorm install"

Summary

Dokku is a lightweight PaaS solution that simplifies app deployment, while Sandstorm focuses on providing a secure, containerized environment for running web applications. Dokku offers easier setup and broader language support, but Sandstorm excels in security and user management features. The choice between them depends on specific project requirements and priorities.

Simple, Versatile, Yours

Pros of Cozy Stack

  • Written in Go, offering better performance and easier deployment
  • More focused on personal cloud and data ownership
  • Active development with frequent updates and releases

Cons of Cozy Stack

  • Less emphasis on application sandboxing compared to Sandstorm
  • Smaller ecosystem of available apps
  • Steeper learning curve for developers

Code Comparison

Cozy Stack (Go):

func (i *Instance) Scheme() string {
    if i.Dev {
        return "http"
    }
    return "https"
}

Sandstorm (C++):

kj::String Grain::getUrl(kj::StringPtr path) {
  return kj::str(baseUrl, "/grain/", urlEncode(id), path);
}

Both projects aim to provide self-hosted cloud solutions, but with different approaches. Cozy Stack focuses on personal data management and integration, while Sandstorm emphasizes security through containerization. Cozy Stack's use of Go may offer performance benefits, but Sandstorm's sandboxing provides stronger isolation between apps. Cozy Stack has a more active development cycle, while Sandstorm has a larger app ecosystem. The code snippets show different language choices and architectural approaches, with Cozy Stack using Go for simplicity and Sandstorm using C++ for low-level control.

YunoHost is an operating system aiming to simplify as much as possible the administration of a server. This repository corresponds to the core code, written mostly in Python and Bash.

Pros of YunoHost

  • More comprehensive self-hosting solution, including system-level management
  • Larger app catalog with over 300 applications available
  • Designed for ease of use, with a user-friendly web interface

Cons of YunoHost

  • Less focus on security isolation between apps compared to Sandstorm
  • May require more system resources due to its full-stack nature
  • Less emphasis on rapid app deployment and instant updates

Code Comparison

YunoHost (Python):

def _set_ssh_port(ssh_port, ssh_port_old=None):
    if ssh_port == ssh_port_old:
        return
    if not ssh_port:
        ssh_port = 22

Sandstorm (C++):

void SandstormCore::validateWebkey(kj::StringPtr webkey) {
  if (webkey.size() != 52) {
    KJ_FAIL_REQUIRE("Invalid webkey length.");
  }
}

YunoHost focuses on system-level configuration and management, while Sandstorm emphasizes app containerization and security. YunoHost's code often deals with system settings, whereas Sandstorm's code frequently handles app isolation and access control. Both projects aim to simplify self-hosting, but with different approaches to architecture and security.

Convert Figma logo designs to code with AI

Visual Copilot

Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.

Try Visual Copilot

README

Sandstorm

Sandstorm is a self-hostable web productivity suite. It's implemented as a security-hardened web app package manager. Sandstorm makes it easy to run your own server.

Use Sandstorm to install apps to create documents, spreadsheets, blogs, git repos, task lists, and more as easily as you'd install apps on your phone.

Sandstorm is open source and can be installed on any x86-64 Linux system.

Installing

See installation instructions in the Sandstorm documentation.

Using Sandstorm

See the overview in the Sandstorm documentation.

How It Works

See how it works and security practices in the Sandstorm documentation.

How to Package Apps

See the developer hub in the Sandstorm documentation.

Contribute

Want to help? Check out CONTRIBUTING.md. Also see our community page or get on our discussion group and let us know!