⚡️ Changes
- Derive SideNav open state from active route (#18645) @alerodriargui
- fix(ui): stop card text blurring on hover-lift (use translate, not sub-pixel scale) (#18365) @konopkja
- docs: Add newer Speedrun Ethereum challenges to the tutorials listing (#18857) @denalimarsh
- Fix: content fix of maxEB document (#18818) @HiroyukiNaito
- Fix: EIP and ERC omission fix for better understanding (#18832) @HiroyukiNaito
- Use country codes for centralized exchange exceptions (#18626) @alerodriargui
- fix(ui): stablecoins main spacing (#18860) @myelinated-wackerow
- fix: update ERC-721 Vyper tutorial to compile on Vyper 0.4.x (#18616) @lufa23
- fix: hide misleading epoch date when contributor data is missing (#18838) @myelinated-wackerow
- dev(mock): add far-out hackathon mock data (#18839) @myelinated-wackerow
- refactor: founders, resources, use-cases, videos pages to latest design system (#18827) @myelinated-wackerow
- content: update Ethereum Basics for Governments and Institutions PDF (#18837) @myelinated-wackerow
- feat(ui): add responsive CardFooter button variant (#18826) @myelinated-wackerow
- [recovery] Return 404 for non-existent story slugs (#18783) @pettinarip
- [recovery] fix: guard IssuesList against GitHub issues with null user (#18801) @pettinarip
- refactor: extract config-driven FilterableCatalog from ToolsCatalog (find-wallet revamp PR 1) (#18845) @pettinarip
- fix: shard sitemap.xml per locale (#18812) @myelinated-wackerow
- Update eligibility language for bug bounty program (#18843) @0xFredrik
- Add Envio to Data and analytics (#18787) @Jordy-Baby
- docs: note Vyper's module system on the languages page (#18614) @lufa23
- Update chains data - July 17 (#18835) @github-actions
- content: update CryptoSD meetup link to the canonical HTTPS URL (#18778) @Semak12345
- fix: update CryptoSD meetup link (#18731) @tapheret2
- Docs: mention Vyper's module system on the languages page (#18729) @FDongFDong
- docs: update Yellow Paper references and content alignment with latest version (#18655) @0xDecentralizer
- docs: update EIP-7954 contract size limit to 64 KiB (#18612) @jensendunamu
- Update gaming index: Add Asphodel, remove Immutable [Fixes #18735] (#18736) @Nexonik2
- fix: scroll to top on route navigation (#18836) @myelinated-wackerow
- fix(seo): resolve JSON-LD Google rich results validation errors (#18309) @nloureiro
- fix: rename /latest/feed.xml route to /latest/feed to break redirect loop (#18308) @tenderdeve
- fix: add navigation arrows to BuilderSwiper and VideoCourseSwiper (#18181) @nloureiro
- feat: appending Moccasin as a framework option (#18833) @myelinated-wackerow
- Add modern frontend libraries to further reading (#17746) @hidargmax27-cmyk
- Update NodeFlare entry (23 chains, 5 regions) (#18768) @nodeflareapp
- Fix table spacing and align handling (#18621) @alerodriargui
- Fix network upgrade date formatting (#18623) @alerodriargui
- Remove resources metric placeholders (#18625) @alerodriargui
- Update fullstack tutorial to Sepolia (#18620) @alerodriargui
- Add new bounty hunter entry for Paweł Bylica (#18776) @0xMushow
- fix: stop root not-found from poisoning request locale in dev (#18825) @pettinarip
- [recovery] Disable Next image on-disk cache on read-only Netlify Lambda (#18781) @pettinarip
🌐 Translations
- i18n: translation pipeline (all languages) (#18868) @wackerow
- Standardize five page layouts (layer-2, learn, reports) (#18817) @myelinated-wackerow
- fix: external-link arrow on card CTAs + translatable link assistive text (#18841) @myelinated-wackerow
- content: shorten homepage and apps meta descriptions [Fixes #18856] (#18859) @thenameisdevair
- refactor(ui): ProductList i18n data + link-card redesign (#18815) @myelinated-wackerow
- i18n: sync external descriptions - July 20 (#18844) @github-actions
- fix: remove gasfees.io phishing link from resources page (#18842) @Xeift
- docs: add "Authentication on Ethereum" page (#18399) @0xheycat
- docs: Modernize Scaffold-ETH 2 listing and credit SpeedRun Ethereum on its tutorials (#18791) @denalimarsh
- docs: add "Interacting with smart contracts" page (#18398) @0xheycat
📝 Documentation
- docs: capture setRequestLocale-first rule for app/[locale] pages (#18824) @myelinated-wackerow
- chore: remove plagiarized contributor entries (#18851) @myelinated-wackerow
- feat(ab-testing): Flags SDK precompute infrastructure (#18807) @pettinarip
🔧 Tooling
- fix(intake-digest): reliable merge-ready detection, clickable links, fixed template (#18865) @pettinarip
- [recovery] fix: make image placeholder cache I/O best-effort on read-only runtime FS (#18793) @pettinarip
- ci: gate visual changes on Chromatic's UI Tests check (#18809) @pettinarip
- feat(ab-testing): Flags SDK precompute infrastructure (#18807) @pettinarip
- Refactor opcodes table into separate component and fix table layout (#18208) @kafeelraza
- Remove obsolete homepage activity metrics (#18646) @alerodriargui
- fix flipForRtl api (#18633) @alerodriargui
- Fix rehype image buffer hashing type (#18641) @alerodriargui
- Update media query listener handling (#18622) @alerodriargui
- fix: build sitemap.xml statically (#18802) @myelinated-wackerow
- fix(aw): stop Issue Triager re-processing the same issues forever (#18819) @pettinarip
📦 Dependencies
- feat(ab-testing): Flags SDK precompute infrastructure (#18807) @pettinarip
🦄 Contributors
Thank you @0xDecentralizer, @0xFredrik, @0xMushow, @0xheycat, @Equious, @FDongFDong, @HiroyukiNaito, @Jordy-Baby, @Nexonik2, @Semak12345, @Xeift, @alerodriargui, @denalimarsh, @hidargmax27-cmyk, @jensendunamu, @kafeelraza, @konopkja, @lufa23, @nloureiro, @nodeflareapp, @pettinarip, @tapheret2, @tenderdeve, @thenameisdevair and @wackerow for the contributions! 🏆