Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .claude/settings.json
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
"source": {
"source": "github",
"repo": "LasVegasForTransit/repository-tooling",
"ref": "v0.5.4"
"ref": "v0.6.3"
}
}
},
Expand Down
6 changes: 3 additions & 3 deletions .lvbt/web-platform.json
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
{
"formatVersion": 1,
"preset": "lvbt-web",
"release": "v0.5.4",
"commit": "323d5f5f968ed69ebcc29252b183fd65d13dc49a",
"contentHash": "25da315541c7a6f94f1ed1712e7b41c7512318af88033a1b3d485515d350ab83",
"release": "v0.6.3",
"commit": "2bd5cf25df37c26ee93ced7ae1c2cb19fdaf0010",
"contentHash": "0b8d4f2caa5c3e71afcaf720cf3044d8762ff937100028e5bc4d39619fbed6cf",
"executables": [
"examples/with-astro/.githooks/commit-msg",
"examples/with-astro/.githooks/pre-commit",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
"source": {
"source": "github",
"repo": "LasVegasForTransit/repository-tooling",
"ref": "v0.5.4"
"ref": "v0.6.3"
}
}
},
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# Deploys every app with a wrangler config on each push to main, after the
# Deploys every configured Cloudflare app on each push to main, after the
# same check pull requests run. Needs the CLOUDFLARE_API_TOKEN (Workers Scripts
# edit) and CLOUDFLARE_ACCOUNT_ID repository secrets.
name: Deploy
Expand Down
1 change: 1 addition & 0 deletions .lvbt/web-platform/examples/with-astro/.gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ blob-report/
**/playwright/.cache/
.turbo/
.wrangler/
.cloudflare/
.env
.env.*
!.env.example
Expand Down
2 changes: 1 addition & 1 deletion .lvbt/web-platform/examples/with-astro/AGENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ Every LVBT repository answers to the same commands:
| `pnpm check:fix` | Apply formatting and lint fixes |
| `pnpm build` | Build every package |
| `pnpm test` | Run every package's tests |
| `pnpm run deploy` | Build, then `wrangler deploy` every app (deployable repos) |
| `pnpm run deploy` | Build, then deploy every configured Cloudflare app |
| `turbo gen workspace` | Scaffold a new package or app |

## Create GitHub issues and pull requests
Expand Down
5 changes: 3 additions & 2 deletions .lvbt/web-platform/examples/with-astro/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,17 +15,18 @@ pnpm check # the same check CI runs
pnpm dev # the site at http://127.0.0.1:4321
```

Then rename the root package and the Worker in `apps/site/wrangler.jsonc`, set `site` in
Then rename the root package and the Worker in `apps/deploy/cloudflare.config.ts`, set `site` in
`apps/site/astro.config.ts`, and replace the scopes in `.lvbt/commit-scopes.txt` with this
repository's boundaries.

## Layout

- `apps/site` is the Astro site: pages under `src/pages`, layouts under `src/layouts`, Tailwind in
`src/styles/global.css`, unit tests under `tests/`, end-to-end tests under `tests/e2e/`
- `apps/deploy` holds the `cf` Worker configuration and reads `apps/site/dist` after the site build
- `packages/` for libraries the site shares with other apps

`pnpm run deploy` builds and runs `wrangler deploy` for every app with a wrangler config;
`pnpm run deploy` builds the site and deploys the canonical `cf` project in `apps/deploy`;
`.github/workflows/deploy.yml` does the same on every push to `main`.

Lint, format, TypeScript, and test settings extend the `@lasvegasfortransit/*` packages from
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
import { defineConfig } from 'cf/config';

// Set CLOUDFLARE_ACCOUNT_ID in the deploy environment before publishing.
export default defineConfig({
worker: {
name: 'lvbt-site',
compatibilityDate: '2026-08-31',
previewUrls: true,
assets: {
notFoundHandling: '404-page',
},
observability: {
enabled: true,
},
},
});
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
import { config } from '@lasvegasfortransit/eslint-config/base';

export default config;
21 changes: 21 additions & 0 deletions .lvbt/web-platform/examples/with-astro/apps/deploy/package.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
{
"name": "@lasvegasfortransit/deploy",
"version": "0.0.0",
"private": true,
"type": "module",
"scripts": {
"lint": "eslint . --max-warnings 0",
"check-types": "tsc --noEmit",
"test": "node --test",
"validate": "cf deploy --dry-run"
},
"devDependencies": {
"@lasvegasfortransit/eslint-config": "0.6.3",
"@lasvegasfortransit/site": "workspace:*",
"@lasvegasfortransit/typescript-config": "0.6.3",
"cf": "catalog:",
"eslint": "catalog:",
"typescript": "catalog:",
"wrangler": "catalog:"
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
{
"extends": "@lasvegasfortransit/typescript-config/base.json",
"include": ["*.config.ts"]
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
import { defineWranglerConfig } from 'wrangler/experimental-config';

export default defineWranglerConfig({
types: {
generate: false,
},
assetsDirectory: '../site/dist',
});
8 changes: 4 additions & 4 deletions .lvbt/web-platform/examples/with-astro/apps/site/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -21,10 +21,10 @@
},
"devDependencies": {
"@astrojs/check": "catalog:",
"@lasvegasfortransit/eslint-config": "0.5.4",
"@lasvegasfortransit/playwright-config": "0.5.4",
"@lasvegasfortransit/typescript-config": "0.5.4",
"@lasvegasfortransit/vitest-config": "0.5.4",
"@lasvegasfortransit/eslint-config": "0.6.3",
"@lasvegasfortransit/playwright-config": "0.6.3",
"@lasvegasfortransit/typescript-config": "0.6.3",
"@lasvegasfortransit/vitest-config": "0.6.3",
"@playwright/test": "catalog:",
"@types/node": "catalog:",
"eslint": "catalog:",
Expand Down
14 changes: 0 additions & 14 deletions .lvbt/web-platform/examples/with-astro/apps/site/wrangler.jsonc

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -51,7 +51,7 @@ request. The required status is named `Validate`.
deploy this repository, with a fix printed for anything missing.

<a id="platform-manifest"></a>**Platform manifest**: `platform.json`, next to an app's production
`wrangler.jsonc`, which lists everything the app needs in production: its database, bucket, bot
check, admin sign-in, email domain, secrets, and the values that must never be set there.
configuration, which lists everything the app needs in production: its database, bucket, bot check,
admin sign-in, email domain, secrets, and the values that must never be set there.
`pnpm preflight --production` checks production against it, and `pnpm bootstrap --production` sets
up what is missing.
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@ prints one line per check:
ok git hooks core.hooksPath is .githooks
ok commit scopes .lvbt/commit-scopes.txt is present
ok GitHub CLI gh is installed and signed in
ok Cloudflare wrangler is signed in; deployables: apps/site
ok Cloudflare cf ready for: apps/deploy
preflight: all 7 checks passed
```

Expand All @@ -47,9 +47,9 @@ pnpm check
```

This is the same command CI runs: formatting, documentation links, the repository-shape rules, then
lint, typecheck, and tests for every package. On a fresh clone it passes. When it fails, the output
names the package and file; `pnpm check:fix` repairs everything a machine can (formatting and
auto-fixable lint findings).
lint, typecheck, tests, a site build, and a Cloudflare deploy dry run. On a fresh clone it passes.
When it fails, the output names the package and file; `pnpm check:fix` repairs formatting and
auto-fixable lint findings.

## 3. Make a change and commit it

Expand Down
4 changes: 2 additions & 2 deletions .lvbt/web-platform/examples/with-astro/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -23,8 +23,8 @@
"*": "prettier --write --ignore-unknown"
},
"devDependencies": {
"@lasvegasfortransit/cli": "0.5.4",
"@lasvegasfortransit/prettier-config": "0.5.4",
"@lasvegasfortransit/cli": "0.6.3",
"@lasvegasfortransit/prettier-config": "0.6.3",
"lint-staged": "catalog:",
"markdownlint-cli2": "catalog:",
"markdownlint-rule-relative-links": "catalog:",
Expand Down
7 changes: 6 additions & 1 deletion .lvbt/web-platform/examples/with-astro/pnpm-workspace.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,11 @@ minimumReleaseAge: 1440
# Temporary transitive pins for published security fixes not yet selected by
# their direct dependents.
overrides:
brace-expansion: 5.0.12
fast-uri: 3.1.8
sharp: 0.35.4
'undici@^7.0.0': 7.29.1
'undici@^8.0.0': 8.10.2
smol-toml: 1.8.0
svgo: 4.1.0

Expand Down Expand Up @@ -61,5 +65,6 @@ catalog:
typescript-eslint: 8.69.0
vite: 8.2.2
vitest: 4.1.11
wrangler: 4.127.1
cf: 1.0.0-beta.5
wrangler: 4.141.0
zod: 4.5.4
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
"source": {
"source": "github",
"repo": "LasVegasForTransit/repository-tooling",
"ref": "v0.5.4"
"ref": "v0.6.3"
}
}
},
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# Deploys every app with a wrangler config on each push to main, after the
# Deploys every configured Cloudflare app on each push to main, after the
# same check pull requests run. Needs the CLOUDFLARE_API_TOKEN (Workers Scripts
# edit) and CLOUDFLARE_ACCOUNT_ID repository secrets.
name: Deploy
Expand Down
1 change: 1 addition & 0 deletions .lvbt/web-platform/examples/with-vite-react/.gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ blob-report/
**/playwright/.cache/
.turbo/
.wrangler/
.cloudflare/
.env
.env.*
!.env.example
Expand Down
2 changes: 1 addition & 1 deletion .lvbt/web-platform/examples/with-vite-react/AGENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ Every LVBT repository answers to the same commands:
| `pnpm check:fix` | Apply formatting and lint fixes |
| `pnpm build` | Build every package |
| `pnpm test` | Run every package's tests |
| `pnpm run deploy` | Build, then `wrangler deploy` every app (deployable repos) |
| `pnpm run deploy` | Build, then deploy every configured Cloudflare app |
| `turbo gen workspace` | Scaffold a new package or app |

## Create GitHub issues and pull requests
Expand Down
12 changes: 6 additions & 6 deletions .lvbt/web-platform/examples/with-vite-react/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,17 +15,17 @@ pnpm check # the same check CI runs
pnpm dev # the site at http://127.0.0.1:4321
```

Then rename the root package and the Worker in `apps/site/wrangler.jsonc`, set `site` in
`apps/site/astro.config.ts`, and replace the scopes in `.lvbt/commit-scopes.txt` with this
repository's boundaries.
Then rename the root package and the Worker in `apps/deploy/cloudflare.config.ts`, and replace the
scopes in `.lvbt/commit-scopes.txt` with this repository's boundaries.

## Layout

- `apps/site` is the Astro site: pages under `src/pages`, layouts under `src/layouts`, Tailwind in
`src/styles/global.css`, unit tests under `tests/`, end-to-end tests under `tests/e2e/`
- `apps/app` is the Vite app: source under `src/`, unit tests under `tests/`, and end-to-end tests
under `tests/e2e/`
- `apps/deploy` holds the `cf` Worker configuration and reads `apps/app/dist` after the app build
- `packages/` for libraries the site shares with other apps

`pnpm run deploy` builds and runs `wrangler deploy` for every app with a wrangler config;
`pnpm run deploy` builds the app and deploys the canonical `cf` project in `apps/deploy`;
`.github/workflows/deploy.yml` does the same on every push to `main`.

Lint, format, TypeScript, and test settings extend the `@lasvegasfortransit/*` packages from
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,10 +17,10 @@
"react-dom": "catalog:"
},
"devDependencies": {
"@lasvegasfortransit/eslint-config": "0.5.4",
"@lasvegasfortransit/playwright-config": "0.5.4",
"@lasvegasfortransit/typescript-config": "0.5.4",
"@lasvegasfortransit/vitest-config": "0.5.4",
"@lasvegasfortransit/eslint-config": "0.6.3",
"@lasvegasfortransit/playwright-config": "0.6.3",
"@lasvegasfortransit/typescript-config": "0.6.3",
"@lasvegasfortransit/vitest-config": "0.6.3",
"@playwright/test": "catalog:",
"@tailwindcss/vite": "catalog:",
"@types/node": "catalog:",
Expand Down

This file was deleted.

Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
import { defineConfig } from 'cf/config';

// Set CLOUDFLARE_ACCOUNT_ID in the deploy environment before publishing.
export default defineConfig({
worker: {
name: 'lvbt-app',
compatibilityDate: '2026-08-31',
previewUrls: true,
assets: {
notFoundHandling: 'single-page-application',
},
observability: {
enabled: true,
},
},
});
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
import { config } from '@lasvegasfortransit/eslint-config/base';

export default config;
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
{
"name": "@lasvegasfortransit/deploy",
"version": "0.0.0",
"private": true,
"type": "module",
"scripts": {
"lint": "eslint . --max-warnings 0",
"check-types": "tsc --noEmit",
"test": "node --test",
"validate": "cf deploy --dry-run"
},
"devDependencies": {
"@lasvegasfortransit/eslint-config": "0.6.3",
"@lasvegasfortransit/app": "workspace:*",
"@lasvegasfortransit/typescript-config": "0.6.3",
"cf": "catalog:",
"eslint": "catalog:",
"typescript": "catalog:",
"wrangler": "catalog:"
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
{
"extends": "@lasvegasfortransit/typescript-config/base.json",
"include": ["*.config.ts"]
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
import { defineWranglerConfig } from 'wrangler/experimental-config';

export default defineWranglerConfig({
types: {
generate: false,
},
assetsDirectory: '../app/dist',
});
Original file line number Diff line number Diff line change
Expand Up @@ -51,7 +51,7 @@ request. The required status is named `Validate`.
deploy this repository, with a fix printed for anything missing.

<a id="platform-manifest"></a>**Platform manifest**: `platform.json`, next to an app's production
`wrangler.jsonc`, which lists everything the app needs in production: its database, bucket, bot
check, admin sign-in, email domain, secrets, and the values that must never be set there.
configuration, which lists everything the app needs in production: its database, bucket, bot check,
admin sign-in, email domain, secrets, and the values that must never be set there.
`pnpm preflight --production` checks production against it, and `pnpm bootstrap --production` sets
up what is missing.
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@ prints one line per check:
ok git hooks core.hooksPath is .githooks
ok commit scopes .lvbt/commit-scopes.txt is present
ok GitHub CLI gh is installed and signed in
ok Cloudflare wrangler is signed in; deployables: apps/app
ok Cloudflare cf ready for: apps/deploy
preflight: all 7 checks passed
```

Expand All @@ -47,9 +47,9 @@ pnpm check
```

This is the same command CI runs: formatting, documentation links, the repository-shape rules, then
lint, typecheck, and tests for every package. On a fresh clone it passes. When it fails, the output
names the package and file; `pnpm check:fix` repairs everything a machine can (formatting and
auto-fixable lint findings).
lint, typecheck, tests, an app build, and a Cloudflare deploy dry run. On a fresh clone it passes.
When it fails, the output names the package and file; `pnpm check:fix` repairs formatting and
auto-fixable lint findings.

## 3. Make a change and commit it

Expand Down
Loading
Loading