
Highlights
- Scrum and Kanban boards: columns with WIP limits; move cards by drag and drop or the keyboard.
- Backlog and sprints: plan by dragging, timed sprints, a report for every completed sprint and a velocity chart.
- Issues and epics: stories, tasks, bugs and subtasks with points, labels, comments and an epic panel.
- CLI and MCP: the
santiCLI andsanti mcpgive scripts and AI agents what the web UI does. - Import from Jira or Linear: upload a CSV export and review the mapping before it imports.
- Fast Rust server: p95 under 30 ms on 5,000 issues; under 170 KB of JavaScript per page.
- One container to self-host: the image plus PostgreSQL; export your data as JSON any time.
Get started
The website is getsanti.app. Hosted plans are not open yet, so today you run santi yourself.
Self-host
Docker Compose (the image and PostgreSQL from compose.yaml):
git clone https://github.com/emersonjds/santi.git
cd santi
docker compose up -d
Open http://localhost:8080, choose Create account, then New project. The image is
linux/amd64; on Apple Silicon or other ARM hosts, run
docker pull --platform linux/amd64 ghcr.io/emersonjds/santi:latest before docker compose up -d.
Docker with your own PostgreSQL 17:
docker run -d --name santi --restart unless-stopped \
-p 127.0.0.1:8080:8080 \
-e DATABASE_URL=postgres://santi:[email protected]:5432/santi \
-v santi-attachments:/data \
ghcr.io/emersonjds/santi:latest
curl http://localhost:8080/health
Railway: see Deploy on Railway.
Any address other than localhost needs HTTPS in front. Configuration, reverse proxy, upgrades and
backups: docs/self-hosting.md.
CLI
From the checkout, with Rust 1.97 or newer. Create an API token in the account menu first.
cargo install --path crates/santi-cli
santi login --url http://localhost:8080
santi projects list
Documentation
- Self-hosting: configuration, upgrades, backups and restore, reverse proxy, importing, API and CLI reference
- MCP setup for AI agents and editors
- Deploy on Railway
- Performance: budgets, numbers and the load script
- API: interactive docs at
/docs, OpenAPI 3.1 at/openapi.jsonon your server - Changelog
Contributing
Setup, quality gate and workflow are in CONTRIBUTING.md. Never paste code, text or assets from proprietary trackers; follow the Code of Conduct and report vulnerabilities as described in SECURITY.md.
Pricing and sustainability
santi is free and open source, and every feature ships in the open code. Self-hosting is free with no user or project limits; hosting and services fund the work, never features locked out of the code. Plans and prices: docs/pricing.md.
License
santi is licensed under the GNU Affero General Public License v3.0 (AGPL-3.0-only). Use it, change it and run it for your team freely; if you offer a modified santi to others over a network, publish your changes under the same license. Versions up to 0.24.1 were released under MIT OR Apache-2.0 and stay available under those terms. The name and logo are covered by the trademark policy. The web UI started from shadcn-admin (MIT); its notice is in web/LICENSE-shadcn-admin.