{{PROJECT_DESCRIPTION}}
Use this repository as a starting point for {{PROJECT_DOMAIN|marketing site|SaaS landing|documentation|static site}} projects. It emphasizes maintainability, performance, accessibility, and a consistent release process.
- Features
- Tech Stack
- Project Structure
- Getting Started
- Configuration
- Environment Variables
- Scripts
- Quality & Tooling
- Deployment
- CI/CD
- Versioning & Releases
- Contributing
- Security
- Roadmap
- FAQ
- License
- Maintainers
- Accessible, semantic HTML structure
- Mobile-first responsive layout & fluid typography
- SEO & social metadata helpers (OG/Twitter)
- Theming via CSS variables (light/dark ready)
- Pluggable analytics: Google, Plausible, PostHog (optional)
- Content-driven pages (Markdown / JSON / CMS ready)
- Form handling patterns (Netlify / Serverless / API)
- Automated release workflow (Semantic Versioning + changelog)
- {{CUSTOM_FEATURE_1}}
- {{CUSTOM_FEATURE_2}}
| Layer | Choice (example) | Notes |
|---|---|---|
| Framework / SSG | {{FRAMEWORK | None / Astro / Next.js / Eleventy}} |
| Styling | {{STYLING | CSS Modules / Tailwind / Vanilla CSS}} |
| Content | {{CONTENT_SOURCE | Markdown / Headless CMS}} |
| Deployment | {{HOSTING | Vercel / Netlify / GitHub Pages}} |
| Analytics | {{ANALYTICS | None}} |
.
├─ public/ # Static assets (favicons, images, robots.txt)
├─ src/
│ ├─ pages/ # Page templates or routes
│ ├─ components/ # Reusable UI components
│ ├─ styles/ # Global styles / tokens / themes
│ ├─ content/ # Markdown / data files (FAQs, testimonials)
│ └─ lib/ # Utilities (SEO, analytics, forms)
├─ scripts/ # Dev/build/release helpers (optional)
├─ .env.example # Environment variable documentation
├─ CHANGELOG.md # Version history
└─ README.md # Project docs
Adapt names to your chosen framework (e.g., pages/ in Next.js, src/pages/ in Astro, content/ in Eleventy/Hugo).
- Node.js {{NODE_VERSION|min 18}} and a package manager (
npm,pnpm, oryarn) - Git
git clone {{REPO_CLONE_URL}}
cd {{PROJECT_DIR_NAME}}
npm installnpm run devOpen: http://localhost:{{DEV_PORT|3000}}
npm run build
npm run previewCentralize settings in src/lib/config.* or similar. Typical items:
| Key | Purpose | Example |
|---|---|---|
| SITE_NAME | Display name | "{{PROJECT_NAME}}" |
| SITE_URL | Canonical URL | https://example.com |
| DEFAULT_DESCRIPTION | Meta description | "{{SHORT_DESCRIPTION}}" |
| ANALYTICS_PROVIDER | Analytics toggle | plausible |
| CONTACT_ENDPOINT | Form submission URL | /api/contact |
Document all variables in .env.example. Consumers copy to .env.
SITE_URL=
ANALYTICS_PROVIDER=
ANALYTICS_KEY=
CONTACT_ENDPOINT=
{{CUSTOM_ENV_VAR}}=Never commit secrets. Use deployment platform secrets manager.
- Linting: {{LINTING|ESLint config in .eslintrc.*}}
- Formatting: {{FORMATTING|Prettier}}
- Type Safety: {{TYPES|TypeScript optional}}
- Testing: {{TESTING|Vitest / Jest}} with minimal coverage on critical utils
- Accessibility: Run automated checks (Lighthouse, axe)
- Performance: Audit bundle (Lighthouse / WebPageTest)
| Platform | Notes |
|---|---|
| Vercel | Zero-config for Next.js / Astro; env vars via dashboard |
| Netlify | Auto-deploy from main; forms + redirects support |
| Cloudflare Pages | Edge caching + functions |
| GitHub Pages | Use GitHub Action to build & publish dist/ |
Set production env vars in platform UI. Confirm caching headers & compression.
Recommended pipeline stages:
- Install deps (cache lockfile)
- Lint & typecheck
- Run tests
- Build artifact
- (Optional) Deploy on main branch merges
- (Optional) Automated release (see below)
Example (GitHub Actions excerpt):
name: CI
on: [push, pull_request]
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: {{NODE_VERSION|min 18}}
cache: 'npm'
- run: npm ci
- run: npm run lint --if-present
- run: npm run typecheck --if-present
- run: npm test --if-present
- run: npm run buildFollow Semantic Versioning. Maintain CHANGELOG.md (Keep a Changelog format).
Release steps (manual example):
# 1. Update CHANGELOG.md (move Unreleased -> new version w/ date)
# 2. Commit & tag
git add CHANGELOG.md
git commit -m "chore(release): {{NEW_VERSION}}"
git tag -a {{NEW_VERSION}} -m "Release {{NEW_VERSION}}"
# 3. Push branch & tags
git push origin HEAD
git push origin {{NEW_VERSION}}Troubleshooting tags:
git tag --list
# Delete & recreate if needed
git tag -d {{EXISTING_VERSION}}; git push origin :refs/tags/{{EXISTING_VERSION}}; git tag -a {{EXISTING_VERSION}} -m "Release {{EXISTING_VERSION}}"; git push origin --tagsSee CONTRIBUTING.md for guidelines.
Principles:
- Use Conventional Commits (
feat:,fix:,chore:...) - Keep PRs focused & small
- Add tests for logic changes
- Update docs for new features / breaking changes
Please report vulnerabilities via SECURITY.md or private contact: {{SECURITY_CONTACT|email@example.com}}.
Do not open public issues for sensitive security reports.
- {{ROADMAP_ITEM_1|Add blog}}
- {{ROADMAP_ITEM_2|Internationalization}}
- {{ROADMAP_ITEM_3|Dark mode toggle}}
Track features using GitHub Issues + Milestones or a project board.
{{QUESTION_1|Why another template?}}
{{ANSWER_1|It standardizes the baseline so I can focus on unique functionality.}}{{QUESTION_2|How do I deploy?}}
{{ANSWER_2|Pick any static host (Vercel/Netlify). Configure build command + output directory.}}{{QUESTION_3|Can I use a CMS?}}
{{ANSWER_3|Yes—map your CMS content to the content layer or fetch at build.}}This project is licensed under the {{LICENSE|MIT}} License - see LICENSE for details.
| Name | Role | Contact |
|---|---|---|
| {{MAINTAINER_NAME}} | {{MAINTAINER_ROLE | Author}} |
- Search for
{{to find all placeholders. - Delete optional sections you don't need (Roadmap, FAQ, etc.).
- Update badges (CI, status) to reflect your actual workflows.
- Add architectural or domain-specific docs in
docs/.
Happy building!