Skip to content

Commit a06142f

Browse files
rymncoskarth
andauthored
chore: rebrand (#41)
* feat: initial rebrand pass * chore: bunch of small things * chore: rss * chore: structured data * fix: improve perf * chore: per page og image and some other minor fixes * fix: name * fix: nits * fix: mobile viewport * fix: nit * chore: offerings * fix: flesh out jd a bit * fix: apac * fix: double dot * chore: update map * chore: ethlabs copy * chore: ai enablement * fix: byline * feat: add introducing EthSystems writeup * chore: update hero.png and published flag * fix: glossary * fix: bmnr casing * fix: bitmine brand asset * chore: add faq to nav * fix: join link * chore: update map submodule * chore: update map submodule * fix: snz byline --------- Co-authored-by: oskarth <oskarth@titanproxy.com>
1 parent 2ac4beb commit a06142f

212 files changed

Lines changed: 3417 additions & 2269 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.gitmodules

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
11
[submodule "content"]
22
path = content
3-
url = https://github.com/ethereum/iptf-map.git
3+
url = https://github.com/ethsystems/map.git

CLAUDE.md

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,9 @@
22

33
## Project Overview
44

5-
This is the IPTF (Institutional Privacy Task Force) website repository. Astro static site deployed at https://iptf.ethereum.org/.
5+
This is the EthSystems website repository. Astro static site deployed at https://ethsystems.org/.
66

7-
Map content (patterns, approaches, use-cases, vendors, domains, jurisdictions) is the projection of the [`iptf-map`](https://github.com/ethereum/iptf-map) repo, pinned as a submodule at `content/`. Blog writeups live in `src/posts/`.
7+
Map content (patterns, approaches, use-cases, vendors, domains, jurisdictions) is the projection of the [`map`](https://github.com/ethsystems/map) repo, pinned as a submodule at `content/`. Blog writeups live in `src/posts/`.
88

99
## Tech Stack
1010

@@ -17,8 +17,8 @@ Map content (patterns, approaches, use-cases, vendors, domains, jurisdictions) i
1717
## Key Files
1818

1919
- `astro.config.mjs` — Astro config (site URL, integrations).
20-
- `content/`iptf-map submodule.
21-
- `scripts/build-graph.mjs` — Reads iptf-map → `src/data/graph.json`.
20+
- `content/` — map submodule (`ethsystems/map`).
21+
- `scripts/build-graph.mjs` — Reads the map submodule`src/data/graph.json`.
2222
- `src/posts/` — Blog post markdown (filename: `YYYY-MM-DD-slug.md`).
2323
- `src/pages/` — Routes. `blog/[slug].astro` is the post detail page.
2424
- `src/layouts/``Guide.astro` (default), `Post.astro` (writeups).
@@ -39,7 +39,7 @@ Requires Node 22.
3939

4040
## Source-of-truth rule
4141

42-
iptf-map main is the only source of truth for map content. Anything sourced from the submodule renders verbatim. Render sites are marked with `SOURCE: iptf-map field — do not alter` comments.
42+
The map repo (`ethsystems/map`) main is the only source of truth for map content. Anything sourced from the submodule renders verbatim. Render sites are marked with `SOURCE: map field — do not alter` comments.
4343

4444
UI chrome (landing copy, FAQ, blog index, post layout) is the site's own and stays curated.
4545

@@ -63,24 +63,24 @@ title: "Post Title"
6363
description: "Brief description (shown in social cards and the blog index)."
6464
date: 2026-01-09
6565
author: "Author Name"
66-
image: /assets/images/2026-01-09-slug/hero.png
66+
image: ../assets/posts/2026-01-09-slug/hero.png
6767
---
6868
```
6969

70-
The published URL derives from the title via Jekyll-compatible slugify. Hero images live under `public/assets/images/`. Set `published: false` to keep a post out of the live site.
70+
The published URL derives from the title via Jekyll-compatible slugify. Set `published: false` to keep a post out of the live site.
7171

7272
### Hero images
7373

7474
- Recommended size: 1200x600px (2:1 ratio) for OG / Twitter cards.
75-
- Location: `public/assets/images/<date-slug>/`.
76-
- Format: JPG, PNG, WEBP, or SVG.
75+
- Location: `src/assets/posts/<date-slug>/`, referenced from frontmatter and inline `![]()` markdown images by a path **relative to the post file** (e.g. `../assets/posts/<date-slug>/hero.png`). Images must live under `src/` — the `image` field uses Astro's content-collection `image()` schema helper (`src/content.config.ts`), so hero/thumbnail images get resized and converted to WebP automatically wherever they're rendered via `<Image>`. Files placed in `public/` are served verbatim and bypass this entirely.
76+
- Format: JPG, PNG, WEBP, or SVG (source format — output is optimized at build time).
7777

78-
## Updating iptf-map content
78+
## Updating map content
7979

8080
```bash
8181
git submodule update --remote content
8282
git add content
83-
git commit -m "chore(content): bump iptf-map submodule"
83+
git commit -m "chore(content): bump map submodule"
8484
```
8585

8686
## Deployment

README.md

Lines changed: 13 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,21 @@
1-
# IPTF Website
1+
# EthSystems Website
22

3-
Static website for the Institutional Privacy Task Force (IPTF), live at [https://iptf.ethereum.org/](https://iptf.ethereum.org/).
3+
Static website for EthSystems, live at [https://ethsystems.org/](https://ethsystems.org/).
44

5-
Astro static site. Content for patterns, approaches, use-cases, vendors, domains, and jurisdictions is sourced from the [`iptf-map`](https://github.com/ethereum/iptf-map) repo via a git submodule at `content/`. Writeups (blog posts) live in `src/posts/`.
5+
Astro static site. Content for patterns, approaches, use-cases, vendors, domains, and jurisdictions is sourced from the [`map`](https://github.com/ethsystems/map) repo via a git submodule at `content/`. Writeups (blog posts) live in `src/posts/`.
66

77
## How it works
88

9-
- **Astro** generates every page at build time from data in `content/` (iptf-map) and `src/posts/` (writeups).
9+
- **Astro** generates every page at build time from data in `content/` (the map submodule) and `src/posts/` (writeups).
1010
- **GitHub Pages** auto-deploys from `main` via `.github/workflows/deploy.yml`. Changes go live within a few minutes.
11-
- **CNAME** (`public/CNAME`) points the deployment at `iptf.ethereum.org`.
11+
- **CNAME** (`public/CNAME`) points the deployment at `ethsystems.org`.
1212

1313
## Repository layout
1414

1515
```
16-
iptf-web/
16+
web/
1717
├── astro.config.mjs Astro configuration (site URL, integrations)
18-
├── content/ iptf-map submodule (patterns, approaches, etc.)
18+
├── content/ map submodule (patterns, approaches, etc.)
1919
├── public/ Static assets served verbatim
2020
│ ├── assets/images/ Post hero images, diagrams
2121
│ ├── assets/css/
@@ -24,7 +24,7 @@ iptf-web/
2424
│ ├── CNAME
2525
│ └── robots.txt
2626
├── scripts/
27-
│ └── build-graph.mjs Reads iptf-map → src/data/graph.json
27+
│ └── build-graph.mjs Reads the map submodule → src/data/graph.json
2828
├── src/
2929
│ ├── data/ Generated at build (graph.json, glossary.json)
3030
│ ├── posts/ Blog post markdown
@@ -79,17 +79,17 @@ The published URL is derived from the title (`/<title-slugified>/`). Hero images
7979

8080
Set `published: false` in frontmatter to keep a post out of the deployed site.
8181

82-
## Updating the iptf-map content
82+
## Updating the map content
8383

8484
```bash
8585
git submodule update --remote content
8686
git add content
87-
git commit -m "chore(content): bump iptf-map submodule"
87+
git commit -m "chore(content): bump map submodule"
8888
```
8989

9090
## Source-of-truth rule
9191

92-
iptf-map main is the only source of truth for patterns, approaches, vendors, etc. Anything sourced from the submodule renders verbatim. Pages that emit map content mark each render site with `SOURCE: iptf-map field — do not alter`.
92+
The map repo (`ethsystems/map`) main is the only source of truth for patterns, approaches, vendors, etc. Anything sourced from the submodule renders verbatim. Pages that emit map content mark each render site with `SOURCE: map field — do not alter`.
9393

9494
UI chrome (landing copy, FAQ, blog index, post layout) is the site's own and stays curated here.
9595

@@ -101,9 +101,8 @@ UI chrome (landing copy, FAQ, blog index, post layout) is the site's own and sta
101101

102102
## Contact
103103

104-
- Email: [iptf@ethereum.org](mailto:iptf@ethereum.org)
105-
- [Institutions form](https://forms.gle/6Za8suF5QHyRamcW7)
106-
- [Vendors form](https://forms.gle/znifD8h9Uw6VEX6Q9)
104+
- Email: [hello@ethsystems.org](mailto:hello@ethsystems.org)
105+
- [Book a call](https://calendar.app.google/yFK6o5Mzk7fKuu91A)
107106

108107
## License
109108

astro.config.mjs

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,10 +8,11 @@ import react from '@astrojs/react';
88
import sitemap from '@astrojs/sitemap';
99

1010
export default defineConfig({
11-
site: 'https://iptf.ethereum.org',
11+
site: process.env.OVERRIDE_URL || 'https://ethsystems.org',
1212
trailingSlash: 'always',
1313
build: {
1414
format: 'directory',
15+
inlineStylesheets: 'always',
1516
},
1617
// Legacy Jekyll URLs (permalink: /:title/, slug from filename) → new
1718
// title-derived slugs under /blog/. Keeps inbound links alive post-migration.
@@ -41,5 +42,9 @@ export default defineConfig({
4142
wrap: true,
4243
},
4344
},
44-
integrations: [mdx(), react(), sitemap()],
45+
integrations: [
46+
mdx(),
47+
react(),
48+
sitemap(),
49+
],
4550
});

content

Submodule content updated 179 files

0 commit comments

Comments
 (0)