sandstorm
Sandstorm is a self-hostable web productivity suite. It's implemented as a security-hardened web app package manager.
Top Related Projects
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.
Scalable PaaS (automated Docker+nginx) - aka Heroku on Steroids
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:
-
Choose an installation method:
- One-click install on a supported cloud provider
- Install on your own Linux server
- Use Sandstorm Oasis (hosted solution)
-
For a self-hosted installation on Linux, run:
curl https://install.sandstorm.io | bash
-
Follow the prompts to configure your server
-
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
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.
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.
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 designs to code with AI
Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.
Try Visual CopilotREADME
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.
- Read more at: https://sandstorm.io/
- Try the demo: https://demo.sandstorm.io/
- Documentation available at: https://docs.sandstorm.io/
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!
Top Related Projects
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.
Scalable PaaS (automated Docker+nginx) - aka Heroku on Steroids
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.
Convert designs to code with AI
Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.
Try Visual Copilot