Skip to content

Commit 1ef48e2

Browse files
Meyanis95claude
andcommitted
fix(deploy): production site URL, legacy URL redirects, sitemap, PR build check
- astro.config.mjs: site was still iptf.netlify.app — canonical/OG URLs now point to iptf.ethereum.org - Add permanent redirects for all 13 legacy Jekyll post URLs (/:title/ from filename) to their new title-derived /blog/<slug>/ routes - Add @astrojs/sitemap (replaces jekyll-sitemap) and point robots.txt at sitemap-index.xml - deploy.yml: run the build job on pull_request (validate without deploying) so deploy breakage is caught before merge Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
1 parent 0d26e4f commit 1ef48e2

6 files changed

Lines changed: 95 additions & 20 deletions

File tree

.github/workflows/deploy.yml

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ name: Deploy site
22
on:
33
push:
44
branches: [main]
5+
pull_request:
56
workflow_dispatch:
67

78
permissions:
@@ -10,7 +11,7 @@ permissions:
1011
id-token: write
1112

1213
concurrency:
13-
group: pages
14+
group: pages-${{ github.ref }}
1415
cancel-in-progress: false
1516

1617
jobs:
@@ -35,6 +36,8 @@ jobs:
3536
path: dist
3637

3738
deploy:
39+
# PR runs only validate the build; deploys happen on push to main.
40+
if: github.event_name != 'pull_request'
3841
runs-on: ubuntu-latest
3942
needs: build
4043
environment:

CLAUDE.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ Map content (patterns, approaches, use-cases, vendors, domains, jurisdictions) i
2020
- `content/` — iptf-map submodule.
2121
- `scripts/build-graph.mjs` — Reads iptf-map → `src/data/graph.json`.
2222
- `src/posts/` — Blog post markdown (filename: `YYYY-MM-DD-slug.md`).
23-
- `src/pages/` — Routes. `[slug].astro` is the post detail page at root.
23+
- `src/pages/` — Routes. `blog/[slug].astro` is the post detail page.
2424
- `src/layouts/``Guide.astro` (default), `Post.astro` (writeups).
2525
- `src/lib/` — Data access (`data.ts`), post loader (`posts.ts`), markdown renderer (`render.ts`).
2626
- `public/` — Static assets served verbatim (`assets/`, `CNAME`, `robots.txt`, `tee-protocol-page.html`).

astro.config.mjs

Lines changed: 20 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,13 +5,31 @@ import { remarkRewriteLinks } from './src/plugins/remark-rewrite-links.ts';
55
import { remarkApproachVariants } from './src/plugins/remark-approach-variants.ts';
66

77
import react from '@astrojs/react';
8+
import sitemap from '@astrojs/sitemap';
89

910
export default defineConfig({
10-
site: 'https://iptf.netlify.app',
11+
site: 'https://iptf.ethereum.org',
1112
trailingSlash: 'always',
1213
build: {
1314
format: 'directory',
1415
},
16+
// Legacy Jekyll URLs (permalink: /:title/, slug from filename) → new
17+
// title-derived slugs under /blog/. Keeps inbound links alive post-migration.
18+
redirects: {
19+
'/cypherpunk-institutional-privacy': '/blog/cypherpunk-x-institutional-privacy/',
20+
'/building-private-bonds-on-ethereum': '/blog/building-private-bonds-on-ethereum/',
21+
'/public-rails-vs-private-ledgers': '/blog/public-rails-vs-private-ledgers/',
22+
'/private-bonds-on-privacy-l2s': '/blog/building-private-bonds-on-ethereum-part-2/',
23+
'/private-bonds-with-fhe': '/blog/building-private-bonds-on-ethereum-part-3/',
24+
'/building-private-transfers-on-ethereum': '/blog/building-private-transfers-on-ethereum-with-shielded-pools/',
25+
'/private-stablecoins-with-plasma': '/blog/building-private-transfers-on-ethereum-with-plasma/',
26+
'/private-crosschain-atomic-swap-part-1': '/blog/private-crosschain-atomic-swaps-part-1-of-2/',
27+
'/diy-validium': '/blog/diy-validium-private-logic-on-public-rails/',
28+
'/private-crosschain-atomic-swap-part-2': '/blog/private-crosschain-atomic-swaps-part-2-of-2/',
29+
'/resilient-plural-identity': '/blog/resilient-plural-identity/',
30+
'/resilient-disbursement-rails': '/blog/resilient-disbursement-rails/',
31+
'/resilient-civic-participation': '/blog/resilient-civic-participation/',
32+
},
1533
markdown: {
1634
remarkPlugins: [remarkRewriteLinks, remarkApproachVariants],
1735
syntaxHighlight: 'shiki',
@@ -20,5 +38,5 @@ export default defineConfig({
2038
wrap: true,
2139
},
2240
},
23-
integrations: [mdx(), react()],
41+
integrations: [mdx(), react(), sitemap()],
2442
});

package-lock.json

Lines changed: 67 additions & 14 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@
2525
"@astrojs/check": "^0.9.4",
2626
"@astrojs/mdx": "^5.0.0",
2727
"@astrojs/react": "^5.0.5",
28+
"@astrojs/sitemap": "^3.7.3",
2829
"@types/d3": "^7.4.3",
2930
"@types/react": "^19.2.14",
3031
"@types/react-dom": "^19.2.3",
@@ -37,4 +38,4 @@
3738
"typescript": "^5.7.3",
3839
"unist-util-visit": "^5.0.0"
3940
}
40-
}
41+
}

public/robots.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
11
User-agent: *
22
Allow: /
33

4-
Sitemap: https://iptf.ethereum.org/sitemap.xml
4+
Sitemap: https://iptf.ethereum.org/sitemap-index.xml

0 commit comments

Comments
 (0)