Define once. Run everywhere.
Stacktora turns the stack you pick into a complete, runnable bootstrap — docker-compose, Makefile, Dockerfile, CI and 15+ files — so your whole team runs the identical environment, every clone, every time.
Overview
Stacktora is a generator, not a runtime. You define a stack — a runtime, datastores, backing services, optional frontend or mobile client, exact versions and host ports — and Stacktora writes a clean, opinionated set of files you fully own. There's no lock-in: delete your account tomorrow and every generated project keeps running exactly as before.
The whole flow is three steps:
- Define your stack in the wizard (or start from a template).
- Generate — Stacktora produces the bootstrap in your browser. Your source code never leaves your machine.
- Clone & run —
make setupthenmake dev, and you're up.
.env.Quickstart
asdf for matching bare-metal runtimes (it reads .tool-versions). For a mobile client, the relevant SDK (Expo / React Native or Flutter).Once you've generated and downloaded (or pushed) a project, getting it running is two commands:
# 1) copy the example env and adjust any secrets
cp .env.example .env
# 2) install the toolchain + dependencies and build images
make setup
# 3) boot the full stack with hot reload
make dev
Your app is then live at http://localhost:<port>. Run make doctor any time to check that Docker is ready and the host ports are free before starting.
What you get
Every project includes a consistent, production-minded baseline:
stacktora.json is a small, machine-readable record of your stack (no secrets) — handy for version control and future tooling.
Plus optional outputs you can toggle on: a multi-stage Dockerfile, Kubernetes manifests, a Taskfile.yml, .editorconfig, .pre-commit-config, .envrc (direnv), .gitpod.yml, a .devcontainer (VS Code / Codespaces), and an app/ folder when you add a mobile client.
depends_on gates the app on healthy dependencies — so "clone to running" is minutes, not a debugging session.Make targets
The Makefile is the standard entry point. Run make help to list everything.
| Command | What it does |
|---|---|
make doctor | Preflight — verify Docker is ready and the required host ports are free |
make setup | Run doctor, then install the toolchain + dependencies and build images |
make dev | Start the full stack (app + services) with hot reload |
make test | Run the test suite inside the app container |
make lint | Run linter / formatter checks (when a linter is selected) |
make db-seed | Re-run seed SQL against the database (when seeding is on) |
make logs | Tail logs for all services |
make down | Stop & remove containers (named volumes are kept) |
make app-setup | Install the mobile app's dependencies (when a mobile client is added) |
make app | Start the mobile dev server on your host (when a mobile client is added) |
Services & datastores
Add exactly what your app talks to. Each selection becomes a pinned, healthchecked service in docker-compose.yml with a named volume for its data and a connection string wired into your .env using the in-network hostname (e.g. postgres, redis).
Datastores
Backing services
In the wizard, use the search box to filter instantly and the category groups to browse. Each service's version and host port is editable in the Configure step.
Frontend & mobile clients
Stacktora covers backend, web, and mobile.
Runtimes
Web frontend (full-stack)
Toggle on a separate frontend and Stacktora adds a second web service alongside your API — Vite + React, Vite + Vue, SvelteKit or Angular — wired to call the API.
Mobile client
Add a mobile app and Stacktora generates an app/ folder with a real client that pings your API. Because phones don't run in Docker, the app runs on your host while the backend runs in Docker.
| Framework | Generated in app/ |
|---|---|
| Expo (React Native) | package.json, app.json, App.js, .env.example, README |
| React Native (CLI) | package.json, app.json, index.js, App.js, metro.config.js, README |
| Flutter | pubspec.yaml, lib/main.dart, .env.example, README |
make app-setup # install the app's dependencies
make app # start the Expo / RN / Flutter dev server
localhost on your machine. Set the API URL in app/.env to your computer's LAN IP, e.g. http://192.168.1.20:<port>.Path to production
Local compose is for development. Toggle on the Kubernetes output and Stacktora generates k8s/manifests.yaml that mirrors your stack onto a cluster — a namespace, a Secret with your app env, a Deployment + Service for the app, and a Deployment + Service + PersistentVolumeClaim for each stateful datastore. In-cluster hostnames match the Service names, so your connection strings work unchanged.
# build & push your app image (manifests reference app:latest)
docker build -t <your-registry>/app:latest .
docker push <your-registry>/app:latest
# apply everything (creates the namespace)
kubectl apply -f k8s/manifests.yaml
The included k8s/README.md is explicit that this is a starting point — before real production add Ingress + TLS, resource requests/limits, liveness/readiness probes, an autoscaler, and proper secret management (Sealed Secrets / external-secrets), and prefer managed datastores where you can.
Push to GitHub
On a paid plan you can push the generated bootstrap straight to a repository as a pull request, without leaving Stacktora. Connect a repository, and Stacktora commits every file on a new branch and opens a PR for review. You can also download the project as files at any time.
CLI & stacktora.json
Every project includes a stacktora.json — a small, secret-free record of your stack (runtime, datastores, services, ports, options). The official Stacktora CLI reads that file and regenerates your project's files locally, using the exact same engine as this site — no account, no network, fully offline.
# run without installing
npx stacktora sync # regenerate all files from stacktora.json
npx stacktora check # show what would change, without writing
npx stacktora init # create a starter stacktora.json here
This keeps a project's dev environment from drifting — when you change a port or add a service inside stacktora.json and re-run sync, your local files update to match without touching .env or any other untracked file.
Sign in with GitHub & Google
Stacktora supports one-click OAuth sign-in with GitHub and Google — no password required. On the sign-in or create account screen, click either provider button and you will be redirected to that provider to authorise access, then returned to Stacktora automatically.
New accounts: if no Stacktora account exists for your email address, one is created automatically on first OAuth sign-in and a welcome email is sent.
Existing accounts: if you previously signed up with an email and password using the same address, OAuth sign-in will link to that existing account — your library, settings and plan are preserved.
Security: Stacktora never receives your GitHub or Google password. OAuth tokens are exchanged server-side over HTTPS and only your verified email address and display name are stored.
Library & sharing
When you're signed in, every save becomes a version in your library — re-run or roll back any stack at any time, synced across your devices. Anonymous work is kept in your browser until you sign in.
Need a teammate to see a stack? Create a share link — a short /s/<token> URL that opens the exact stack in Stacktora. Share links expose only the stack recipe, never your code or secrets.
Plans & limits
The full generator and every output file are free — paid plans add scale and team features, not core capability.
| Plan | Price | Includes |
|---|---|---|
| Free | $0 | Full generator & all output files, the template gallery, and 1 saved project (latest version only) |
| Pro | $9/mo | Everything in Free, plus unlimited projects, 30 saved versions per project, one-click Push-to-GitHub, and the option to remove Stacktora attribution |
| Team | $49/mo | Everything in Pro, plus a shared workspace for up to 10 members, shared settings, and your org's branding on every file |
| Growth | $199/mo | Everything in Team, plus up to 30 members, priority onboarding support, a dedicated account manager, and custom integrations on request |
Team and Growth are single workspace subscriptions, not per-seat — the owner pays once and invited members get full workspace features at no extra cost. See the pricing page for the full comparison.
Account & data
Your account holds only your email, a hashed password, and the stack recipes you save — not your application or its data. Connections use HTTPS, passwords are hashed, and we never sell data or run ads.
Billing
All payments run through Stripe (a PCI-DSS Level 1 certified processor). Card details are entered on Stripe's secure checkout and are never seen or stored by Stacktora — we keep only a Stripe customer reference. Manage your card, invoices, or cancellation any time from the billing portal in your account.
Deleting your account
Open the account menu and choose Delete account, confirm with your password, and we permanently erase your profile, every saved project and version, and your share links — and immediately cancel any active subscription. It's irreversible and complete (in line with GDPR, CCPA and PIPEDA). Files you've already generated onto your machine or pushed to your repos are unaffected.
Get help
Stuck or have a question? Browse the FAQ, open the app, or email support@stacktora.com.