The open-source directory of alternatives to every popular SaaS tool.
π Website Β· π Docs Β· β Submit a Tool
--- ## What is The Alt Stack? **The Alt Stack** is a curated, community-driven directory that helps developers and teams discover open-source and self-hosted alternatives to popular SaaS products β across **28 categories** including Project Management, Analytics, CRM, AI, DevOps, Communication, and more. This repository is the heart of the project. It contains: - ποΈ **The Dataset** β 459+ tools with metadata, pricing, pros/cons, deployment info, and links. - π **66+ Deployment Guides** β Step-by-step self-hosting guides for tools like Plausible, Gitea, Rocket.Chat, and more. - π **Concepts & Docs** β Guides on topics like server setup, monitoring, backups, and secrets management. --- ## π Repository Structure ``` altstack-data/ βββ data/ β βββ tools.json # The core dataset (459+ tools) β βββ tools-min.json # Minified version β βββ category_editorial.json # Category descriptions & metadata β βββ stacks.ts # Curated stack combinations β βββ seo.ts # SEO metadata β βββ schema/ β βββ types.ts # TypeScript schema for the data β βββ docs/ # Full documentation site (Nextra) β βββ app/ β βββ deploy/ # 66+ deployment guides β βββ concepts/ # Self-hosting concepts β βββ quick-start/ # Getting started guides β βββ stacks/ # Curated stack guides β βββ assets/ β βββ logos/ # Tool logos β βββ .github/ βββ ISSUE_TEMPLATE/ # Templates for submissions βββ workflows/ # CI: JSON validation, docs build ``` --- ## π Using the Data The dataset is just JSON. Use it however you want. **Fetch it directly:** ```bash curl -s https://raw.githubusercontent.com/altstackHQ/altstack-data/main/data/tools.json | jq '.[0]' ``` **Use it in JavaScript/TypeScript:** ```typescript import tools from './data/tools.json'; import type { Tool } from './data/schema/types'; const analytics = tools.filter(t => t.category === 'Analytics'); console.log(`Found ${analytics.length} analytics tools`); ``` **Use it in Python:** ```python import json with open('data/tools.json') as f: tools = json.load(f) open_source = [t for t in tools if t.get('is_open_source')] print(f"{len(open_source)} open source tools available") ``` --- ## π€ Contributing We love contributions! Whether it's adding a tool you discovered, fixing a broken link, or writing a deployment guide β every contribution makes the ecosystem better. **Quick links:** - [β Add a new tool](https://github.com/altstackHQ/altstack-data/issues/new?template=add-tool.yml) - [π Report a data error](https://github.com/altstackHQ/altstack-data/issues/new?template=fix-data.yml) - [π Propose a new guide](https://github.com/altstackHQ/altstack-data/issues/new?template=add-guide.yml) Read the full **[Contributing Guidelines](CONTRIBUTING.md)** before submitting a PR. --- ## π Categories | Category | Category | Category | Category | |---|---|---|---| | π¬ Communication | π Analytics | π Project Management | π€ AI Interfaces | | π§ AI Models | π» AI Coding | π¨ Creative | π CMS | | π§ Email | βοΈ Cloud Hosting | ποΈ Databases | π Security | | π File Storage | π° CRM | π E-commerce | π« Support | | βοΈ Legal | ποΈ ERP | π DevOps | πΊ Media | *β¦and more. Explore the full list at [thealtstack.com](https://thealtstack.com).* --- ## π License | What | License | |---|---| | Code & Scripts | [Apache License 2.0](LICENSE) | | Data (`/data`) | [CC BY 4.0](https://creativecommons.org/licenses/by/4.0/) | | Documentation (`/docs`) | [CC BY 4.0](https://creativecommons.org/licenses/by/4.0/) | All tool logos in `assets/logos/` are the property of their respective trademark holders and are used for identification purposes only. ---Built with β€οΈ by the Alt Stack team
## π³ Self-Hosted Deployments The `deployments/` directory contains **65+ production-ready Docker Compose configurations** for the tools in our directory. These are the exact configurations used in the [Self-Hosted Guides](https://thealtstack.com/self-hosted) on our main site. Instead of writing infrastructure code from scratch, you can: 1. Clone this repository 2. Navigate to a tool's folder: `cd deployments/supabase` 3. Run `docker compose up -d` 4. You're live! **Contribute to Deployments:** If you have an optimized `docker-compose.yml` for a tool we haven't covered, or an improvement to an existing one, please open a PR! All configs must follow best practices, use official images where possible, and avoid hardcoding sensitive secrets.