Self-hosted app platform
Hand-written or agent-built.Live behind your sign-in.
Every Git push redeploys. Or ship a working tree with the toft CLI, skills for your coding agent included. Python, R, Node, Go and notebooks, on your own infrastructure.
github.com/acme/orders
Redeploys on every push
or from a working tree
toft deploy
Framework detected
Dependencies checked
apps.example.com/orders/
Behind your sign-in
01
Languages and frameworks
Toft reads the project and picks the build. You don’t write a Dockerfile or a config file.
- PythonSDK
- Flask
- FastAPI
- Streamlit
Any other Python app
- NodeSDK
- Next.js
Any other Node app
- GoSDK
Any Go service
- RSDK
- Shiny
- plumber
- R Markdown
- Quarto
Other R projects aren’t built
- Notebooks—
- marimo
Jupyter and Quarto documents, re-run when you deploy
- Static—
A folder of HTML, served as it is
If your project already builds to static HTML, as Vite, Astro, SvelteKit, Hugo, Eleventy, Create React App do, tell Toft which folder the output goes to and it serves the files.
02
Built for coding agents
The build runs on the install, so an agent needs only your source and the toft binary. No language toolchain on the machine it works on.
# teach your agent once
toft skill toft-cli > ~/.claude/skills/toft-cli/SKILL.md
toft skill toft-sdk > ~/.claude/skills/toft-sdk/SKILL.md
# then the loop it runs on its own
toft create --yes --link # claim an address, deploy, write toft.toml
toft deploy # ship the working tree again
toft logs # read what the app said- Skills included
toft-cli covers the deploy loop and toft-sdk covers writing the app.
toft skillprints the copy written for your version, for Claude Code, Codex, Cursor or any agent that reads the Agent Skills format. - No browser needed
An agent signs in with a personal API key or a deploy key that an administrator scopes. A person approves a device once in the browser.
- Readable results
Every command can answer in JSON with a documented exit code, and a refused deploy says what to fix.
03
Included with every app
No extra services to install or pay for.
Git push to deploy
Connect a repository and a branch, and every push ships. The new version goes live with no downtime, and a failed build leaves the old one serving.
Scheduled and background jobs
Run a report every night, or start long work from inside an app. Each run is logged.
Storage
An administrator attaches a file share or an S3 bucket. The app sees a folder and never handles the credentials.
A CLI and SDKs
Deploy from a terminal, uncommitted changes included. SDKs for Python, Node, Go and R cover jobs, storage and messages.
04
Integrations
An administrator sets up each connection once and chooses which apps can use it. Apps send through Toft and never see the credential.
- Messages
- Slack
- Microsoft Teams
- Microsoft Teams (bot)
- Google Chat
- Discord
- Files
- SharePoint
- OneDrive
- Google Drive
- Alerts and webhooks
- PagerDuty
- Signed webhook
05
Where it runs
Toft is one binary in one image. It runs wherever containers do, with a Postgres database and your identity provider.
- Runs on
Any container runtime: Docker Compose on a single server, Kubernetes through a Helm chart, Amazon ECS and EKS, and Azure AKS. On Kubernetes an app can run in its own pod, with network policy around it.
- App storage
EFS, Azure Files or any S3-compatible bucket.
- Offline
An install needs no internet, no vendor service and no third-party account. Anything that reaches out is an optional capability an administrator turns on.
- Sign-in
Any OpenID Connect provider, including Okta, Microsoft Entra ID, Auth0, Keycloak, Ping and OneLogin.
06
For your security review
What an administrator or auditor can check for themselves.
Access is set per app
Each app is open to named people, to groups, to everyone signed in, or to the public if an administrator allows it.
Dependencies are checked
Every build is checked against published advisories, and running apps are checked again. One inventory covers every app.
Audit-ready reports
A NIST SP 800-171 control document as a PDF, and an audit report read live from the install and exported with a digest and a date.
Changes are recorded
Sign-ins, access changes and administrator actions go to an audit log.
07
Get started
Try it on the playground first, or put it on a server of your own.
- Playground
A shared Toft to try things on. Deploy an app, open it, share it. Don’t put anything private there.
- One server
Linux on x86_64 or arm64, 4 GB of RAM and 20 GB free. The script checks the machine first, offers to install Docker if it’s missing, and prints the administrator’s password once.
curl -fsSL https://raw.githubusercontent.com/larchway-labs/toft-install/main/install.sh | sh - Kubernetes
A Helm chart, with setups for Amazon EKS and ECS and Azure AKS in the administrator’s guide.
- The CLI
Linux and macOS; Windows has its own download. Then
toft loginwith your install’s address, andtoft createin your app’s folder.curl -fsSL https://raw.githubusercontent.com/larchway-labs/toft-cli/main/install.sh | sh
See it running.
The playground is a real Toft. Deploy something and open it at its own address.