Opinionated application starters, generated with one command. The same generator uses a local checkout during development and individual versioned archives for public distribution.
The web and backend starters are the current release focus. Native remains experimental, with Docker, signed binary, and device validation deferred. Public installation requires a published GitHub release and installer deployment. See the audit and verification record.
Python 3.10 or newer is required. From this repository:
just install
template listThen, from the directory where you keep projects:
template fastapi-stack my-app
cd my-app
justThe local installation links to this checkout. Subsequent generations use its current files. Generated projects are independent copies; their edits do not flow back into the template automatically.
go: Go API, PostgreSQL, Redis, ES256 authentication.fastapi: FastAPI API, PostgreSQL, Redis, JWT authentication.open: React and SCSS without authentication.frontend: React authentication client for the FastAPI contract.native: Experimental Expo client for the FastAPI mobile contract.fastapi-stack: FastAPI with its React client.go-stack: Go with a React client adapted to its API contract.portfolio: Editable portfolio with administration through an owner account.
The standalone clients accept an explicit backend endpoint:
template frontend my-web --api-url https://api.example.com/api
template native my-mobile --api-url https://api.example.com/apiUse the API base before /v1. For a direct backend this is normally the origin;
the bundled web proxy exposes it under /api.
Generation creates separate production and development dotenv files, credentials,
high host ports, project identifiers, and .template.json provenance. It excludes
real environment files, signing keys, uploads, dependencies, and build artifacts.
Existing project files are never overwritten. An existing .git directory in
an otherwise empty destination is preserved.
Run application services through each project's Docker Compose setup. The Go startup initializes a signing-key volume and applies checked migrations; Python startup applies Alembic migrations. Use HTTPS for production authentication.
After publication, install from https://angelamos.com/template/install.sh:
curl -fsSL https://angelamos.com/template/install.sh | bash
template fastapi-stack my-app
template go-stack another-appThe installer downloads the small template command. Each generation downloads
only the requested stack archive, with checksums and source revision metadata.
Re-running the installer updates the command; it does not change projects already
generated. Use bash install.sh --version v0.1.0 to pin a release.
See generator and installer details and operations and release instructions.
just check-template
python3 -B tests/release/check_generated.py go-stack developmentThe second command needs Docker and creates an isolated temporary project. It
builds and starts that project, checks readiness and proxy routing, then removes
only its own containers and volumes. Release CI covers web/backend variants,
PostgreSQL security tests, dependency audits, and web builds before publishing.
Native checks are available through the workflow's run_native input and are
deferred by default. Configured gates are not evidence of a completed CI run.
The frontend starter uses restrained spacing, system typography, and functional navigation. Its default screen provides no product branding or fabricated service status. Portfolio retains its content editor and configurable presentation.
See LICENSE.