# Bootstrapping Checklist

This checklist walks you from cloning the template to having a runnable project with confident defaults. Keep it open while you initialise a new repo.

## 1. Template hygiene
- [ ] Create a fresh repository (local or Gitea) and copy the template into it.
- [ ] Run `./scripts/bootstrap-template.sh` to update the package name, git remotes, and README badges.
- [ ] Remove example images or assets you do not plan to ship (`public/`, `docs/img/`, etc.).
- [ ] Delete unused test suites so the CI noise floor stays low.

## 2. Runtime setup
- [ ] Review `.env.example` and duplicate it to `.env` for local development.
- [ ] Fill only the sections that match the integrations you intend to use (auth, storage, calendar, analytics).
- [ ] Create secrets in your chosen manager (doppler, sops, 1Password CLI, environment repository) and document where they live.
- [ ] Configure feature flags or toggles that gate optional modules; default to safe fallbacks.

## 3. Dependencies & tooling
- [ ] Decide on a package manager (pnpm, npm, yarn) and lock it in the README + CI.
- [ ] Install linting and formatting tools (`eslint`, `prettier`, `biome`, etc.) and wire them into `package.json` scripts.
- [ ] Add base Git hooks (Husky, Lefthook, or pre-commit) if you rely on pre-push validation.
- [ ] Configure TypeScript paths/aliases so the example tests resolve once you create real modules.

## 4. Infrastructure & services
- [ ] Document deployment tooling (Wrangler, Vercel, Fly.io, Docker) in `docs/stack-decisions.md`.
- [ ] Provision staging and production environments or capture the manual steps.
- [ ] Outline database migration flow (Prisma, Drizzle, Kysely) and how to run it locally.
- [ ] For third-party integrations (OAuth, storage, calendar), confirm rate limits and timeout behaviour.

## 5. CI/CD wiring
- [ ] Choose a pipeline runner (Gitea Actions, Woodpecker, GitHub Actions, etc.).
- [ ] Add jobs for lint, typecheck, unit tests, and build (if applicable).
- [ ] Cache dependencies to keep pipelines fast.
- [ ] Gate deployments on green checks and review status.

## 6. Documentation & knowledge
- [ ] Update `README.md` with product-specific copy, screenshots, and deployment commands.
- [ ] Record architectural decisions in `docs/stack-decisions.md` (lean ADRs are ideal).
- [ ] Extend `docs/edge-cases.md` with anything unique to this project.
- [ ] Share workflow instructions (branching, PR labels, release cadence) in `CONTRIBUTING.md`.

## 7. Launch readiness
- [ ] Smoke-test the bootstrap by running `pnpm test` (or your equivalent) and ensuring the example specs fail because modules are missing—this keeps you honest.
- [ ] Create a tracking issue or project board with tasks generated from the checklist.
- [ ] Archive or export the checklist with completed items for future reference.

Repeat this ritual for every new project so you ship with fewer unknowns and more confidence.
