Documentation

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 & runmake setup then make dev, and you're up.
Generation runs entirely in your browser. Stacktora never receives or stores your source code, and secrets stay local — we emit safe placeholders, never your real .env.

Quickstart

Prerequisites: Docker with Compose v2, and GNU Make. Optionally 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:

README.md docker-compose.yml Makefile .env / .env.example Procfile .tool-versions .gitignore .dockerignore .github/workflows/ci.yml stacktora.json

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.

Image versions are pinned, services have healthchecks, and 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.

CommandWhat it does
make doctorPreflight — verify Docker is ready and the required host ports are free
make setupRun doctor, then install the toolchain + dependencies and build images
make devStart the full stack (app + services) with hot reload
make testRun the test suite inside the app container
make lintRun linter / formatter checks (when a linter is selected)
make db-seedRe-run seed SQL against the database (when seeding is on)
make logsTail logs for all services
make downStop & remove containers (named volumes are kept)
make app-setupInstall the mobile app's dependencies (when a mobile client is added)
make appStart 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

PostgreSQLMySQLMariaDBMongoDBRedisValkeyClickHousePostgres + pgvector

Backing services

RabbitMQApache KafkaNATSMinIOMailpitElasticsearchMeilisearchLocalStack

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

Node.jsPythonGoRubyPHPJava (Spring).NETRustBunDenoElixir

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.

FrameworkGenerated 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
Flutterpubspec.yaml, lib/main.dart, .env.example, README
make app-setup     # install the app's dependencies
make app           # start the Expo / RN / Flutter dev server
A device or simulator can't reach 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.

The full command reference and safety notes live on the npm package page.

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.

PlanPriceIncludes
Free$0Full generator & all output files, the template gallery, and 1 saved project (latest version only)
Pro$9/moEverything in Free, plus unlimited projects, 30 saved versions per project, one-click Push-to-GitHub, and the option to remove Stacktora attribution
Team$49/moEverything in Pro, plus a shared workspace for up to 10 members, shared settings, and your org's branding on every file
Growth$199/moEverything 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.