GTM Toolkit
Developer-Native Marketing
CI/CD Integration Example
Run GTM Toolkit automatically on every pull request to keep marketing assets production ready.
GitHub Actions Workflow
Copy-and-paste job for linting and file generation
name: gtm-toolkit
on:
pull_request:
branches: [main]
paths:
- 'content/**'
- 'gtm.config.js'
jobs:
seo-quality:
runs-on: ubuntu-latest
timeout-minutes: 10
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: 20
cache: npm
- run: npm ci
- run: npx gtm-toolkit lint content/blog --format json --fail-on-error > lint-report.json
- run: npx gtm-toolkit generate --all
- uses: actions/upload-artifact@v4
with:
name: seo-artifacts
path: |
public/robots.txt
public/sitemap.xml
lint-report.jsonRequired Secrets
Only needed if you enable optional integrations
- •
CLAUDE_API_KEY(repository secret) for `gtm-toolkit analyze` or `suggestions` steps. - •
GSC_CLIENT_EMAILandGSC_PRIVATE_KEYfor Google Search Console reporting. - • Consider separate environments for staging vs production keys.
Pull Request Comments
Surface lint results in reviewer-friendly format
# Example summary output
SEO Summary (8 files) - PASS: content/blog/2025-08-05-content-linting-matters.md - WARN: content/blog/2025-03-23-go-t-market-shifting-focus.md [SEO-004] - ERROR: content/blog/2025-03-10-First-steps-in-AI-search-optmization.md [SEO-018] Missing alt text
Other Runners
Adapt the same workflow to other CI providers
- • **Vercel / Netlify:** add GTM Toolkit commands to build hooks or pre-deploy checks.
- • **GitLab CI:** run
npm ciand `npx gtm-toolkit lint` inside a Node 20 image. - • **CircleCI:** use the
cimg/node:20.11container and persist generated files as workspace artifacts.