Releases: ethereum/ethereum-org-website
v11.4.0
⚡️ Changes
🌐 Translations
- update: HK hub listing content (#17983) @myelinated-wackerow
- feat: videos page (#17970) @wackerow
- fix: free disk space after build to prevent ENOSPC on Netlify (#17971) @pettinarip
- refactor: videos page revamp (#17870) @wackerow
📝 Documentation
- feat(i18n): intl pipeline (#17963) @myelinated-wackerow
- feat: videos page (#17970) @wackerow
- fix: free disk space after build to prevent ENOSPC on Netlify (#17971) @pettinarip
- refactor: videos page revamp (#17870) @wackerow
🔧 Tooling
- Fix Trigger.dev CI deploy authentication (#17977) @pettinarip
- feat(i18n): intl pipeline (#17963) @myelinated-wackerow
- feat: videos page (#17970) @wackerow
- fix: free disk space after build to prevent ENOSPC on Netlify (#17971) @pettinarip
- refactor: videos page revamp (#17870) @wackerow
📦 Dependencies
- build(deps): bump next from 16.2.1 to 16.2.3 (#17961) @dependabot
- build(deps): bump hono from 4.12.12 to 4.12.14 (#17980) @dependabot
- build(deps): bump next-intl from 4.8.3 to 4.9.1 (#17965) @dependabot
- feat(i18n): intl pipeline (#17963) @myelinated-wackerow
🦄 Contributors
Thank you @myelinated-wackerow, @pettinarip and @wackerow for the contributions! 🏆
v11.3.0
⚡️ Changes
- add server-rendered hidden nav for search engine crawlability (#17928) @pettinarip
- Improve mobile Lighthouse performance (LCP, JS bundle) (#17958) @pettinarip
- Add review-release smoke test command (#17923) @pettinarip
- fix: incorrect footnote in whitepaper/index.md (#17940) @shynur
- Fix nested button hydration error in Tooltip components (#17930) @pettinarip
- adding ethux link to designer docs (#17947) @konopkja
- Fix London hub meetup link (#17941) @konopkja
- Update chains data - April 3 (#17924) @github-actions
🌐 Translations
- docs: Adding Canonical Txn Index to Portal Networks [Fixes #13361] (#17865) @jadijadi
- fix: replace dead Bankless jobs board link (#17840) @didierkrux
- i18n: sync external descriptions - April 8 (#17937) @github-actions
- feat(i18n): translate external app and tool descriptions (#17915) @myelinated-wackerow
- fix: exhaustive completion of custom header ids (#17896) @myelinated-wackerow
📝 Documentation
- refactor: decouple e2e tests from chromatic, run unit tests on PRs (#17921) @pettinarip
🔧 Tooling
- feat: auto-deploy data layer tasks on merge to master (#17929) @pettinarip
- refactor: decouple e2e tests from chromatic, run unit tests on PRs (#17921) @pettinarip
- fix: respect matomo opt-out for page view tracking (#17922) @pettinarip
- perf: improve INP by deferring Matomo tracking and virtualizing Select (#17912) @pettinarip
- fix(seo): add @id to community org and use @id references in JSON-LD graphs (#17955) @pettinarip
- fix: use correct label in sync workflow (#17938) @myelinated-wackerow
- feat(i18n): translate external app and tool descriptions (#17915) @myelinated-wackerow
- fix: exhaustive completion of custom header ids (#17896) @myelinated-wackerow
- feat: add markdownlint content linting with custom header ID enforcement (#17904) @myelinated-wackerow
📦 Dependencies
- feat: auto-deploy data layer tasks on merge to master (#17929) @pettinarip
- refactor: decouple e2e tests from chromatic, run unit tests on PRs (#17921) @pettinarip
- build(deps): bump defu from 6.1.4 to 6.1.6 (#17926) @dependabot
- fix: exhaustive completion of custom header ids (#17896) @myelinated-wackerow
- feat: add markdownlint content linting with custom header ID enforcement (#17904) @myelinated-wackerow
🦄 Contributors
Thank you @didierkrux, @jadijadi, @konopkja, @pettinarip, @shynur and @wackerow for the contributions! 🏆
v11.2.0
⚡️ Changes
- Increase Sentry pageload sample rate for reliable Web Vitals (#17740) @pettinarip
- Update bounty hunter 'VulSight' - Medium 5000 points (#17899) @0xMushow
- fix(i18n): use intl string for category tag (#17890) @myelinated-wackerow
- Fix React DOM warnings for blurWidth/blurHeight image props (#17875) @pettinarip
- Add ETHReS 2026 to community events. (#17902) @ivan-homoliak-sutd
- Update chains data - March 27 (#17880) @github-actions
🌐 Translations
- fix: rm unused lorem string (#17856) @wackerow
- fix: href whitespace, empty home link (#17847) @wackerow
- fix: withdrawal credentials widget (#17776) @wackerow
- fix(i18n): translate subcategory tags on /apps/ category pages (#17891) @myelinated-wackerow
- Fix broken HTML tags in glossary.json (#17889) @myelinated-wackerow
- refactor: upgrade prism-react-renderer from v1 to v2 (#17876) @pettinarip
- i18n: Gemini translations (all languages) (#17892) @wackerow
- i18n: add missing translations from initial full-repo pass (#17888) @myelinated-wackerow
- i18n: Gemini translations two (2) files (ur) (#17884) @wackerow
📝 Documentation
- docs: fix documentation typos (#17824) @lo996
- refactor: upgrade Storybook 8.6 to 10.3 with webpack (#17900) @pettinarip
- refactor: upgrade prism-react-renderer from v1 to v2 (#17876) @pettinarip
🔧 Tooling
- disableLogger deprecation warning from @sentry/nextjs (#17785) @alerodriargui
- refactor: upgrade Storybook 8.6 to 10.3 with webpack (#17900) @pettinarip
- refactor: upgrade Next.js 15.5 to 16.2 with next-intl v4 (#17898) @pettinarip
- feat: add empty action for branch tasks (#17893) @myelinated-wackerow
- fix(i18n): date and number format (#17791) @wackerow
- Rebrand ZKP2P to Peer in exchange listings (#17780) @0xSachinK
📦 Dependencies
- build(deps): bump lodash from 4.17.23 to 4.18.1 (#17913) @dependabot
- refactor: upgrade Storybook 8.6 to 10.3 with webpack (#17900) @pettinarip
- refactor: upgrade Next.js 15.5 to 16.2 with next-intl v4 (#17898) @pettinarip
- refactor: upgrade prism-react-renderer from v1 to v2 (#17876) @pettinarip
- build(deps): bump brace-expansion from 1.1.11 to 1.1.13 (#17877) @dependabot
- fix: pin @docsearch/css to 3.9.0 to match @docsearch/react v3 (#17878) @pettinarip
🦄 Contributors
Thank you @0xMushow, @0xSachinK, @alerodriargui, @ivan-homoliak-sutd, @lo996, @pettinarip and @wackerow for the contributions! 🏆
v11.1.0
⚡️ Changes
- fix: resolve structured data validation errors across app, tutorial, and event pages (#17863) @pettinarip
- Update decentralized-identity/index.md (#17014) @zulu0echo
- Add internal infrastructure section to AGENTS.md (#17849) @pettinarip
- Add new bounty hunter 'Grego AI' - Low 1000 points (#17844) @0xMushow
- fix(data-layer): beaconchain 429 rate limit resilience (#17832) @pettinarip
- feat: hide contributors if edit button hidden (#17797) @wackerow
🌐 Translations
- deprecate(i18n): translation progress from picker (#17852) @wackerow
- i18n: Gemini translations (ta) (#17871) @wackerow
- i18n: Gemini translations (bn) (#17866) @wackerow
- i18n: Gemini translations decentralized-identity (all languages) (#17867) @wackerow
- i18n: Gemini translations roadmap/zkevm (all languages) (#17861) @wackerow
- Add zkEVM for L1 block verification page (#16975) @minimalsm
- i18n: select re-translations (sw) (#17857) @wackerow
- fix: replace broken YouTube embed on /desci/ page (#17851) @pettinarip
- i18n: Gemini translations (ur) (#17854) @wackerow
- i18n: re-translations for select Urdu files (ur) (#17859) @wackerow
- i18n(sw): automated Crowdin translation import (part 01/05/07/10/11/12 of 13) (#17521) @minimalsm
- i18n(sw): automated Crowdin translation import (part 12 of 13) (#17532) @minimalsm
- i18n(sw): automated Crowdin translation import (part 11 of 13) (#17531) @minimalsm
- i18n(sw): automated Crowdin translation import (part 10 of 13) (#17530) @minimalsm
- i18n(sw): automated Crowdin translation import (part 07 of 13) (#17527) @minimalsm
- i18n(sw): automated Crowdin translation import (part 05 of 13) (#17525) @minimalsm
- i18n(pl): automated Crowdin translation import (part 03/07/09/10 of 13) (#17445) @minimalsm
- i18n: Gemini translations (de) (#17842) @wackerow
- i18n(mr): automated Crowdin translation import (part 04/07/09/10 of 13) (#17511) @minimalsm
- i18n: Gemini translations creating-a-wagmi-ui-for-your-contract (mr) (#17845) @wackerow
- i18n: Gemini translations (mr) (#17846) @wackerow
- i18n: Gemini translations (it) (#17841) @wackerow
- i18n(pl): automated Crowdin translation import (part 10 of 13) (#17452) @minimalsm
- i18n(pl): automated Crowdin translation import (part 09 of 13) (#17451) @minimalsm
- i18n(pl): automated Crowdin translation import (part 07 of 13) (#17449) @minimalsm
- i18n(mr): automated Crowdin translation import (part 10 of 13) (#17517) @minimalsm
- i18n(mr): automated Crowdin translation import (part 09 of 13) (#17516) @minimalsm
- i18n(mr): automated Crowdin translation import (part 07 of 13) (#17514) @minimalsm
- feat: add breadcrumbs to tutorial pages (#17685) @wackerow
- feat(i18n): extract WhitepaperBridge strings to namespace (#17830) @wackerow
📝 Documentation
- i18n: Gemini translations (bn) (#17866) @wackerow
- i18n: Gemini translations (ur) (#17854) @wackerow
- i18n(sw): automated Crowdin translation import (part 01/05/07/10/11/12 of 13) (#17521) @minimalsm
- i18n(pl): automated Crowdin translation import (part 03/07/09/10 of 13) (#17445) @minimalsm
- i18n: Gemini translations (de) (#17842) @wackerow
- i18n: Gemini translations (it) (#17841) @wackerow
- fix: docsearch/css dependency issue, initial env (#17818) @wackerow
🔧 Tooling
- deprecate(i18n): translation progress from picker (#17852) @wackerow
- feat: improve FileContributors display (#17872) @myelinated-wackerow
- fix: normalize developer tool URLs to prevent ~950 SEO 404s (#17853) @pettinarip
- i18n: Gemini translations (bn) (#17866) @wackerow
- fix: cache translation lookups to ensure hreflang reciprocity (#17864) @pettinarip
- Refactor all fetchers to use fetchRetry (#17850) @pettinarip
- i18n: Gemini translations (ur) (#17854) @wackerow
- i18n(sw): automated Crowdin translation import (part 01/05/07/10/11/12 of 13) (#17521) @minimalsm
- i18n(pl): automated Crowdin translation import (part 03/07/09/10 of 13) (#17445) @minimalsm
- i18n: Gemini translations (de) (#17842) @wackerow
- i18n: Gemini translations (it) (#17841) @wackerow
- feat: add breadcrumbs to tutorial pages (#17685) @wackerow
📦 Dependencies
- build(deps): bump yaml from 1.10.2 to 1.10.3 (#17873) @dependabot
- build(deps): bump picomatch from 2.3.1 to 2.3.2 (#17868) @dependabot
- build(deps): bump brace-expansion from 1.1.11 to 1.1.12 (#17869) @dependabot
- build(deps): bump yaml from 1.10.2 to 1.10.3 (#17855) @dependabot
- build(deps): bump picomatch from 2.3.1 to 2.3.2 (#17858) @dependabot
- chore(deps): bump socket.io-parser from 4.2.4 to 4.2.6 (#17805) @dependabot
- fix: docsearch/css dependency issue, initial env (#17818) @wackerow
🦄 Contributors
Thank you @0xMushow, @minimalsm, @pettinarip, @wackerow and @zulu0echo for the contributions! 🏆
v11.0.0
⚡️ Changes
- Update chains data - March 20 (#17817) @github-actions
- fork dates use UTC and fix hegota name flipflop (#17789) @nixorokish
- fix: add missing setRequestLocale in developers page (auto) (#17794) @pettinarip
- Add new bounty hunter 'Aarnavrotten' - Medium 5000 points (#17775) @0xMushow
- docs: add clean rlp encoding table (#17743) @samlaf
- fix: use trigger.dev catchError and logger for task error visibility (#17796) @pettinarip
- fix: handle malformed URI in events search query param (auto) (#17787) @pettinarip
🌐 Translations
- i18n(uk): automated Crowdin translation import (part 04/07/10 of 13) (#17472) @minimalsm
- i18n: Gemini translations (id) (#17835) @wackerow
- i18n(te): automated Crowdin translation import (part 03/07/10 of 13) (#17497) @minimalsm
- i18n(uk): automated Crowdin translation import (part 07 of 13) (#17475) @minimalsm
- i18n(uk): automated Crowdin translation import (part 10 of 13) (#17478) @minimalsm
- i18n(te): automated Crowdin translation import (part 10 of 13) (#17504) @minimalsm
- i18n(te): automated Crowdin translation import (part 07 of 13) (#17501) @minimalsm
- i18n(zh-tw): automated translation (part 02/07/10 of 13) (#17535) @minimalsm
- i18n(zh-tw): automated Crowdin translation import (part 10 of 13) (#17543) @minimalsm
- i18n(zh-tw): automated Crowdin translation import (part 07 of 13) (#17540) @minimalsm
- i18n: automated Crowdin translation import (ar) (#17105) @wackerow
- Clarifications on bbp (#17810) @fredrik0x
- i18n: Gemini repeat translations (ar) (#17809) @wackerow
- feat: gaming page revamp (#17722) @wackerow
- i18n: automated Crowdin translation import (hi) (#17101) @wackerow
- i18n: automated translation gaming/index.md (all languages) (#17769) @wackerow
- fix: restore "show-more" translation key removed by #17662 (#17774) @pettinarip
- feat: add ethskills callout section to /developers (#17753) @wackerow
📝 Documentation
- i18n(uk): automated Crowdin translation import (part 04/07/10 of 13) (#17472) @minimalsm
- i18n: Gemini translations (id) (#17835) @wackerow
- i18n: automated Crowdin translation import (ar) (#17105) @wackerow
- feat: upgrade to Next.js 15 + React 19 (#17781) @pettinarip
- feat(i18n): Gemini direct translation pipeline (#17804) @myelinated-wackerow
- feat: gaming page revamp (#17722) @wackerow
- docs: Netlify ISR 404 gotcha for async server components in MDX (#17786) @pettinarip
- i18n: automated Crowdin translation import (hi) (#17101) @wackerow
🔧 Tooling
- i18n(uk): automated Crowdin translation import (part 04/07/10 of 13) (#17472) @minimalsm
- i18n: Gemini translations (id) (#17835) @wackerow
- i18n(te): automated Crowdin translation import (part 03/07/10 of 13) (#17497) @minimalsm
- i18n(zh-tw): automated translation (part 02/07/10 of 13) (#17535) @minimalsm
- Raise minimum cache revalidation to daily, move gas table to client-side API (#17815) @pettinarip
- i18n: automated Crowdin translation import (ar) (#17105) @wackerow
- feat(i18n): Gemini translation pipeline v2 (#17813) @myelinated-wackerow
- feat: upgrade to Next.js 15 + React 19 (#17781) @pettinarip
- feat(i18n): Gemini direct translation pipeline (#17804) @myelinated-wackerow
- feat: add app and category pages to sitemap (#17788) @pettinarip
- feat: gaming page revamp (#17722) @wackerow
- feat: add co-author support and bot filtering to contributors (#17758) @myelinated-wackerow
- i18n: automated Crowdin translation import (hi) (#17101) @wackerow
- fix: quick content and type cleanup (#17761) @myelinated-wackerow
- i18n: automated translation gaming/index.md (all languages) (#17769) @wackerow
📦 Dependencies
- chore(deps): bump h3 from 1.15.3 to 1.15.9 (#17819) @dependabot
- chore(deps): bump next from 15.5.12 to 15.5.14 (#17812) @dependabot
- chore(deps): bump flatted from 3.3.3 to 3.4.2 (#17811) @dependabot
- feat(i18n): Gemini translation pipeline v2 (#17813) @myelinated-wackerow
- feat: upgrade to Next.js 15 + React 19 (#17781) @pettinarip
- chore(deps): bump h3 from 1.15.3 to 1.15.8 (#17799) @dependabot
- chore(deps): bump flatted from 3.3.3 to 3.4.1 (#17778) @dependabot
🦄 Contributors
Thank you @0xMushow, @fredrik0x, @minimalsm, @myelinated-wackerow, @nixorokish, @pettinarip, @samlaf and @wackerow for the contributions! 🏆
v10.27.0
⚡️ Changes
- Add new bounty hunter 'Cantina' - HIGH 10000 points (#17772) @0xMushow
- revert: remove homepage A/B test setup (#17742) @pettinarip
- fix: add ErrorBoundary to Search modal and fix MobileMenu error recovery (#17755) @pettinarip
- Update bounty hunter 'Revofusion' - 1xMedium + 1xHigh 15000 points (#17767) @0xMushow
- Add new bounty hunter 'Revofusion' - 4x High 40000 points (#17756) @0xMushow
- Add new bounty hunter 'Revofusion' - Medium 5000 points (#17754) @0xMushow
- fix: remove temp redirect flag from two routes (#17757) @myelinated-wackerow
- feat(SEO): update redirects (#17734) @myelinated-wackerow
- fix: remove invalid context-specific headers from netlify.toml (#17749) @pettinarip
- feat(data-layer): configurable blob store name via env var (#17729) @pettinarip
- Add Web3 Design Playbook to design-and-ux resources (#17727) @Dragoon0x
- feat: upload dev tools images to s3 on trigger task (#17732) @wackerow
- feat: upload dev tools images to s3 on trigger task (#17723) @wackerow
🌐 Translations
- i18n: automated translation page-roadmap.json (remaining languages) (#17771) @wackerow
- i18n: automated translation roadmap/glamsterdam (remaining languages) (#17770) @wackerow
- perf: remove unused keys from common.json namespace (#17662) @pettinarip
- Add Glamsterdam to roadmap & update carousel (#17730) @mnelsonBT
- Add ESP Grant Explorer to community grants page (#17759) @myelinated-wackerow
- perf: lazy-load mobile menu content to reduce RSC payload (#17661) @pettinarip
- docs(node): remove nicenode (#17726) @jgresham
📝 Documentation
- i18n: automated translation roadmap/glamsterdam (remaining languages) (#17770) @wackerow
- Move GitHub contributors fetching to scheduled data-layer task (#17174) @pettinarip
- Add Glamsterdam to roadmap & update carousel (#17730) @mnelsonBT
🔧 Tooling
- i18n: automated translation roadmap/glamsterdam (remaining languages) (#17770) @wackerow
- Fix: lowercase ethereum.org in breadcrumb and footer (#17700) @myelinated-wackerow
- Move GitHub contributors fetching to scheduled data-layer task (#17174) @pettinarip
- perf: remove unused keys from common.json namespace (#17662) @pettinarip
- Add Glamsterdam to roadmap & update carousel (#17730) @mnelsonBT
- fix(i18n): set correct robots meta for untranslated locale pages (#17562) @minimalsm
- fix: sitemap issues and deduplicate (#17639) @flatsponge
- perf: lazy-load mobile menu content to reduce RSC payload (#17661) @pettinarip
- fix: prevent dev/staging subdomains from being indexed by search engines (#17748) @pettinarip
- fix: prevent dev/staging subdomains from being indexed by search engines (#17741) @pettinarip
- auth: add mnelsonBT & lukassim to claude action (#17733) @wackerow
📦 Dependencies
- Move GitHub contributors fetching to scheduled data-layer task (#17174) @pettinarip
🦄 Contributors
Thank you @0xMushow, @Dragoon0x, @flatsponge, @jgresham, @minimalsm, @mnelsonBT, @myelinated-wackerow, @pettinarip and @wackerow for the contributions! 🏆
v10.26.0
⚡️ Changes
- fix(seo): fix JSON-LD structured data on /wallets/find-wallet/ (#17721) @konopkja
- Add structured data for community hubs (#17706) @myelinated-wackerow
- Remove broken links from community grants page (#17709) @konopkja
- fix(lint): add root flag to eslint config (#17695) @wackerow
- patch(ui): use 14px font-size on breadcrumbs (#17697) @wackerow
- patch: added
sizesfor stablecoin thumbnails (#17696) @wackerow - feat(ui): update tutorials layout (#17703) @wackerow
- fix: apply
select-noneto external link text (#17699) @wackerow - refactor: open source tooling first (#17693) @wackerow
- patch(a11y): rm broken alt from logos (#17676) @wackerow
- Update for the wagmi article (#17603) @qbzzt
- Add new bounty hunter 'Evgeny Legerov' - Low 1000 points (#17683) @0xMushow
- chore: remove unused releasesData export and CoinGecko logs (#17680) @pettinarip
🌐 Translations
- Increase max bounty payment to $1,000,000 for criticals (#17711) @fredrik0x
- Remove deprecated Waffle tutorials (#17664) @myelinated-wackerow
- i18n: extract support page strings (#17694) @myelinated-wackerow
- fix: broken contributor profiles (#17698) @myelinated-wackerow
- i18n: automated Crowdin translation import (all languages) (#17275) @wackerow
- i18n: automated translations - support page JSON (all languages) (#17701) @wackerow
- i18n: automated translations - support page MD (all languages) (#17702) @wackerow
- feat: update community hubs (#17686) @wackerow
- i18n: automated Crowdin translation import (pt-br) (#17122) @wackerow
- Redesign /community/support/ as crisis-first support hub (#17583) @konopkja
- SEO - missing image alt text (#17672) @mnelsonBT
- Bug Bounty Page Refactor (#17688) @fredrik0x
- i18n: automated Crowdin translation import (ko) (#17166) @wackerow
- i18n: automated Crowdin translation import (vi) (#17176) @wackerow
📝 Documentation
- i18n: extract support page strings (#17694) @myelinated-wackerow
- i18n: automated Crowdin translation import (all languages) (#17275) @wackerow
- i18n: automated translations - support page JSON (all languages) (#17701) @wackerow
- i18n: automated translations - support page MD (all languages) (#17702) @wackerow
- i18n: automated Crowdin translation import (pt-br) (#17122) @wackerow
- Bug Bounty Page Refactor (#17688) @fredrik0x
- i18n: automated Crowdin translation import (ko) (#17166) @wackerow
- i18n: automated Crowdin translation import (vi) (#17176) @wackerow
🔧 Tooling
- i18n: extract support page strings (#17694) @myelinated-wackerow
- fix: broken contributor profiles (#17698) @myelinated-wackerow
- i18n: update glossary fetch to internal data-layer in automation workflow (#17610) @wackerow
- i18n: automated Crowdin translation import (all languages) (#17275) @wackerow
- i18n: automated translations - support page JSON (all languages) (#17701) @wackerow
- i18n: automated translations - support page MD (all languages) (#17702) @wackerow
- auth: update bounty-hunters CODEOWNERS (#17665) @wackerow
- i18n: automated Crowdin translation import (pt-br) (#17122) @wackerow
- Bug Bounty Page Refactor (#17688) @fredrik0x
- i18n: automated Crowdin translation import (ko) (#17166) @wackerow
- i18n: automated Crowdin translation import (vi) (#17176) @wackerow
- fix: tutorial link handling (#17684) @wackerow
📦 Dependencies
- build(deps): bump svgo from 3.3.2 to 3.3.3 (#17716) @dependabot
- fix(sentry): clean up error tracking, add module tags, and improve transaction normalization (#17692) @pettinarip
🦄 Contributors
Thank you @0xMushow, @fredrik0x, @konopkja, @mnelsonBT, @myelinated-wackerow, @pettinarip, @qbzzt and @wackerow for the contributions! 🏆
v10.25.0
⚡️ Changes
- Replace beaconscan slot/epoch links with beaconcha.in on history page (#17670) @Buttaa
- Tutorial: Providing your customers with a gasless experience (#17575) @qbzzt
- docs(get-eth): display correct content while hovering (#17636) @Uaitt
- Add VulSight - 10000 points (#17657) @0xMushow
- Update Elata project description in index.md (#17647) @AMelhede
- perf: convert footer to server component (#17650) @pettinarip
- SEO - Addressing remaining orphan pages (#17658) @mnelsonBT
- Adding sonny2k to consensus layer bug bounty hunters (#17656) @fredrik0x
- fix(ab-test): add custom dimension for segment queries (#17646) @pettinarip
- Add Codex to developer docs (#17638) @Nealo
- docs: add dia oracles (#17196) @khawlahssn
- fix(seo): remove duplicate @id in tutorials page JSON-LD (#17599) @wackerow
- fix(content): repair broken markdown table in restaking page (#17593) @wackerow
- feat(find-wallet): Add Infinex wallet #17586 (#17587) @riva-infinex
- docs: add Stork to oracles page (#17590) @galenmoore1
- fix: deduplicate block explorer lists (#17592) @wackerow
- hotfix kpi wrapping number (#17607) @pettinarip
- fix: update metamask open source status (#17273) @wackerow
- fix(analytics): ensure link click tracking works with ButtonLink (#17595) @pettinarip
- perf: limit RSS items to 3 per feed (#17580) @pettinarip
- Added Audittens and DongHan Kim to bug bounty leaderboard (#17588) @fredrik0x
- Update Nimbus URL on Bug Bounty Page (#17585) @fredrik0x
- fix: remove broken DeFi Pulse links (#17573) @konopkja
- fix: update outdated info on AI agents page (#17571) @konopkja
- fix(seo): add internal links to orphaned pages and homepage backlinks (#17578) @minimalsm
- fix(links): update stale internal links and add missing redirects (#17568) @minimalsm
- fix(breadcrumbs): update homepage text and add missing root breadcrumb (#17565) @minimalsm
- fix(i18n): disable automatic locale prefix redirect (#17561) @minimalsm
- content: add contextual internal links on key pages (#17570) @minimalsm
- feat(footer): add homepage link (#17566) @minimalsm
- Update execution-bounty-hunters.json (#17574) @fredrik0x
- Add slippage protection section to AI trading tutorial (#17266) @qbzzt
- Tutorial: Make your own AI trading agent (#17253) @qbzzt
- Re-enable Blobscan API fetch (#17262) @pettinarip
- fix(e2e): update whitepaper test to match new PDF link text (#17256) @pettinarip
- Handle invalid developer tools category slugs with 404 (#17254) @pettinarip
🌐 Translations
- i18n: automated Crowdin translation import (ru) (#17127) @wackerow
- i18n: automated Crowdin translation import (fr) (#17125) @wackerow
- SEO - fixing internal canonical links (#17673) @mnelsonBT
- SEO - updating broken external links (#17669) @mnelsonBT
- Fix broken consensus specs links (#17208) @someone19204
- SEO - internal redirecting links (#17666) @mnelsonBT
- i18n(cs): automated Crowdin translation import (part 10 of 13) (#17556) @minimalsm
- i18n(cs): automated Crowdin translation import (part 01 of 13) (#17547) @minimalsm
- SEO audit - best pages by link (#17652) @mnelsonBT
- SEO - Internal link errors (#17659) @mnelsonBT
- docs(stablecoins): correct typo (#17651) @Uaitt
- i18n: automated Crowdin translation import (ja) (#17132) @wackerow
- patch: tutorials list ui and header issues (#17635) @wackerow
- docs(revoke-access): correct wrong Blockscout URL (#17637) @Uaitt
- fix: escape apostrophes in French translations for strong tags [#17631] (#17632) @nicolasbalao
- i18n(cs): automated Crowdin translation import (part 07 of 13) (#17553) @minimalsm
- Redesign tutorials filter UI with skill tabs, search, and collapsible tags (#17579) @konopkja
- i18n: automated Crowdin translation import (tr) (#17182) @wackerow
- docs: correct weird sentence (#17591) @Uaitt
- feat: add ethskills.com link to developers page (#17572) @konopkja
- i18n(tr): automated Crowdin translation import (part 12 of 13) (#17428) @minimalsm
- i18n(tr): automated Crowdin translation import (part 13 of 13) (#17429) @minimalsm
- i18n(bn): automated Crowdin translation import (part 01 of 13) (#17430) @minimalsm
- i18n(bn): automated Crowdin translation import (part 02 of 13) (#17431) @minimalsm
- i18n(uk): automated Crowdin translation import (part 06 of 13) (#17474) @minimalsm
- i18n(uk): automated Crowdin translation import (part 08 of 13) (#17476) @minimalsm
- i18n(mr): automated Crowdin translation import (part 11 of 13) (#17518) @minimalsm
- i18n(de): automated Crowdin translation import (part 05 of 13) (#17382) @minimalsm
- i18n(de): automated Crowdin translation import (part 06 of 13) (#17383) @minimalsm
- i18n(de): automated Crowdin translation import (part 08 of 13) (#17385) @minimalsm
- i18n(de): automated Crowdin translation import (part 12 of 13) (#17389) @minimalsm
- i18n(de): automated Crowdin translation import (part 13 of 13) (#17390) @minimalsm
- i18n(bn): automated Crowdin translation import (part 04 of 13) (#17433) @minimalsm
- i18n(bn): automated Crowdin translation import (part 03 of 13) (#17432) @minimalsm
- i18n(bn): automated Crowdin translation import (part 05 of 13) (#17434) @minimalsm
- i18n(bn): automated Crowdin translation import (part 06 of 13) (#17435) @minimalsm
- i18n(bn): automated Crowdin translation import (part 12 of 13) (#17441) @minimalsm
- i18n(bn): automated Crowdin translation import (part 13 of 13) (#17442) @minimalsm
- i18n(pl): automated Crowdin translation import (part 01 of 13) (#17443) @minimalsm
- i18n(pl): automated Crowdin translation import (part 02 of 13) (#17444) @minimalsm
- i18n(pl): automated Crowdin translation import (part 04 of 13) (#17446) @minimalsm
- i18n(pl): automated Crowdin translation import (part 05 of 13) (#17447) @minimalsm
- i18n(pl): automated Crowdin translation import (part 06 of 13) (#17448) @minimalsm
- i18n(pl): automated Crowdin translation import (part 08 of 13) (#17450) @minimalsm
- i18n(pl): automated Crowdin translation import (part 11 of 13) (#17453) @minimalsm
- i18n(pl): automated Crowdin translation import (part 12 of 13) (#17454) @minimalsm
- i18n(pl): automated Crowdin translation import (part 13 of 13) (#17455) @minimalsm
- i18n(ur): automated Crowdin translation import (part 03 of 13) (#17458) @minimalsm
- i18n(ur): automated Crowdin translation import (part 05 of 13) (#17460) @minimalsm
- i18n(ur): automated Crowdin translation import (part 06 of 13) (#17461) @minimalsm
- i18n(ur): automated Crowdin translation import (part 08 of 13) (#17463) @minimalsm
- i18n(ur): automated Crowdin translation import (part 09 of 13) (#17464) @minimalsm
- i18n(ur): automated Crowdin translation import (part 12 of 13) (#17467) @minimalsm
- i18n(ur): automated Crowdin translation import (part 13 of 13) (#17468) @minimalsm
- i18n(uk): automated Crowdin translation import (part 01 of 13) (#17469) @minimalsm
- i18n(uk): automated Crowdin translation import (part 02 of 13) (#17470) @minimalsm
- i18n(uk): automated Crowdin translation import (part 03 of 13) (#17471) @minimalsm
- i18n(uk): automated Crowdin translation import (part 05 of 13) (#17473) @minimalsm
- i18n(uk): automated Crowdin translation import (part 09 of 13) (#17477) @minimalsm
- i18n(uk): automated Crowdin translation import (part 11 of 13) (#17479) @minimalsm
- i18n(uk): automated Crowdin translation import (part 12 of 13) (#17480) @minimalsm
- i18n(uk): automated Crowdin translation import (part 13 of 13) (#17481) @minimalsm
- i18n(ta): automated Crowdin translation import (part 01 of 13) (#17482) @minimalsm
- i18n(ta): automated Crowdin translation import (part 03 of 13) (#17484) @minimalsm
- i18n(ta): automated Crowdin translation import (part 05 of 13) (#17486) @minimalsm
- i18n(ta): automated Crowdin translation import (part 06 of 13) (#17487) @minimalsm
- i18n(ta): automated Crowdin translation import (part 08 of 13) (#17489) @minimalsm
- i18n(ta): automated Crowdin translation import (part 11 of 13) (#17492) @minimalsm
- i18n(ta): automated Crowdin translation import (part 12 of 13) (#17493) @minimalsm
- i18n(ta): automated Crowdin translation import (part 13 of 13) (#17494) @minimalsm
- i18n(te): automated Crowdin translation import (part 01 of 13) (#17495) @minimalsm
- i18n(te): automated Crowdin translation import (part 02 of 13) (#17496) @minimalsm
- i18n(te): automated Crowdin translation import (part 04 of 13) (#17498) @minimalsm
- i18n(te): automated Crowdin translation import (part 05 of 13) (#17499) @minimalsm
- i18n(te): automated Crowdin translation import (part 06 of 13) (#17500) @minimalsm
- i18n(te): automated Crowdin translation import (part 08 of 13) (#17502) @minimalsm
- i18n(te): automated Crowdin translation import (part 09 of 13) (#17503) @minimalsm
- i18n(te): automated Crowdin translation import (part 11 of 13) (#17505) @minimalsm
- i18n(te): automated Crowdin translation import (part 12 of 13) (#17506) @minimalsm
- i18n(te): automated Crowdin translation import (part 13 of 13) (#17507) @minimalsm
- i18n(mr): automated Crowdin translation import (part 01 of 13) (#17508) @minimalsm
- i18n(mr): automated Crowdin translation import (part 02 of 13) (#17509) @minimalsm
- i18n(mr): automated Crowdin translation import (part 03 of 13) (#17510) @minimalsm
- i18n(mr): automated Crowdin translation import (part 05 of 13) (#17512) @minimalsm
- i18n(mr): automated Crowdin translation import (part 06 of 13) (#17513) @minimalsm
- i18n(mr): automated Crowdin translation import (part 08 of 13) (#17515) @minimalsm
- i18n(mr): automated Crowdin translation import (part 12 of 13) (#17519) @minimalsm
- i18n(mr): automated Crowdin translation import (part 13 of 13) (#17520) @minimalsm
- i18n(zh-tw): automated Crowdin translation import (part 01 of 13) (#17534) @minimalsm
- i18n(sw): automated Crowdin translation import (part 02 of 13) (#17522) @minimalsm
- i18n(sw): automated Crowdin translation import (part 04 of 13) (#17524) @minimalsm
- i18n(sw): automated Crowdin translation import (part 03 of 13) (#17523) @minimalsm
- i18n(sw...
v10.23.0
⚡️ Changes
- Update execution-bounty-hunters.json (#17225) @fredrik0x
- Add bridge content to whitepaper page for better user guidance (#17190) @konopkja
- fix(data-layer): temporarily disable Blobscan fetch task (#17240) @pettinarip
- Remove completed HomepagePersonaCTAs A/B test (#17232) @pettinarip
- refactor: isolate developer-tools module in data layer (#17213) @pettinarip
- refactor(ui): new AppCard component with stories and migration (#17178) @wackerow
- Update execution-bounty-hunters.json (#17220) @fredrik0x
- feat(data-layer): add Discord notifications for task failures (#17215) @pettinarip
- refactor(data-layer): convert fetchers to individual trigger.dev tasks (#17212) @pettinarip
- Update chains data - January 30 (#17204) @github-actions
- fix: enable dynamic rendering for homepage A/B testing (#17192) @pettinarip
🌐 Translations
- i18n: translation import, /developers/tools/ content (all langs) (#17130) @wackerow
- Remove 'How others succeed' and 'Founder success' sections from /founders/ page (#17239) @konopkja
- Equal bug bounty pay for german hunters. (#17228) @riproprip
- fix: grammar - change 'Its' to 'It's' in address definition (#17217) @Zentex1337
- fix: grammar - change 'allows to' to 'allows creating' (#17216) @Zentex1337
- Correct grammar [Fixes #17206] (#17207) @sankalpk
- feat: new /developer/tools pages (#17110) @wackerow
- fix(pl): remove typo/garbage text in defi page (#17175) @Pytkopff
- fix(pl): improve translation phrasing in about page (#17123) @Pytkopff
- deprecate: dev local-environment, learning-tools (#17137) @wackerow
- refactor(ui): filter bar for /apps/, /developers/apps/ (#17181) @wackerow
- i18n: automated Crowdin translation import (zh - full) (#17090) @wackerow
📝 Documentation
- docs: update contributor OAT references to 2026 (#17167) @Surya512002
🔧 Tooling
- i18n: translation import, /developers/tools/ content (all langs) (#17130) @wackerow
- fix(ci): fetch all open PRs in Netlify cleanup workflow (#17246) @pettinarip
- feat: new /developer/tools pages (#17110) @wackerow
- feat(ci): add GitHub workflow for translation review (#17234) @wackerow
- fix(data-layer): add CoinGecko demo API key to prevent rate limiting (#17221) @pettinarip
- i18n: automation mvp (#16954) @wackerow
- deprecate: dev local-environment, learning-tools (#17137) @wackerow
- feat: pre-compute developer apps selections in data layer (#17180) @wackerow
- feat: simple markdown (#17131) @wackerow
📦 Dependencies
- chore(deps): bump webpack from 5.99.9 to 5.105.0 (#17251) @dependabot
- i18n: translation import, /developers/tools/ content (all langs) (#17130) @wackerow
- feat: new /developer/tools pages (#17110) @wackerow
- feat(data-layer): add S3 image upload utility (#17231) @pettinarip
- i18n: automation mvp (#16954) @wackerow
🦄 Contributors
Thank you @Pytkopff, @Surya512002, @Zentex1337, @fredrik0x, @konopkja, @pettinarip, @riproprip, @sankalpk, and @wackerow for the contributions! 🏆
v10.22.1
⚡️ Changes
- Add homepage persona modal A/B test variant (#17184) @pettinarip
- Add retry logic to scheduled task fetchers (#17169) @pettinarip
- Update chains data - January 23 (#17163) @github-actions
🔧 Tooling
- fix(tutorials): use filesystem reads with English fallback (#17151) @minimalsm
- 🫡 (#17183) @corwintines
- chore(storybook): replace fa locale with ar for RTL testing (#17170) @pettinarip
🦄 Contributors
Thank you @corwintines, @minimalsm, @pettinarip and @wackerow for the contributions! 🏆