Every SaaS platform makes the same trade-off: convenience in exchange for control. Your data lives on someone else’s servers, behind someone else’s API, subject to someone else’s pricing changes.
AppKask is built to eliminate that trade-off entirely.
A single compiled binary. One file. No JVM, no Node.js runtime, no Python interpreter, no container orchestration required.
The entire data model is a SQLite database — one file. Your media, documents, and workspace files live in a storage directory on disk.
Backup: Copy two things — the database file and the storage directory. Done.
Restore: Put them back. Start the binary. Everything is exactly where you left it.
Migrate: Move the binary and the two files to a new server. There is no migration.
When you hand infrastructure to a client or deploy it in a regulated environment, reliability is non-negotiable. Rust gives us:
This isn’t a technology choice for its own sake. It’s a delivery choice. When you ship a binary to a client’s server, it has to just work. No dependency debugging, no version conflicts, no “works on my machine.”
Both work. The Docker Compose setup gets you running in three commands:
docker compose up
open http://localhost:3000
For bare metal, build from source and run the binary directly. The platform auto-applies database migrations on startup. No separate migration step, no database admin needed.
Every piece of data — media files, user sessions, workspace content, AI agent definitions, access logs — lives on your server. Nothing is routed through a platform cloud. Nothing is telemetered home.
AI agent calls go directly from your server to your chosen LLM provider (Anthropic, OpenAI, or a local Ollama instance). API keys are encrypted at rest on your server. For air-gapped environments, run a local model and the platform works identically.
The platform doesn’t need the cloud to function. Federation connects servers when you want collaboration. But each server is complete and independent by default.