No description
  • JavaScript 95.6%
  • TypeScript 4.4%
Find a file
Ryan Grippeling e46c050d1c
All checks were successful
Release / test (push) Successful in 1m42s
Release / Semantic Release (monorepo) (push) Successful in 32s
Release / Release @webgrip/prettier-config (push) Successful in 0s
Release / Semantic Release (monorepo)-1 (push) Successful in 24s
Release / Release @webgrip/eslint-config-astro (push) Successful in 0s
Release / Semantic Release (monorepo)-2 (push) Successful in 31s
Release / Release @webgrip/tsconfig (push) Successful in 0s
Release / Semantic Release (monorepo)-3 (push) Successful in 20s
Release / Release @webgrip/astro-site-toolkit (push) Successful in 0s
Release / Semantic Release (monorepo)-4 (push) Successful in 17s
Release / Release @webgrip/edge-analytics (push) Successful in 0s
Release / Semantic Release (monorepo)-5 (push) Successful in 16s
Release / Release @webgrip/comment-ban (push) Successful in 0s
Release / Mirror to the Forgejo registry (push) Successful in 44s
ci: de lane volgt het estate-patroon — push op elke branch behalve main
De rest van het estate (webgrip.nl, cloudflare, infrastructure, counterscale)
draait zijn checks op `push: branches: ['**']`, niet op pull_request. Dat dekt
een branch al vóórdat er een PR is, en ontwijkt de dubbele run die twente.dev
raakte toen een pull_request-trigger elke development-push verdubbelde zolang de
promotion-PR openstond.

`branches-ignore: main` is het stukje dat die repo's niet nodig hebben: hier is
release.yml de eigenaar van main, dus zonder die uitzondering zou elke merge
deze checks twee keer draaien.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-09-22 08:02:40 +02:00
.forgejo/workflows ci: de lane volgt het estate-patroon — push op elke branch behalve main 2026-09-22 08:02:40 +02:00
packages docs(prettier-config): beide sites staan op 0.3.0, plus een minimale repro voor upstream 2026-09-21 12:46:59 +02:00
.gitignore chore: scaffold repository 2026-09-03 23:06:24 +02:00
.prettierignore fix: changelogs niet formatteren — semantic-release is hun schrijver 2026-09-04 13:17:22 +02:00
AGENTS.md docs: de checkout-v5-pin is een pin, geen workaround meer 2026-09-18 13:42:43 +02:00
CLAUDE.md docs(agents): AGENTS.md over de release-treinen en de valkuilen 2026-09-04 19:16:40 +02:00
LICENSE chore: scaffold repository 2026-09-03 23:06:24 +02:00
package.json refactor(release): door de gedeelde semantic-release-monorepo-lane 2026-09-04 06:49:35 +02:00
pnpm-lock.yaml feat(deps): update dependency prettier-plugin-astro ( 0.14.1 ➔ 1.0.1 ) 2026-09-18 12:40:26 +00:00
pnpm-workspace.yaml fix(deps): de pnpm-soaktijd staat expliciet, net als in twente.dev 2026-09-18 13:21:55 +02:00
README.md feat(release): dual publiceren — npmjs.com én het eigen Forgejo-registry 2026-09-04 12:16:47 +02:00
renovate.json style: renovate.json door prettier halen 2026-09-18 15:56:59 +02:00

frontend-toolkit

Shared frontend toolchain for Webgrip static sites, as versioned packages on the Forgejo npm registry — reference-reuse instead of copy-reuse. Extracted 2026-09-03 after the audit that found the sites' copies drifting (validate-csp: 125 vs 171 lines within a month).

Package What Consumer surface
@webgrip/prettier-config The shared Prettier style (Astro-aware) "prettier": "@webgrip/prettier-config"
@webgrip/eslint-config-astro The shared ESLint flat config spread + repo-specific overrides
@webgrip/tsconfig Strict TS base for Astro static sites "extends": "@webgrip/tsconfig/astro-static.json"
@webgrip/astro-site-toolkit CSP validator, prod-faithful dist server, axe engine bins + /axe-engine import

Consuming

The packages are public on npmjs.com — install like any dependency, no registry config:

pnpm add -D @webgrip/prettier-config @webgrip/eslint-config-astro @webgrip/tsconfig @webgrip/astro-site-toolkit

The seam rule

What is shared here is what was identical between sites. Per-site decisions — Lighthouse budget numbers, a11y-only page lists, banned-copy tables, repo-specific lint globals — stay in the consumers, on the extension seams each package documents. Do not "upstream" them.

Releasing

Conventional commits; merge to main runs one train per package through the shared semantic-release-monorepo lane (webgrip/workflows, ADR-0005 toolchain image — nothing installs at release time). Each train seeds <name>-v0.0.0 at the root commit, so a first feat releases 0.1.0; tags are <name>-vX.Y.Z. Publishing is dual: the trains publish publicly to npmjs.com, and the mirror-registry job re-publishes every cut version to the estate's own Forgejo registry (https://forgejo.webgrip.dev/api/packages/webgrip/npm/) — public reach plus a sovereign copy. See .forgejo/workflows/release.yml.