Prompt file imported from eslam5464/Fastapi-Template (
.github/prompts/fastapi-scaffold.prompt.md). Fill in{{project_name}}before use. Copyright stays with the author.
Task
Scaffold a brand-new FastAPI backend by driving the real eslam5464/Fastapi-Template Copier template — do not hand-write the boilerplate from memory, that's how it drifts from what the template actually generates.
- Locate the template: prefer a local checkout if one is available (a sibling
directory containing
copier.yml); otherwise use the GitHub remote,gh:eslam5464/Fastapi-Template. - Gather the real Copier answers from the conversation:
project_name,project_slug,project_description,author_name,author_email,github_username,python_version(>=3.14),include_apple_pay(bool — the only real generation-time code-stripping toggle). - Separately ask which optional integrations are wanted — email, cache/Redis, cloud
storage, task-queue. These are not Copier questions; they're
pyproject.tomlextras installed afterward withuv sync --extra <name>. Don't present them as generation-time code-removal choices. - Run generation:
uv run copier copy <local-path> <target-dir> --trust # or, no local checkout: uvx --with jinja2-time copier copy gh:eslam5464/Fastapi-Template <target-dir> --trust--trustis required (generation runsscripts/generate/post_gen.pyfor identity substitution, license rewrite, optional Apple Pay removal, lockfile regen,git init). Bareuvx copiercan fail withNo module named 'jinja2_time'without--with jinja2-time. Generating from a local path only picks up committed content — an uncommitted change in the source checkout won't appear in the output. - Run the rest of the README Quick Start as an explicit post-gen checklist:
uv sync --all-groupsplus--extra <name>for each chosen integration,pre-commit install(and--hook-type commit-msg), have the user fill in.envthemselves (never fill in secrets on their behalf),createdb+alembic upgrade head, and smoke-testGET /healthbefore declaring success.
Target: {{project_name}}
