Correspondents/docs/bootstrapping.md

2.9 KiB

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.