Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Deploy v4.9.0 #7176

Merged
merged 210 commits into from
Jul 25, 2022
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
210 commits
Select commit Hold shift + click to select a range
c82bfb0
Create Event tracking guideline
konopkja Jun 10, 2022
02b8898
Update Event tracking guideline
konopkja Jun 10, 2022
f66fad2
Update Event tracking guideline
konopkja Jun 10, 2022
6896560
Expand Plasma developer docs
emmanuel-awosika Jun 10, 2022
e3024e6
Move to event tracking docs to .md file
samajammin Jun 13, 2022
7778500
Fix typos/grammar
minimalsm Jun 14, 2022
8446748
Update index.md
emmanuel-awosika Jun 14, 2022
d2dd18e
Update event tracking docs
samajammin Jun 16, 2022
6fa7f4d
Expand Optimistic Rollups docs
emmanuel-awosika Jun 17, 2022
87054f2
Update index.md
emmanuel-awosika Jun 19, 2022
77562b6
Update index.md
emmanuel-awosika Jun 19, 2022
ae8317c
Update index.md
emmanuel-awosika Jun 19, 2022
93ad3df
Update index.md
emmanuel-awosika Jun 21, 2022
d7d877f
Update index.md
emmanuel-awosika Jun 22, 2022
b67afdf
Update index.md
emmanuel-awosika Jun 23, 2022
349c200
Update index.md
emmanuel-awosika Jun 26, 2022
d07548e
Feat(pages/404): Migrated 404.js => 404.tsx
M-Ivan Jun 26, 2022
564cb30
Fix(pages/404): Removed unnecessary round branckets string on 404 page
M-Ivan Jun 26, 2022
7e48a05
Feat(pages/404): Created interface for props and solved type errors
M-Ivan Jun 26, 2022
b7b59a1
Feat(pages/bug-bounty): Created interfaces for the page and improved …
M-Ivan Jun 26, 2022
f8dd080
Feat(pages/community): Community.js => Community.tsx
M-Ivan Jun 26, 2022
a0929e9
Feat(pages/community): Created interfaces for the community hub page
M-Ivan Jun 26, 2022
cb38d06
Apply suggestions from code review
emmanuel-awosika Jun 28, 2022
efd3d4a
Update index.md
emmanuel-awosika Jun 28, 2022
8379771
refactor(selectablecard): migrate component to typescript
Mousticke Jun 28, 2022
5329edf
refactor(UpgradeTableOfContents): prepare migration to typescript
Mousticke Jun 28, 2022
ef3dd90
Update index.md
emmanuel-awosika Jun 29, 2022
8edc7fb
Add links to snark and stark info
jmcook1186 Jun 30, 2022
b1d2636
add further reading links
jmcook1186 Jun 30, 2022
64c5af8
Update src/content/developers/docs/scaling/zk-rollups/index.md
emmanuel-awosika Jun 30, 2022
4c2381e
refactor: migrate PageHero/SkipLink to typescript
didoshotev Jul 4, 2022
3ae4e03
Merge branch 'dev' of https://github.com/didoshotev/ethereum-org-webs…
didoshotev Jul 4, 2022
15bd718
Update index.md
emmanuel-awosika Jul 5, 2022
8c8d376
Fix(git): Merged branch 'dev' into base and solved conflicts
M-Ivan Jul 9, 2022
f8de08a
Fix(bug-bounty): Fixed the declaration of page props and the sort met…
M-Ivan Jul 9, 2022
06bfd9c
Fix(404): Fixed props definition
M-Ivan Jul 9, 2022
2cd06cd
Fix(assets): Fixed the props definition to use PageProps
M-Ivan Jul 9, 2022
556ece2
Fix(assets): Fixed props definition and removed unnecessary GetImage …
M-Ivan Jul 9, 2022
ab44844
Fix(community): Fixed props definition, array type declaration and re…
M-Ivan Jul 9, 2022
9c23674
Fix(bug-bounty): Removed unnecessary export statements
M-Ivan Jul 9, 2022
71c5447
Fix(404): Added extra space
M-Ivan Jul 10, 2022
418819e
Fix type error
vdusart Jul 11, 2022
f2fb8ef
Convert TableOfContents file to TS
vdusart Jul 11, 2022
862ae05
Fix type errors linked to TableOfContents file
vdusart Jul 11, 2022
c448d0f
refactor
andyGallagher Jul 11, 2022
17137b7
Convert Tooltip file to TS
vdusart Jul 12, 2022
6afe97d
Convert TitleCardList file to TS
vdusart Jul 12, 2022
b58e9ae
Merge pull request #3 from vdusart/convert-file-c-&-s-files
vdusart Jul 13, 2022
214600e
Convert StatsBoxGrid file to TS
vdusart Jul 13, 2022
d6ca9d7
Merge branch 'dev' into convert-s-&-t-files
vdusart Jul 13, 2022
f790f8b
Merge branch 'dev' into review-ivan2
pettinarip Jul 14, 2022
a7c1f76
revert changes on md files
pettinarip Jul 14, 2022
9ac4c16
simplify typing in assetdownload component
pettinarip Jul 14, 2022
90a0f5f
update translation leaderboard data for month of June
corwintines Jul 14, 2022
c13cf23
Add link to evm.codes
samajammin Jul 14, 2022
68e45f0
Merge pull request #7071 from ethereum/update-translation-leaderboard
wackerow Jul 14, 2022
30cd7c6
Remove incomplete banner
samajammin Jul 14, 2022
aec7503
minor fixes on types
pettinarip Jul 15, 2022
e6a7b4e
Merge branch 'dev' into review-ivan2
pettinarip Jul 15, 2022
5be301c
Convert ZenModeContext file to TS
vdusart Jul 15, 2022
df68b52
Convert CreateWallet file to TS
vdusart Jul 15, 2022
b36d333
Apply suggestions from code review
emmanuel-awosika Jul 15, 2022
76ca96d
Merge pull request #7074 from ethereum/contract-testing-complete
minimalsm Jul 15, 2022
6f1f72f
Merge pull request #7073 from ethereum/add-evm-codes
minimalsm Jul 15, 2022
9ddd7ad
Update docs/event-tracking.md
minimalsm Jul 15, 2022
22c8b11
Add usage example
minimalsm Jul 15, 2022
6c87d47
Copy tweaks
minimalsm Jul 15, 2022
04e29ea
Merge pull request #6630 from ethereum/konopkja-patch-1
minimalsm Jul 15, 2022
64a47f8
Update src/content/developers/docs/scaling/plasma/index.md
minimalsm Jul 15, 2022
ca2d422
Update src/content/developers/docs/scaling/plasma/index.md
minimalsm Jul 15, 2022
cfffc54
Merge pull request #6636 from emmanuel-awosika/patch-14
minimalsm Jul 15, 2022
98cc511
Italian: add "Tutorials I" bucket from Crowdin
minimalsm Jul 15, 2022
04bd221
Remove skill levels
minimalsm Jul 15, 2022
13c28df
Apply suggestions from code review
minimalsm Jul 15, 2022
773ad6e
Italian: add "Tutorials II" bucket from Crowdin
minimalsm Jul 15, 2022
a3d6e6f
Skill > beginner
minimalsm Jul 15, 2022
bd4fdcd
Italian: add "Tutorials III" bucket from Crowdin
minimalsm Jul 15, 2022
473a011
Merge branch 'dev' into ts-migrate-upgrade-table-contents
Mousticke Jul 15, 2022
ecf33ad
call getImage on header image
pettinarip Jul 15, 2022
00f77f5
refactor(upgradeTableOfContent): migrate component to typescript
Mousticke Jul 15, 2022
8f52438
Fix braking HTML strong tags
minimalsm Jul 15, 2022
9549c72
Merge branch 'italianTutorials02' of https://github.com/ethereum/ethe…
minimalsm Jul 15, 2022
e886b09
fix header tag
corwintines Jul 15, 2022
addfbd3
Merge branch 'dev' into pr/6752
corwintines Jul 15, 2022
68ee3eb
Update src/content/developers/docs/scaling/zk-rollups/index.md
corwintines Jul 15, 2022
375c053
Fix bug
minimalsm Jul 15, 2022
f1bc9fd
Apply suggestions from code review
emmanuel-awosika Jul 16, 2022
651a8ed
Update index.md
emmanuel-awosika Jul 16, 2022
0e53581
Updated broken link + included a guide
0xolishell Jul 16, 2022
38ac628
chore(#6392): types for Search
nikkhielseath Jul 10, 2022
8d11f75
chore(search): add function return types
nikkhielseath Jul 10, 2022
d1fedb8
refactor(PageHit): change function signature
nikkhielseath Jul 14, 2022
2c5c80d
refactor(Input): change prop definition
nikkhielseath Jul 14, 2022
2d87099
fix(ISearchProps): make all props optional
nikkhielseath Jul 14, 2022
9a18902
chore(npm): add @types/react-instantsearch-dom
nikkhielseath Jul 14, 2022
9c1db39
refactor(Results): separate out component
nikkhielseath Jul 14, 2022
596c351
Merge branch 'dev' into review-ivan2
pettinarip Jul 16, 2022
69be560
Merge pull request #6829 from M-Ivan/ts-migration/M-Ivan_assigned-pages
pettinarip Jul 16, 2022
2ffce15
Merge branch 'dev' of https://github.com/didoshotev/ethereum-org-webs…
didoshotev Jul 16, 2022
92a61cc
Merge branch 'dev' of https://github.com/ethereum/ethereum-org-websit…
didoshotev Jul 16, 2022
2dd8720
fix: required ts changes
didoshotev Jul 16, 2022
19f237e
Merge branch 'dev' into review-SNikhill
pettinarip Jul 16, 2022
69237c4
Merge pull request #6994 from SNikhill/refactor/#6392-ts-search
pettinarip Jul 16, 2022
16a81d2
refactor on error & loading message components
pettinarip Jul 16, 2022
fb3a456
adjust some types
pettinarip Jul 16, 2022
2aab5e5
Merge branch 'dev' into review-vdusart3
pettinarip Jul 16, 2022
af7bfa0
more adjustments on types
pettinarip Jul 16, 2022
9c377e3
fix types
pettinarip Jul 16, 2022
de0527e
Merge pull request #7034 from vdusart/convert-s-&-t-files
pettinarip Jul 16, 2022
744fcfa
Convert get-eth file to TS
vdusart Jul 16, 2022
c90ae96
Convert languages file to TS
vdusart Jul 16, 2022
5b19ef2
Fix import
vdusart Jul 16, 2022
72e115e
Merge pull request #6909 from didoshotev/ts-migration
pettinarip Jul 16, 2022
27acd51
Add upgrading smart contract page to docs nav
samajammin Jul 16, 2022
28da7c4
Update contract page URLs to match convention
samajammin Jul 16, 2022
3adcb1e
revert md changes
pettinarip Jul 16, 2022
590dfe6
Merge branch 'dev' into review-moustick
pettinarip Jul 16, 2022
027f687
adjust and add types
pettinarip Jul 16, 2022
36ae188
Add two more DeSci projects to the list
metalc Jul 16, 2022
852cd46
Fix GitHub, MetaMask, and JavaScript typos
minimalsm Jul 17, 2022
778c8ee
Merge pull request #7086 from ethereum/data-availability-header-bug
minimalsm Jul 17, 2022
d6d83f6
Fix typo in how-to-mock-solidity-contracts-for-testing/index.md
eltociear Jul 17, 2022
a37f0b2
Update tokenpocket wallet data
chendatony31 Jul 18, 2022
451f6a5
Update to community-events.json
Tuongg2312 Jul 18, 2022
bad15c7
Update src/data/wallets/wallet-data.ts
minimalsm Jul 18, 2022
1701429
Merge pull request #7100 from chendatony31/dev
minimalsm Jul 18, 2022
f224503
docs: update README.md [skip ci]
allcontributors[bot] Jul 18, 2022
fc781eb
docs: update .all-contributorsrc [skip ci]
allcontributors[bot] Jul 18, 2022
922632e
Merge pull request #7102 from ethereum/all-contributors/add-chendatony31
minimalsm Jul 18, 2022
20ec222
Update src/content/developers/docs/scaling/optimistic-rollups/index.md
minimalsm Jul 18, 2022
d633f04
Update src/content/developers/docs/scaling/optimistic-rollups/index.md
minimalsm Jul 18, 2022
283c60c
Merge pull request #7091 from shelleyolivia/shelleyolivia-patch-optim…
minimalsm Jul 18, 2022
6794668
Merge pull request #7080 from ethereum/italianTutorials01
minimalsm Jul 18, 2022
c2ec719
Update src/content/translations/it/developers/tutorials/sending-trans…
minimalsm Jul 18, 2022
c6ea8a7
Update src/content/translations/it/developers/tutorials/erc20-annotat…
minimalsm Jul 18, 2022
b37ed5d
Update src/content/translations/it/developers/tutorials/sending-trans…
minimalsm Jul 18, 2022
8eb7556
Merge pull request #7081 from ethereum/italianTutorials02
minimalsm Jul 18, 2022
98cd5e6
Update src/content/desci/index.md
minimalsm Jul 18, 2022
843f8cd
docs: update README.md [skip ci]
allcontributors[bot] Jul 18, 2022
a73c3d1
docs: update .all-contributorsrc [skip ci]
allcontributors[bot] Jul 18, 2022
d432237
Merge pull request #7096 from metalc/patch-2
minimalsm Jul 18, 2022
a224757
Merge pull request #7103 from ethereum/all-contributors/add-metalc
minimalsm Jul 18, 2022
ef9a2e0
Merge pull request #7098 from ethereum/fixGithubAndMetaMaskTypos
minimalsm Jul 18, 2022
14344da
docs: update README.md [skip ci]
allcontributors[bot] Jul 18, 2022
82fb6c2
docs: update .all-contributorsrc [skip ci]
allcontributors[bot] Jul 18, 2022
3900209
Merge pull request #7101 from Tuongg2312/patch-1
minimalsm Jul 18, 2022
a39c909
Merge pull request #7104 from ethereum/all-contributors/add-Tuongg2312
minimalsm Jul 18, 2022
6742937
Merge pull request #7099 from eltociear/patch-17
minimalsm Jul 18, 2022
493b1f7
Merge pull request #7095 from ethereum/upgrading-contracts-nav
minimalsm Jul 18, 2022
35bc652
Remove H1
minimalsm Jul 18, 2022
dd4a942
Merge pull request #7082 from ethereum/italianTutorials03
minimalsm Jul 18, 2022
0364883
Fix typo in Ethereum energy consumption page
ErikSaunier Jul 18, 2022
10b1475
Merge pull request #7106 from ethereum/removeH1
minimalsm Jul 18, 2022
efaa242
docs: update README.md [skip ci]
allcontributors[bot] Jul 18, 2022
d12ba44
docs: update .all-contributorsrc [skip ci]
allcontributors[bot] Jul 18, 2022
38f21dc
Merge pull request #7110 from ethereum/all-contributors/add-ErikSaunier
minimalsm Jul 18, 2022
050257e
Merge pull request #7108 from ErikSaunier/patch-1
minimalsm Jul 18, 2022
74f364f
Update anchor text to match page
samajammin Jul 18, 2022
9c485fb
consistent :
corwintines Jul 18, 2022
7397f9c
remove projects added, will add these into layer-2.json as they come in
corwintines Jul 18, 2022
3feae34
casing
corwintines Jul 18, 2022
1061ca3
Merge branch 'dev' into pr/6752
corwintines Jul 18, 2022
b896260
Merge pull request #6752 from emmanuel-awosika/patch-16
corwintines Jul 18, 2022
6c88760
fix header bugs
corwintines Jul 18, 2022
1f7c1ae
Apply suggestions from code review
emmanuel-awosika Jul 19, 2022
237adc4
Update index.md
emmanuel-awosika Jul 19, 2022
a739277
Merge branch 'ethereum:dev' into convert-file-to-TS
vdusart Jul 19, 2022
7672842
redirect existing root paths to the corresponding defaultLanguage path
pettinarip Jul 19, 2022
dd7d23e
Update index.tsx
minimalsm Jul 19, 2022
4b1d8f5
refactor
pettinarip Jul 19, 2022
d3a8f67
copy edits
corwintines Jul 19, 2022
1dba7b0
Merge pull request #6732 from emmanuel-awosika/patch-15
corwintines Jul 19, 2022
a0c018b
disable generateMatchPathRewrites from plugins
pettinarip Jul 19, 2022
a2ace45
add nav changes to footer for wallets
corwintines Jul 19, 2022
b7ba263
define 404 redirects with correct status code
pettinarip Jul 19, 2022
48a206f
delete header link markdown
tvanepps Jul 20, 2022
afe0925
only do client side redirect on dev
pettinarip Jul 20, 2022
df3a0c5
Merge pull request #7148 from tvanepps/patch-2
minimalsm Jul 20, 2022
7f76f1b
Merge branch 'dev' into review-ts-migrate-get-involved
pettinarip Jul 20, 2022
b45b0b0
refactor typing to follow conventions
pettinarip Jul 20, 2022
12dbcf7
Merge pull request #7085 from Mousticke/ts-migrate-upgrade-table-cont…
pettinarip Jul 20, 2022
310c5b2
Merge pull request #7013 from andyGallagher/ts-migrate-get-involved
pettinarip Jul 20, 2022
7b7d407
add generated query types to get-eth page
pettinarip Jul 20, 2022
06dcab5
Changes on emoji and year of contribution for POAPs
vdusart Jul 21, 2022
f2be65c
Revert changes of the CreateWallet file
vdusart Jul 21, 2022
b5bfade
Merge pull request #7092 from vdusart/convert-file-to-TS
pettinarip Jul 21, 2022
439237e
only create redirects on productions or in cases where we have a server
pettinarip Jul 21, 2022
0c25a47
Merge branch 'fix-nested-redirects' into resolve-404-pages
pettinarip Jul 21, 2022
02267b3
update redirects json
pettinarip Jul 21, 2022
47df8a4
Merge pull request #7135 from ethereum/fix-nested-redirects
pettinarip Jul 21, 2022
093fc69
Merge pull request #7137 from ethereum/resolve-404-pages
pettinarip Jul 21, 2022
91ea5a8
Merge pull request #7136 from ethereum/updateNav
minimalsm Jul 21, 2022
d9f108e
Merge pull request #7121 from ethereum/content-resources
minimalsm Jul 21, 2022
571315b
Fix first batch of issues
minimalsm Jul 22, 2022
c984d83
Whitespacing fixes
minimalsm Jul 22, 2022
888fd59
More formatting issues
minimalsm Jul 22, 2022
4f42ce1
Merge pull request #7152 from vdusart/poaps-changes
minimalsm Jul 22, 2022
c635f75
Merge branch 'dev' into ts-migrate-selectablecard
Mousticke Jul 23, 2022
0077cda
fix(selectablecard): selected props has default value to false
Mousticke Jul 23, 2022
5675375
saas kiln initial listing
wackerow May 25, 2022
125e4ce
Merge pull request #7170 from ethereum/kiln-saas
minimalsm Jul 25, 2022
091a064
More typos
minimalsm Jul 25, 2022
cc84a77
Merge pull request #7167 from Mousticke/ts-migrate-selectablecard
pettinarip Jul 25, 2022
a8d4ef0
Update package.json
minimalsm Jul 25, 2022
5859996
Update src/content/translations/es/community/grants/index.md
wackerow Jul 25, 2022
d3388de
colon patch
wackerow Jul 25, 2022
4da463f
Update src/content/translations/fr/developers/docs/intro-to-ethereum/…
wackerow Jul 25, 2022
4ab5d39
Merge pull request #7172 from ethereum/fixMarkdownProblems
corwintines Jul 25, 2022
4f46b72
v4.9.0
corwintines Jul 25, 2022
0bf822a
Merge pull request #7175 from ethereum/v4-9-0
corwintines Jul 25, 2022
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
36 changes: 36 additions & 0 deletions .all-contributorsrc
Original file line number Diff line number Diff line change
Expand Up @@ -8142,6 +8142,42 @@
"contributions": [
"doc"
]
},
{
"login": "chendatony31",
"name": "Tony Chen",
"avatar_url": "https://avatars.githubusercontent.com/u/2173383?v=4",
"profile": "https://tokenpocket.pro",
"contributions": [
"doc"
]
},
{
"login": "metalc",
"name": "metalc",
"avatar_url": "https://avatars.githubusercontent.com/u/102876192?v=4",
"profile": "https://github.com/metalc",
"contributions": [
"doc"
]
},
{
"login": "Tuongg2312",
"name": "Tuongg2312",
"avatar_url": "https://avatars.githubusercontent.com/u/107551539?v=4",
"profile": "https://github.com/Tuongg2312",
"contributions": [
"doc"
]
},
{
"login": "ErikSaunier",
"name": "Ξrik Saunier",
"avatar_url": "https://avatars.githubusercontent.com/u/1122363?v=4",
"profile": "https://github.com/ErikSaunier",
"contributions": [
"doc"
]
}
],
"contributorsPerLine": 7,
Expand Down
12 changes: 9 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -158,14 +158,14 @@ In case you want to test them as if you were in a Netlify env, you can install t

> The Proof of Attendance Protocol is a dapp that distributes badges in the form of ERC-721 tokens to prove you participated in an event. [More on POAPs](https://www.poap.xyz/).

### ethereum.org 2021 Contributor POAP
### ethereum.org 2022 Contributor POAP

- If you have committed any changes in 2021 so far that were merged into our repo, you have a POAP waiting!
- If you have committed any changes in 2022 so far that were merged into our repo, you have a POAP waiting!
- This includes our dedicated translators on Crowdin

[![Discord](https://img.shields.io/discord/714888181740339261?color=1C1CE1&label=Claim%20Your%20POAP!%20%7C%20Discord%20%F0%9F%91%8B%20&style=flat)](https://discord.gg/CetY6Y4)

- 👆 To claim your Contributor POAP, join our Discord server and paste a link to your contribution in the #poaps-🏆 channel
- 👆 To claim your Contributor POAP, join our Discord server and paste a link to your contribution in the `#🥇 | poaps` [channel](https://discord.com/channels/714888181740339261/804005643211898911)

- A member of our team will verify the request and DM you with a personalized link to claim your own freshly minted POAP collectible!

Expand Down Expand Up @@ -1305,6 +1305,12 @@ Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/d
<td align="center"><a href="https://github.com/NachoRoizman"><img src="https://avatars.githubusercontent.com/u/107893772?v=4?s=100" width="100px;" alt=""/><br /><sub><b>NachoRoizman</b></sub></a><br /><a href="https://github.com/ethereum/ethereum-org-website/commits?author=NachoRoizman" title="Documentation">📖</a></td>
<td align="center"><a href="https://linkedin.com/in/miragaya-ivan"><img src="https://avatars.githubusercontent.com/u/72365253?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Iván Miragaya</b></sub></a><br /><a href="https://github.com/ethereum/ethereum-org-website/commits?author=M-Ivan" title="Code">💻</a></td>
<td align="center"><a href="https://github.com/smejak"><img src="https://avatars.githubusercontent.com/u/20759274?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Jakub Smékal</b></sub></a><br /><a href="https://github.com/ethereum/ethereum-org-website/commits?author=smejak" title="Documentation">📖</a></td>
<td align="center"><a href="https://tokenpocket.pro"><img src="https://avatars.githubusercontent.com/u/2173383?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Tony Chen</b></sub></a><br /><a href="https://github.com/ethereum/ethereum-org-website/commits?author=chendatony31" title="Documentation">📖</a></td>
<td align="center"><a href="https://github.com/metalc"><img src="https://avatars.githubusercontent.com/u/102876192?v=4?s=100" width="100px;" alt=""/><br /><sub><b>metalc</b></sub></a><br /><a href="https://github.com/ethereum/ethereum-org-website/commits?author=metalc" title="Documentation">📖</a></td>
</tr>
<tr>
<td align="center"><a href="https://github.com/Tuongg2312"><img src="https://avatars.githubusercontent.com/u/107551539?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Tuongg2312</b></sub></a><br /><a href="https://github.com/ethereum/ethereum-org-website/commits?author=Tuongg2312" title="Documentation">📖</a></td>
<td align="center"><a href="https://github.com/ErikSaunier"><img src="https://avatars.githubusercontent.com/u/1122363?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Ξrik Saunier</b></sub></a><br /><a href="https://github.com/ethereum/ethereum-org-website/commits?author=ErikSaunier" title="Documentation">📖</a></td>
</tr>
</table>

Expand Down
97 changes: 97 additions & 0 deletions docs/event-tracking.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,97 @@
# Event tracking on ethereum.org

This is a guide on how to prepare event tracking when creating a new page or redesigning an existing page.

## What are events?

Events are user interactions on the application that standard pageviews cannot track within a session. We create custom code snippets in the application in order to trigger these events.

Events are useful for measuring user engagement on the website. Tracking events lets us know when users interact with elements and forms and can help us understand how successful users are at accomplishing their goals.

Event tracking is a great way to validate our design decisions and assumptions. We can create reports in Matomo to gather insights and improve our product.

[View the Matomo guide on event tracking](https://matomo.org/guide/reports/event-tracking/).

## How is event tracking implemented?

ethereum.org uses Matomo, an open-source alternative to Google Analytics, allowing us to protect user privacy by not sharing any analytics with third parties.

We implemented Matomo using the [JavaScript tracking client](https://developer.matomo.org/guides/tracking-javascript-guide) via the [`gatsby-matomo-plugin`](https://github.com/kremalicious/gatsby-plugin-matomo) Gatsby plugin.

## What to measure?

Ideally, ask yourself what design decision/assumptions have been made on the page and should/could be validated by measured performance:

- clicks
- downloads
- site searches
- popups viewed/dismissed
- form fields abandoned
- scroll behavior down a page

This data can be later used to decide whether a feature is being used or is underperforming.

It's helpful to ask yourself how the results of what we track and measure might influence our decision-making. For example, measuring something that won't help us make concrete product decisions is probably not worth tracking.

# How to name events?

Broadly, events should be grouped by specific topic (e.g. L2 page external links, selected bridge, selected cex).

## Each event comprises of 4 hierarchical values:

1. Category (other events may share the same category if one feature has several actions)
2. Action
3. Name (optional)
4. Value (optional, can be number or text)

## Category

Please consider the page's visual position when deciding which events should be grouped together (under the same category). Ideally, all events related to one feature should be grouped together under the same category only if there is also a single position on the page where the event can be triggered. If in doubt, always use a different category when a feature gets used in multiple places on the page.

Example:
Find wallets page redirects to external links (wallets) in two positions: A) through the main list of wallets B) Through a modal window with detailed info about a specific wallet. In this case, we would like to have two separate categories for external links instead of one:

- Matomo list view
- Category: WalletExternalLinkList
- Action: Go to wallet
- eventName: WalletName
- Value: position
- Matomo modal view
- Category: WalletExternalLinkModal
- Action: Go to wallet
- eventName: WalletName
- Value: position

Such division allows us to identify where a user clicked on the page precisely; if all external links were under one category, "ExternalLink", we would not be able to measure the performance difference between the list and the modal window.

## Usage

Ethereum.org has a utility function (`trackCustomEvent`) for easily creating Matomo events.

```javascript
import { trackCustomEvent } from "../utils/matomo"
```

The function requires an object of event options. See the example below.

```javascript
const handleEvent = (): void => {
trackCustomEvent({
eventCategory: `FeedbackWidget toggled`,
eventAction: `Clicked`,
eventName: `Opened feedback widget`,
eventValue: `1`,
})
}
```

## Hidden gem of tracking: Value

Can be used to get more info on the UX.

Examples:

- Use it to track the average position of clicked search result
- What terms are entered into the search field
- Which option is chosen from a dropdown menu
- How many or what filters are applied when filtering the list of wallets
3 changes: 2 additions & 1 deletion gatsby-browser.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@ import {
defaultLanguage,
isLang,
} from "./src/utils/languages"
import { IS_DEV } from "./src/utils/env"
import { Context } from "./src/types"

// Default languages included:
Expand All @@ -42,7 +43,7 @@ export const wrapPageElement: GatsbyBrowser<

// client side redirect on paths that don't have a locale in them. Most useful
// on dev env where we don't have server redirects
if (!isLang(pathLocale)) {
if (IS_DEV && !isLang(pathLocale)) {
let detected =
window.localStorage.getItem("eth-org-language") ||
browserLang({
Expand Down
14 changes: 12 additions & 2 deletions gatsby-config.ts
Original file line number Diff line number Diff line change
Expand Up @@ -230,9 +230,19 @@ const config: GatsbyConfig = {
},
},
// Needed for Gatsby Cloud redirect support
`gatsby-plugin-gatsby-cloud`,
{
resolve: `gatsby-plugin-gatsby-cloud`,
options: {
generateMatchPathRewrites: false,
},
},
// Creates `_redirects` & `_headers` build files for Netlify
`gatsby-plugin-netlify`,
{
resolve: `gatsby-plugin-netlify`,
options: {
generateMatchPathRewrites: false,
},
},
],
// https://www.gatsbyjs.com/docs/reference/release-notes/v2.28/#feature-flags-in-gatsby-configjs
flags: {
Expand Down
69 changes: 58 additions & 11 deletions gatsby-node.ts
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,12 @@ import redirects from "./redirects.json"

const exec = util.promisify(child_process.exec)

const commonRedirectProps = {
isPermanent: true,
ignoreCase: true,
force: true,
}

/**
* Markdown isOutdated check
* Parse header ids in markdown file (both translated and english) and compare their info structure.
Expand Down Expand Up @@ -190,13 +196,11 @@ export const createPages: GatsbyNode<any, Context>["createPages"] = async ({
}) => {
const { createPage, createRedirect } = actions

// server side redirects
// custom redirects defined in `redirects.json`
redirects.forEach((redirect) => {
createRedirect({
...commonRedirectProps,
...redirect,
isPermanent: true,
ignoreCase: true,
force: true,
})
})

Expand Down Expand Up @@ -260,6 +264,12 @@ export const createPages: GatsbyNode<any, Context>["createPages"] = async ({
// e.g. English file: "src/content/community/index.md"
// e.g. corresponding German file: "src/content/translations/de/community/index.md"
if (language === defaultLanguage) {
createRedirect({
...commonRedirectProps,
fromPath: slug.slice(3),
toPath: slug,
})

for (const lang of supportedLanguages) {
const splitPath = relativePath.split("/")
splitPath.splice(2, 0, `translations/${lang}`)
Expand Down Expand Up @@ -315,6 +325,14 @@ export const createPages: GatsbyNode<any, Context>["createPages"] = async ({
// we can remove this logic and the `/pages-conditional/` directory.
const outdatedMarkdown = [`eth`, `dapps`, `wallets`, `what-is-ethereum`]
outdatedMarkdown.forEach((page) => {
const originalPath = `/${page}/`

createRedirect({
...commonRedirectProps,
fromPath: originalPath,
toPath: `/${defaultLanguage}${originalPath}`,
})

supportedLanguages.forEach(async (lang) => {
const markdownPath = path.resolve(
`src/content/translations/${lang}/${page}/index.md`
Expand All @@ -326,7 +344,7 @@ export const createPages: GatsbyNode<any, Context>["createPages"] = async ({
page,
lang
)
const originalPath = `/${page}/`

const slug = `/${lang}${originalPath}`

createPage<Context>({
Expand Down Expand Up @@ -356,14 +374,29 @@ export const onCreatePage: GatsbyNode<any, Context>["onCreatePage"] = async ({
page,
actions,
}) => {
const { createPage, deletePage } = actions
const { createPage, deletePage, createRedirect } = actions

// create routes without the lang prefix e.g. `/{path}` as our i18n plugin
// only creates `/{lang}/{path}` routes. This is useful on dev env to avoid
// getting a 404 since we don't have server side redirects
if (IS_DEV && page.path.startsWith(`/${defaultLanguage}`)) {
const isDefaultLang = page.path.startsWith(`/${defaultLanguage}`)

if (isDefaultLang) {
const path = page.path.slice(3)
createPage({ ...page, path })

if (IS_DEV) {
// create routes without the lang prefix e.g. `/{path}` as our i18n plugin
// only creates `/{lang}/{path}` routes. This is useful on dev env to avoid
// getting a 404 since we don't have server side redirects
createPage({ ...page, path })
}

if (!IS_DEV && !path.match(/^\/404(\/|.html)$/)) {
// on prod, indicate our servers to redirect the root paths to the
// `/{defaultLang}/{path}`
createRedirect({
...commonRedirectProps,
fromPath: path,
toPath: page.path,
})
}
}

const isTranslated = page.context.locale !== defaultLanguage
Expand All @@ -387,6 +420,20 @@ export const onCreatePage: GatsbyNode<any, Context>["onCreatePage"] = async ({
}
}

export const onPostBootstrap: GatsbyNode["onPostBootstrap"] = ({ actions }) => {
const { createRedirect } = actions

supportedLanguages.forEach((lang) => {
createRedirect({
...commonRedirectProps,
fromPath: `/${lang}/*`,
toPath: `/${lang}/404`,
statusCode: 404,
force: false,
})
})
}

export const createSchemaCustomization: GatsbyNode["createSchemaCustomization"] =
({ actions, schema }) => {
const { createTypes } = actions
Expand Down
3 changes: 2 additions & 1 deletion package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "ethereum-org-website",
"version": "4.8.0",
"version": "4.9.0",
"description": "Website of ethereum.org",
"main": "index.js",
"repository": "git@github.com:ethereum/ethereum-org-website.git",
Expand Down Expand Up @@ -79,6 +79,7 @@
"@types/node": "^17.0.23",
"@types/react": "^17.0.39",
"@types/react-dom": "^17.0.11",
"@types/react-instantsearch-dom": "^6.12.3",
"@types/styled-components": "^5.1.25",
"@types/styled-system": "^5.1.15",
"babel-preset-gatsby": "^2.14.0",
Expand Down
Loading