Skip to content

Shank Environment

Shank requires no environment variables.

Shank is a build-time React Email project. It does not run as a service, does not connect to any external system, does not read secrets, and does not need configuration.

  • No .env* files are present in apps/shank/ (verified at last review).
  • apps/shank/react-templates/package.json does not reference process.env.* in any script.
  • The email dev, email build, and email export commands provided by the react-email toolchain run a local Next.js-style preview server on port 3000 (default) and read TSX from emails/. Nothing is fetched remotely.

What about SMTP / sender / Clerk credentials?

Section titled “What about SMTP / sender / Clerk credentials?”

Those belong to sirloin, not shank. The actual email send path (apps/sirloin/internal/pkg/emails/client.go) reads:

Variable Purpose Service
sender / from address passed to NewClient(sender, ...) sirloin
SMTP user / password passed to NewClient(..., user, password, ...) sirloin
SMTP host / port passed to NewClient(..., host, port) sirloin
Clerk API key used by clerk.GetUserEmail to resolve recipient sirloin

For the canonical list of SMTP-related env vars and where they are loaded, see the sirloin docs and docs/src/content/docs/standards/deployment-env.md. The exact env-var names in sirloin’s loader (apps/sirloin/internal/pkg/env/variables.go) are: SIRLOIN_EMAIL_SENDER, SIRLOIN_EMAIL_USER, SIRLOIN_EMAIL_PASSWORD, SIRLOIN_EMAIL_HOST, SIRLOIN_EMAIL_PORT — read in apps/sirloin/internal/app/config/config.go and required (missing-error on empty).

pnpm dev (which runs email dev) listens on http://localhost:3000 by default. To change it, pass --port on the command line — there is no .env for it. See shank-local-dev.md.

Shank has no production deploy. Its only “production” output is the committed HTML in apps/sirloin/internal/pkg/emails/templates/, which ships as part of the sirloin binary via //go:embed.

If shank ever gains a runtime component (e.g. a preview server deployed for designers), this page must be updated with the new env vars and a security review must classify any credentials added.