mirror of
https://github.com/altstackHQ/altstack-data.git
synced 2026-04-23 17:25:14 +02:00
235 lines
7.9 KiB
Markdown
235 lines
7.9 KiB
Markdown
<div align="center">
|
|
|
|
# The AltStack — Data HQ
|
|
|
|
### The open dataset behind [thealtstack.com](https://thealtstack.com)
|
|
|
|
**488 open-source tools · 32 categories · 352 AI models · 68 Docker deploy configs**
|
|
|
|
[](https://thealtstack.com)
|
|
[](https://github.com/aa-humaaan/thealtstack)
|
|
[](LICENSE)
|
|
|
|
</div>
|
|
|
|
---
|
|
|
|
## What is this repo?
|
|
|
|
This is the **data layer** for [The AltStack](https://thealtstack.com) — a curated directory of open-source alternatives to popular SaaS products. Everything the website displays comes from the files in this repo:
|
|
|
|
- The full tool database (`tools.json`)
|
|
- Docker Compose deployment configs for 68+ tools
|
|
- Blog content and editorial copy
|
|
- Category descriptions and SEO metadata
|
|
- Curated "Stack" bundles (pre-built tool combos for common use cases)
|
|
|
|
If you want to add a tool, fix a description, or contribute a Docker config — this is where you do it.
|
|
|
|
---
|
|
|
|
## Repository Structure
|
|
|
|
```
|
|
├── data/
|
|
│ ├── tools.json # The master database — 488 tools, every field
|
|
│ ├── tools-min.json # Minified version (client-side, faster loads)
|
|
│ ├── tools_expanded.json # Expanded version with enriched metadata
|
|
│ ├── blog-posts.ts # Blog post content (15 articles)
|
|
│ ├── stacks.ts # Curated stack definitions (5 bundles)
|
|
│ ├── category_editorial.json # Category descriptions, SEO copy, editorial
|
|
│ ├── memory.json # Sentinel pipeline state & run history
|
|
│ └── seo.ts # Global SEO configuration
|
|
├── docker-deploy/ # 68 Docker Compose configs + install scripts
|
|
│ ├── supabase/
|
|
│ │ ├── docker-compose.yml
|
|
│ │ └── install.sh
|
|
│ ├── n8n/
|
|
│ ├── plausible/
|
|
│ ├── mattermost/
|
|
│ └── ... (68 tools total)
|
|
├── deployments/ # Deployment metadata & generated configs
|
|
├── docs/ # Documentation site source (Nextra)
|
|
├── scraper/ # Python scraper for data enrichment
|
|
│ ├── scraper.py
|
|
│ └── requirements.txt
|
|
├── scripts/
|
|
│ └── fetch-github-metadata.js # GitHub stars/activity enrichment
|
|
├── assets/ # Logos and static assets
|
|
├── CONTRIBUTING.md # How to contribute
|
|
├── CRITERIA.md # Tool vetting standards
|
|
├── CODE_OF_CONDUCT.md # Community guidelines
|
|
└── LICENSE # CC BY 4.0
|
|
```
|
|
|
|
---
|
|
|
|
## The Data: `tools.json`
|
|
|
|
The core of this repo. Each tool entry looks like this:
|
|
|
|
```json
|
|
{
|
|
"slug": "plausible",
|
|
"name": "Plausible Analytics",
|
|
"category": "Analytics",
|
|
"is_open_source": true,
|
|
"pricing_model": "Free Self-Hosted / Paid Cloud",
|
|
"website": "https://plausible.io",
|
|
"description": "Lightweight and privacy-friendly Google Analytics alternative.",
|
|
"alternatives": ["Google Analytics", "Mixpanel"],
|
|
"tags": ["analytics", "privacy", "self-hosted"],
|
|
"logo_url": "https://...",
|
|
"avg_monthly_cost": 0,
|
|
"pros": ["Privacy-first", "Lightweight script", "Easy to self-host"],
|
|
"cons": ["Fewer advanced features than GA4"]
|
|
}
|
|
```
|
|
|
|
### Categories (32)
|
|
|
|
| Category | Tools | Category | Tools |
|
|
|---|---|---|---|
|
|
| AI Models | 352 | Productivity | 16 |
|
|
| DevOps | 9 | Marketing | 9 |
|
|
| Security | 9 | Analytics | 8 |
|
|
| Cloud Infrastructure | 5 | Communication | 5 |
|
|
| Design | 5 | Backend as a Service | 4 |
|
|
| CRM | 4 | Automation | 4 |
|
|
| Support | 4 | AI Coding | 3 |
|
|
| AI Image Generation | 3 | CAD | 3 |
|
|
| ERP | 3 | Project Management | 3 |
|
|
| AI Interfaces | 2 | AI Video Generation | 2 |
|
|
| AI Tools | 2 | API Development | 2 |
|
|
| Creative | 2 | E-commerce | 2 |
|
|
| Email | 2 | Financial | 2 |
|
|
| HR | 2 | Legal | 2 |
|
|
| AI Runners | 4 | Monitoring | 6 |
|
|
| Photos | 1 | Uncategorized | 8 |
|
|
|
|
---
|
|
|
|
## Docker Deploy Configs
|
|
|
|
Every config in `docker-deploy/` is a ready-to-use `docker-compose.yml` with an accompanying `install.sh` script. Just clone and run:
|
|
|
|
```bash
|
|
cd docker-deploy/plausible
|
|
chmod +x install.sh
|
|
./install.sh
|
|
```
|
|
|
|
Or copy the `docker-compose.yml` directly:
|
|
|
|
```bash
|
|
cd docker-deploy/n8n
|
|
docker compose up -d
|
|
```
|
|
|
|
Currently covering **68 tools** including: Supabase, Mattermost, Plausible, PostHog, Keycloak, N8N, Immich, Authentik, Metabase, Plane, and many more.
|
|
|
|
> **Want to add a config?** See [CONTRIBUTING.md](CONTRIBUTING.md). We test every config before merging.
|
|
|
|
---
|
|
|
|
## Curated Stacks
|
|
|
|
Pre-built tool bundles for common use cases, defined in `data/stacks.ts`:
|
|
|
|
| Stack | What it's for | Monthly savings |
|
|
|---|---|---|
|
|
| 🚀 **The Bootstrapper** | Full SaaS toolkit for solo founders | ~$310/mo |
|
|
| 🎨 **The Designer** | Adobe Creative Cloud replacement | ~$110/mo |
|
|
| 🛡️ **The Privacy Stack** | De-Google your life | ~$80/mo |
|
|
| 🏢 **The Enterprise** | Full office suite replacement | ~$250/mo |
|
|
| 🤖 **The AI Stack** | Self-hosted AI/ML infrastructure | ~$200/mo |
|
|
|
|
---
|
|
|
|
## How the Data Stays Fresh
|
|
|
|
This repo is kept up-to-date by an automated pipeline (the "Sentinel Engine") that runs nightly via GitHub Actions:
|
|
|
|
1. **Discovery** — Scans GitHub trending, Hacker News, and community submissions for new tools
|
|
2. **Validation** — Checks existing entries for dead links, archived repos, and stale projects
|
|
3. **Enrichment** — Pulls latest GitHub stars, activity metrics, and metadata
|
|
4. **Docker generation** — Auto-generates Docker Compose configs for newly added tools
|
|
5. **Content** — Generates blog posts, tool reviews, and comparison pages
|
|
|
|
The pipeline opens PRs automatically so everything gets reviewed before merging.
|
|
|
|
---
|
|
|
|
## Contributing
|
|
|
|
We welcome contributions! The most impactful ways to help:
|
|
|
|
### Add a new tool
|
|
1. Fork this repo
|
|
2. Add a new entry to `data/tools.json` following the schema above
|
|
3. Make sure it meets our [vetting criteria](CRITERIA.md)
|
|
4. Open a PR
|
|
|
|
### Add a Docker config
|
|
1. Create a new folder in `docker-deploy/` named after the tool's slug
|
|
2. Add a `docker-compose.yml` and an `install.sh`
|
|
3. Test it locally — it should produce a working deployment
|
|
4. Open a PR
|
|
|
|
### Fix data
|
|
Found a broken link, wrong pricing, or outdated description? Edit `data/tools.json` and open a PR. Small, targeted fixes are the fastest to merge.
|
|
|
|
See [CONTRIBUTING.md](CONTRIBUTING.md) for the full guide.
|
|
|
|
---
|
|
|
|
## Using the Data
|
|
|
|
The data in this repo is licensed under [CC BY 4.0](LICENSE). You're free to use it in your own projects — just give attribution.
|
|
|
|
### Fetch the raw JSON
|
|
|
|
```bash
|
|
# Full database
|
|
curl -O https://raw.githubusercontent.com/altstackHQ/altstack-data/main/data/tools.json
|
|
|
|
# Minified (smaller, for client-side use)
|
|
curl -O https://raw.githubusercontent.com/altstackHQ/altstack-data/main/data/tools-min.json
|
|
```
|
|
|
|
### Use in JavaScript/TypeScript
|
|
|
|
```ts
|
|
const response = await fetch(
|
|
'https://raw.githubusercontent.com/altstackHQ/altstack-data/main/data/tools.json'
|
|
);
|
|
const tools = await response.json();
|
|
|
|
// Filter by category
|
|
const analytics = tools.filter(t => t.category === 'Analytics');
|
|
|
|
// Find alternatives to a specific SaaS
|
|
const slackAlts = tools.filter(t =>
|
|
t.alternatives?.includes('Slack')
|
|
);
|
|
```
|
|
|
|
---
|
|
|
|
## Links
|
|
|
|
- 🌐 **Website**: [thealtstack.com](https://thealtstack.com)
|
|
- 💻 **Frontend repo**: [aa-humaaan/thealtstack](https://github.com/aa-humaaan/thealtstack)
|
|
- 🐛 **Report an issue**: [Open an issue](https://github.com/altstackHQ/altstack-data/issues)
|
|
- 📬 **Request a tool**: [Open an issue](https://github.com/altstackHQ/altstack-data/issues/new)
|
|
|
|
---
|
|
|
|
<div align="center">
|
|
|
|
**Built by [@aa-humaaan](https://github.com/aa-humaaan)**
|
|
|
|
Stop paying for SaaS you can self-host.
|
|
|
|
</div>
|