v12.2.0
Core Changes
- Flush initial styled-jsx in gIP first in concurrent rendering: #36594
- Add falling back to wasm swc build on native load failure: #36612
- feat(next-swc): introduce experimental tracing support for swc: #35803
- Add initial handling for routing tests: #36635
- Fix asPath handling for data route revalidation in minimal mode: #36660
- fix: react root enabled properly in custom server: #36664
- Route Loader Trusted Types Violation Fix: #34730
- Update components in GitHub Actions: #36669
- Fix various Trusted Types violations without use of policy: #34726
- Add experimental wildcard
remotePatterns
config for upstream images: #36245 - Tweak routing tests: #36667
- Update renderOpts.dev handling and fix check: #36666
- fix: duplicate app server: #36710
- Add route loader: #36712
- Fix leftover todo in loader: #36734
- Leverage pageExtensions for resolving in loader: #36747
- Use react dom server node api to detect react root is enabled: #36749
- replace use-subscription with use-sync-external-store: #36733
- Add flight render starting point: #36760
- feat: better cookies API for Edge Functions: #36478
- Clarify variables being used during rendering: #36773
- Update x-nextjs-cache header in minimal mode: #36791
- Add experimental flag to force SWC transforms: #36789
- Update root component handling: #36781
- Add final newline to package-lock.json: #36813
- Move FlightManifestPlugin to server compilers: #36810
- Update moduleNameMapper jest config and remove extra deps: #36787
- Wait for shell resolve with gIP is customized in react 18: #36792
- Build x86_64-freebsd SWC binary: #36826
- Don't convert error to string: #36804
- fix(#36534): enable interopClientDefaultExport for next/jest: #36824
- fix(#30300): force export 404.html: #36827
- Telemetry: track usage of 'experimental/nextScriptWorkers': #36812
- Eagerly load swc bindings for wasm fallback for jest: #36784
- Add experimental config for basePath testing: #36843
- Enable html post optimization for react 18: #36837
- Update client router for tests: #36822
- Fix return type of middleware
req.cookies.get()
: #36872 - Make esm default interpolation work with jest mock: #36877
- Decouple entries for server components and client components: #36860
- fix(#36855/#30300): export 404.html correctly: #36910
- Drop the unstable web vital hook and remove exports of flush effects: #36912
- Update swc: #36745
- Add additional layer for server components case: #36921
- Support graceful shutdowns: #36909
- Update @types/node-fetch to latest: #36953
- Fix SWC dynamic transform with suspense but without ssr: #36825
- fix(#36651): disable reactRemoveProperties in jest transform: #36922
- Update swc: #36972
- Update lockfile patching for different versions: #36959
- Add support for browserslist and legacyBrowsers experimental option: #36584
- Remove optional chaining from eslint rule to support older node versions: #36978
- escape flight response values: #36989
- fix(middleware): false positive dynamic code detection at build time: #36955
- Fix interopDefault on jest object-proxy: #37002
- Simplify the logic for static flight response generation: #36984
- Fixes
beforeInteractive
scripts failing in custom document: #37000 - Change experimental
layout=raw
to use native img lazy loading: #36985 - Don't add locale to client side redirects from data fetching: #36944
- Edge Cookies: Add
.getWithOptions
method: #36943 - Deprecate nested Middleware in favor of root middleware: #36772
- Fix styled-jsx not working in client components in the edge runtime when SSR: #37042
- Update to latest version of @vercel/nft: #37041
- Fixes beforeInteractive inline scripts don't run: #37033
- Update swc: #37009
- feat(middleware)!: forbids middleware response body: #36835
- Extract and refactor
getPageStaticInfo
: #37062 - Keep custom app as non server component: #37044
- Ensure hydration error doc link is shown with react 18: #37074
- Stabilize SWC emotion transform plugin: #37058
- DecodeError from invalid URI causes 500 with middleware (vs 400 without): #36993
- feat: Opt-out Error page from dark scheme color: #36951
- Properly await for this.hasPage() in base-server: #37091
- Enable Trusted Types Compatibility in Webpack: #36750
- Fix Trusted Types violations from dangerouslySetInnerHTML on style elements: #36751
- Remove invalid attrs for head html element: #36457
- Fix next/link can't jump to non-latin anchors: #36430
- Fix: Cleaner error message when importing sass without it being installed in dev: #35051
- fix(#33081): handle relative path correctly: #36823
- fix: place the charset meta tag at the top of the head: #36561
- keep method when cloning Request, fixes #36522: #36539
- fix: Catch hash change errors, and emit a
routeChangeError
event: #36828 - fix: should listen for config file changes when specifying the app directory: #36570
- improve getStaticProps error message: #34287
- next-swc: Improve error message for nested styled jsx tags: #33805
- Add missing file in mini-css-extract-plugin: #25691
- fix NextApiRequestCookies and NextApiRequestQuery types: #25532
- Add eslint rule for not allowing styled-jsx in _document.js: #32678
- fix: Scroll restoration bug caused by
idx
reset to 0 on reload: #36861 - Add JSX.Element to styles type in DocumentInitialProps: #36392
- Fix Type to solve issue found in #36008: #36671
- Warn when building a TS project with composite: true and fallback to incremental: #35270
- Support TS exactOptionalPropertyTypes (fixes #35280): #35281
- feat(middleware): issues warnings when using node.js global APIs in middleware: #36980
- perf: run type check and eslint in parallel: #37105
- Remove process.cwd usage from path polyfill: #37130
- Bump
@vercel/nft
to 0.19.1: #37129 - Add libc field to swc packages: #37131
- chore(devDeps): bump @vercel/ncc to 0.33.4: #37113
- fix(typescript): worker execution failed with custom
next.config.js
: #37125 - Update swc: #37148
- Update swc: #37149
- Fix client component hydration: #37134
- Avoid anonymous function in next/link: #37154
- should render the correct sizes passed when a noscript is rendered: #37161
- Use customized chunk loading implementation: #37163
- Rename app paths folder: #37146
- Fix experimental
remotePatterns
wildcard: #37137 - Split useServerResponse for initial responses: #37209
- Refactor fetchFlight: #37213
- build: import useSyncExternalStore from react when using react 18: #37212
- feat(next/swc): support experimental swc plugins: #36790
- Small code improvements: #37227
- build(actions): skip plugin features for non supported platform: #37229
- Use deterministic module IDs in the client bundle: #37249
- Execute middleware on Next.js internal requests: #37121
- Preload chunks for next/dynamic in suspense mode: #37245
- Refactor incremental cache to be extensible: #37258
- Ignore popstate with invalid state: #37110
- Show warning during build if page is returning a large amount of data: #37264
- Add
swcMinifyDebugOptions
: #37172 - Update to leverage pnpm for monorepo: #37259
- Refactor client component out of client runtime: #37238
- Update to not trigger revalidation during prefetch: #37201
- Upgrade amp optimizer to v2.8.3: #27106
- Use Edge Runtime for running Edge Functions locally: #37024
- fix: do not pass
legacyBehaviour
toa
as prop: #37306 - Add router replace to experiment: #37312
- Extract router utils to common functions: #37313
- Include router context as rsc shared dep: #37320
- Update to leverage turbo for build/prepublish: #37280
- Update of @babel/core: #37145
- Migrate prerender lru cache into fs cache handler: #37326
- support
runtime: edge
in api endpoints: #36947 - Revert "support
runtime: edge
in api endpoints": #37337 - Ensure type check/link worker does not retry: #37324
- Revert "Revert "support
runtime: edge
in api endpoints"": #37344 - Revert Edge API endpoints: #37350
- Handle link with back/forward navigation: #37332
- Edge Functions: deprecate access to
request.page
: #37349 - Fix bloat in main bundle from amp: #37383
- Add Suspense boundary to demo: #37393
- update webpack and watchpack: #37397
- Fix next dev not working for server components in app: #37403
- Use the new moduleMap option in the flight client during SSR: #37406
- Remove unused id rsc cache cleaning and avoid rsc refresh existed in client chunk: #37404
- Allow Middleware to set its matcher: #37177
- Skip loading unused plugins in
next dev
: #37430 - Fix
next/image
usinglayout=raw
withpriority
: #37381 - Fix document head with react 18: #37443
- Set
swcMinify
as an attribute onterser-webpack-plugin-optimize
span: #37416 - Allowing hiding the ReactDevOverlay: #37417
- Ensure ENOENT error is not ignored when loading pages: #37486
- Upgrade node-html-parser: #37449
- Fix invalid middleware regexp in manifest: #37492
- Avoid unnecessary router state changes: #37431
- Enable externalHelpers swc option: #37150
- Add check for duplicate locales: #37485
- add method to measure Interaction to Next Paint (INP): #36490
- chore: remove unused variable: #37538
- Update to latest version of @swc/helpers: #37531
- [middleware] Support any
method
when fetching aRequest
instance: #37540 - Migrate head side effects to hooks: #37526
- chore: remove unused safari nomodule fix: #37541
- fix(#37106): middleware can not be loaded from src folder: #37428
- Remove Middleware Preflight: #37490
- fix(eslint): false positive for legit next/server imports: #37515
- chore: reworks nested middleware error message: #37513
- Revert "Avoid unnecessary router state changes": #37572
- Middleware: remove
req.ua
: #37512 - [middleware] support destructuring for env vars in static analysis: #37556
- Fix react root env missing in NextServer: #37562
- Fix client entry unexpectedly created in app dir: #37561
- Ensure check-precompiled exits correctly on failure: #37592
- Revert "Revert "Avoid unnecessary router state changes"": #37593
- Update to process redirects/rewrites for _next/data with middleware: #37574
- Bump @vercel/nft 0.20.0: #37602
- Strip next internal queries for flight response: #37617
- chore: narrows regexp to enable middleware source maps: #37582
- feat(next export): add warning if using getInitialProps: #37642
- Update matched path params priority: #37646
- Re-introduce Edge API Endpoints: #37481
- Fix rewrite/dynamic interpolation E2E cases: #37669
- Fix Image Optimization cache-control regression with external images: #37625
- Adds consistency to ESLint rules.: #34335
- Ensure custom middleware matcher is used correctly in client manifest: #37672
- Optimize middleware regex handling: #37688
- Revert "Revert "Revert "Avoid unnecessary router state changes""": #37692
- Add test combining middleware & config rewrites: #37667
- fix(ts): expose
DynamicOptionsLoadingProps
type: #37700 - Improve Middleware errors: #37695
- Ensure navigating with middleware parses route params correctly: #37704
- Fix shallow routing with rewrites/middleware: #37716
- chore: bump react dev dep to 18.2: #37697
- Ensure rewrite query params with middleware are available in router: #37724
- Update pre-compiled: #37729
- fix(eslint): allow in conjunction with
- [middleware] Warn dynamic WASM compilation: #37681
- Update to skip middleware for unstable_revalidate: #37734
- Remove previous query param deleting warning: #37740
- Enhance experimental feature warning: #37752
- Add
images.unoptimized: true
for easynext export
: #37698 - Ensure eslint-config warning/errors are correct: #37760
- Refactor server routing: #37725
- refactor(middleware): leverages edge-runtime builtins to decorate errors in dev: #37718
- Ensure query params are populated correctly with middleware: #37784
- Use SVG blur technique for raw layout images: #37022
- fix(config): only warn experimental feature when used: #37755
- Display full refresh warning even when error has occurred: #37425
- Detect pnpm correctly when installing missing dependencies: #37813
- Throw an error when
target: 'serverless'
is used with Middleware: #37819 - Enable
externalHelpers
when pre compiling Next.js' code: #37164 - Revert "Enable
externalHelpers
when pre compiling Next.js' code": #37829 - Allow Edge Functions to receive body: #37822
- Add hard navigation guard and fix middleware rewrite cases: #37815
- [edge api] allow wasm usage: #37836
- Include i18 and basePath on middleware with custom matchers: #37854
- Fix compile time log after error: #37863
- Fix
<Image/>
'slazyRoot
and other optimizations: #37447 - resolve swc-plugin paths: #37412
- Update swc: #37607
- Ensure next-server tracing uses tracing root config: #37888
- Migrate middleware ssr to edge functions: #37708
- refactor: merge duplicated render page logic: #37897
- Fix styled-jsx types when package is not hoisted: #37902
- Remove full reload overlay and warn in CLI instead: #37874
- Remove NextResponse.json as we already have it defined from inheriting Response: #37887
- fix: keep _ssgManifest.js output uniform: #37906
- Fix next/head in _app in RSC pages: #37928
- Ensure resolvedUrl is correct with fallback rewrites: #37932
- Ensure special chars in middleware matcher is handled: #37933
- Drop experimental.reactRoot in favor of auto detection: #37956
- feat: enable configuration of
styled-components
transform and enablecss
prop support: #37861 - feat: enable styled-components css prop swc transform by default: #37962
- Ensure cache-control is correct when returning redirect: #37958
- Move styled-jsx type reference: #37964
- Add experimental
next/future/image
component: #37927 - Remove Middleware warning message: #37973
- Fix hard navigation guard on popstate and handle fetching fresh data: #37970
- Fixes for middleware compilation errors: #37984
- Fix npm publish to include
future
folder: #37999 - Move outputStandalone config: #37994
- Move
rimraf
from root packages using it: #37996 - On-demand ISR updates: #37955
- fix: hardcoded protocol in request url: #37925
- Fix eslint-config-next peer dep issue: #38009
- fix(#37981): handle legacy link behavior with number type children: #38013
- Fix invalid warning for existing experimental flag: #38027
- feat(cli): allow configuration of http-server's timeout configuration: #35827
- [eslint-plugin-next] remove
no-server-import-in-page
rule: #38028 - chore: rename middleware ssr loader and flight manifest to edge related: #38042
- Ensure we do not ignore module not found errors during build: #38026
- Rename page runtime edge to experimental-edge: #38041
- chore: make experimental images options optional: #38030
- Remove layout raw image experiment: #38006
- [Script] Allow
next/script
to be placed in_document
body: #37894 - [middleware] avoid fetching a chunk for api endpoints on middleware redirect: #37949
- Upgrade Edge Runtime: #38069
- feat(cli): report
eslint-config-next
version innext info
: #38062 - Add invariant with debug information when failing to load static file: #38075
- Add error for renaming of unstable_revalidate: #38070
- fix(next): bind new stream functions with base incomingMessage object: #37806
- Add
init
to someNextResponse
methods: #38071 - Fix resolving dynamic routes when on returns a redirect: #38079
- Remove unnecessary
<noscript>
fromnext/future/image
: #38080 - Ensure history navigation is correct after query update: #38086
- Ensure client cache keys match between prefetch and transition: #38089
- Upgrade Edge Runtime: #38105
Documentation Changes
- docs: add jest-environment-jsdom package for Jest configuration: #36632
- Added type to Page Component for TypeScript: #36608
- Improve wording: #36649
- fix(docs): mention cookies in context: #36342
- Add docs about nextRuntime for custom webpack: #36685
- Updated the middleware api docs env section to remove dev and prod : #36739
- Fixed typo: #36753
- Fixing Tina + Adding a demo URL: #35480
- Updated copy around enabling source maps: #36852
- scss exects semicolon: #36779
- docs: add more details about nextRuntime in webpack config and runtime in next config: #36862
- Move CI build cache instructions to Deployment docs: #35418
- docs: adding changes to setCookie example: #36870
- Update no-floating-promises lint rule docs page: #36913
- Update runtime-configuration.md: #36923
- Clarify .env* environment variable priority: #36967
- Add note clarifying pnpm args handling: #37049
- typo: Change yarn into pnpm: #37092
- Include router.asPath caveats in docs: #36876
- docs: clarify environment variables behavior: #36620
- docs: Add pageExtensions usage note in API Routes: #35918
- Add docs about locale: #33401
- Clarify conditions under which process.env expressions are inlined: #33212
- Update testing.md: #29954
- Add section for jetbrains webstorm debugging: #24556
- Update incremental-static-regeneration.md: #37159
- Docs: missing parenthesis on example: #37156
- Use appropriate
className
attribute for JSX: #37168 - Fix broken links in image.md: #37223
- Add note that
next build
output is compressed.: #37228 - add supported API's link to middleware docs: #37251
- Update
pnpm create next-app
for latest pnpm 6 and 7: #37254 - [docs] Clarify "When does getStaticProps run" note: #37289
- Improve
next/dynamic
docs and add links to layouts RFC.: #37244 - Add a note: #37315
- docs: fix usage in middleware errors: #37364
- Update nested Middleware error reference.: #37368
- Add note about NEXT_DATA hydration: #37480
- Update deployment documentation.: #37571
- i18n regression tests and docs for ignore locale in rewrite: #37581
- [Script] Updates stale
no-script-in-document-page
error doc: #37568 - Fix links in google-font-display error: #37661
- Update Jest config with SWC docs: #37705
- Add upgrade guide for Middleware.: #37382
- Add missing error manifest entry and fix lint: #37758
- fix grammar in failed-loading-swc: #37765
- Update 4MB API Routes warning error guide.: #37779
- Update custom-document.md: #37811
- Fix broken link for no-script-in-document-page error.: #37831
- fix typo in example section of dynamic-import.md: #37834
- fix: missing parentheses: #37839
- Describe relation between region locale and country locale when a country is not found: #37745
- Change Middleware error guide from
.js
to.ts
.: #37858 - Update Middleware docs to mention canary version.: #37865
- Fix typo in dynamic import section of dynamic-import.md: #37872
- chore(examples): fix
active-class-name
example: #37828 - Fix some casing of "On-Demand ISR": #37892
- Adds new userAgent docs to the next/server docs page: #37613
- Add a Plasmic example: #37522
- Update Middleware beta message.: #37934
- docs: clarify
NextRequest.ip
: #37987 - docs: return response in code example: #37985
- Fix flaky
onLoad()
test fornext/image/future
: #37993 - Fix typo for rewrites to rewrite.: #38000
- Add note about skipping upstream cache during revalidation: #38014
- Add SWC plugins to version history in docs.: #38039
- Fix typo for rewrites/redirects to rewrite/redirect: #38016
- Added ESLint upgrade instructions to middleware upgrade guide: #38008
- Rephrase middleware location: #38073
- Update middleware-upgrade-guide to be consistent: #38102
Example Changes
- Update buttercms example: #35436
- Fix mobile tests in with-playwright: #36705
- added example: with-geist-ui: #36525
- chore: upgrade dependencies in Jest examples: #36858
- Example/facebook pixel script: #34417
- fix(examples): maxlength was inconsistent: #36840
- chore: update Jest example snapshots: #36884
- Remove un-helpful error in with-sentry example: #36902
- Update to with-supertokens example: #36906
- Add with-markdoc/ example: #36867
- custom-server-express fix type definition and eliminate dead code: #37054
- fix(examples/with-segment-analytics): Update README: #35387
- fix(with-tailwindcss-emotion): 'theme' of undefined: #35588
- update zustand example: #35022
- example: Added with-contentlayer example: #30045
- docs: svg as component example leveraging swc instead of babeljs: #36410
- Fix gh-pages example for windows user: #35169
- Use apollo onError in with-apollo example: #25051
- [EXAMPLES] fix apollo client cache hydration: #27799
- docs(with-sentry): Add note regarding replacing wizardcopy.js config files: #37039
- feat(examples): build a GraphQL Gateway with GraphQL Mesh and Next.js API routes: #36439
- feat(examples): refactor
api-routes-graphql
to GraphQL Yoga: #36155 - refactor(examples/with-typescript-graphql): use codegen
TypedDocumentNode
and GraphQL Yoga for better DX and smaller bundle size: #36240 - Update
cms-kontent
example SDK package to v11: #37187 - Fix
cms-kontent
exampleNext/Image
domain error: #37188 - Update
cms-kontent
example to action PR feedback: #37206 - chore: simplify
with-styled-components
: #37237 - add pnpm link to docs: #37221
- Fix with-contentlayer example build error: #37257
- chore: update
with-tailwindcss
example to TypeScript: #37208 - Updated graphql API to support v1.7.2: #35896
- Update GitHub Pages deployment example.: #37282
- change map function to forEach function: #37284
- Remove extra prettier config from tailwindcss example : #37351
- Update for CMS Wordpress Example.: #37402
- Fix with mux video example: #37434
- Changed _app.js to a functional component: #37635
- Bump version tailwindcss example to 3.1: #37633
- Update with-faunadb dependencies: #37650
- Request library required by setup: #37658
- Update with-mux-video to use latest upchunk and replace video player with mux-player-react: #37621
- Convert active-class-name example to TypeScript: #37676
- Add with-docker-compose example: #32668
- Convert hello-world example to TypeScript: #37706
- Update Ghost CMS Example: Accept-Version Header API requirement, typo: #37737
- Update Chakra-UI dependencies for React 18: #37772
- fix: markdown format for the blog-starter example: #37792
- Convert amp example to TypeScript: #37744
- feat: add correct type to with-styled-coponents: #37816
- Update Cosmic CMS Example: cosmicjs package to v4.1.7, update queries: #37693
- update devdDependencies @types/react and @types/react-dom : #37423
- [Examples] updated styled-components: #37856
- [Examples] Add external example with typescript to "with-material-ui" folder: #37846
- Adding example with-fingerprintjs-pro for identifying visitors: #37549
- chore: detect no canary verification: #37788
- Added with-particles template: #35471
- Fixing bug - Can't resolve 'prop-types': #38021
- Add *.tsbuildinfo to .gitignore of examples that use typescript: #38005
- Convert amp-first example to TypeScript: #38029
- fix(38043): replace double slashes with hashtag for comment lines in β¦: #38044
- Convert amp-story example to TypeScript: #38038
- Convert analyze-bundles example to TypeScript: #38040
Misc Changes
- Enable disabled tests that pass: #36644
- test: merge rsc custom app cases: #36713
- enforce omitting
name
andversion
: #36771 - test: clean up duplicated tests: #36871
- Update to latest version of turbo: #37046
- Fix copying local swc binary for pnpm test: #37047
- Update a couple flakey tests: #37071
- Fixed anotation param name: #37075
- Enable E2E deploy tests on publish: #37019
- Merge multiple log statements: #35310
- Add typedef for next-bundle-analyzer: #35075
- next-bundle-analyzer: openAnalyzer option: #36493
- chore: add test for in-fragment HEAD reflection: #35320
- Add tests for getStaticProps and getServerSideProps: #37014
- Update deploy E2E test setup: #37126
- Fix example extraction when branch name contains slash: #37140
- Fix build-wasm CI job: #37165
- Update contributing doc and PR template for examples: #37193
- Update contributing doc and PR template for examples: #37215
- Update test config to only install pnpm when needed: #37222
- Fix memory allocation issue on linux gnu platform: #37243
- Add type definitions for next/mdx: #36815
- Ensure all bench dependencies are added: #37278
- add version step for publish
- Update swc builds : #37285
- Ensure pnpm is available during publish
- declare pnpm7 as engine: #37303
- Update install native script: #37354
- Update missed yarn -> pnpm in contributing: #37370
- Fix font-optimization snapshot test: #37432
- fix: removes invalid path from doc: #37415
- Update tests root->app: #37477
- test: upgrade playwright-chromium from 1.14.1 to 1.22.2: #37436
- Update flakey preview test: #37518
- Add middleware size stats: #37519
- Fix failing swc builds: #37629
- Update usage of example.com -> example.vercel.sh: #37630
- Update flakey next-script tests: #37663
- Allow passing FileRef directly to createNext: #37664
- Update middleware matcher e2e test: #37694
- Update concurrency for dev and start E2E tests: #37719
- Expose test timings token for e2e tests: #37756
- chore: use
pnpm install
in tests: #37712 - Add bug report field to issue template: #37766
- Update to use latest version of pnpm: #37794
- Fix a couple flakey next-script and unoptimized image tests: #37848
- add a test that verifies that NextResponse can be cloned: #37883
- fix(ci): Don't build wasmer for freebsd and i686 windows target: #37891
- chore: add
action.yml
to Issue validator action: #37950 - feat(cli): support examples without
package.json
: #37910 - Update middleware matcher test for root: #37961
- Ensure repo is checked out before running validate issue action: #37972
- Fix issue-validator path
- chore: use Node 16 for issue validator action: #37982
- Update to latest version of turbo: #37976
- Bump
release
to 6.3.1: #37995 - Update flakey prefetch test: #37997
- Update expected error for middleware deploy test: #37998
- Update
.gitignore
to include@next/swc-wasm-nodejs
: #38025 - chore: compile issue validator action: #37990
- Update image tests from placeholder.com to *.vercel.app: #38081
Credits
Huge thanks to @huozhi, @ijjk, @kwonoj, @ViolanteCodes, @akrabdev, @timneutkens, @jpveilleux, @stigkj, @jgoping, @oof2win2, @Brooooooklyn, @CGamesPlay, @lfades, @molebox, @steven-tey, @SukkaW, @Kikobeats, @balazsorban44, @erikbrinkman, @therealmarzouq, @remcohaszing, @perkinsjr, @shuding, @hanneslund, @housseindjirdeh, @RobertKeyser, @styfle, @htunnicliff, @lukeshumard, @Sagnik3, @pixelass, @JoshuaKGoldberg, @rishabhpoddar, @nguyenyou, @kdy1, @sidwebworks, @gnoff, @gaspar09, @feugy, @mfix-stripe, @javivelasco, @Chastrlove, @goncharov-vlad, @NaveenDA, @Firfi, @idkwhojamesis, @FLCN-16, @icyJoseph, @ElijahPepe, @elskwid, @irvile, @Munawwar, @ykolbin, @hulufei, @baruchadi, @imadatyatalah, @await-ovo, @menosprezzi, @gazs, @Exortions, @rubens-lopes, @woochul2, @stefee, @stmtk1, @jlarmstrongiv, @MaedahBatool, @jameshfisher, @fabienheureux, @TxHawks, @mattbrandlysonos, @iggyzap, @src200, @AkifumiSato, @hermanskurichin, @kamilogorek, @ben-xD, @dawsonbooth, @Josehower, @crutchcorn, @ericmatthys, @CharlesStover, @charlypoly, @apmatthews, @naingaungphyo, @alexandrutasica, @stefanprobst, @dc7290, @DilwoarH, @tommarshall, @stanhong, @leerob, @appsbytom, @sshyam-gupta, @saulloalmeida, @indicozy, @ArianHamdi, @Clariity, @sebastianbenz, @7iomka, @gr-qft, @Schniz, @dgagn, @sokra, @okbel, @tbvjaos510, @dmvjs, @PepijnSenders, @JohnPhamous, @kyliau, @eric-burel, @alabhyajindal, @jsjoeio, @vorcigernix, @clearlyTHUYDOAN, @splatterxl, @manovotny, @maxproske, @nvh95, @frankievalentine, @nuta, @bagpyp, @dfelsie, @qqpann, @atcastle, @jsimonrichard, @mass2527, @ekamkohli, @Yuddomack, @tonyspiro, @saurabhmehta1601, @banner4422, @falsepopsky, @jantimon, @henriqueholtz, @ilfa, @matteobruni, @ryscheng, @hoonoh, @ForsakenHarmony, @william-keller, @AleksaC, @Miikis, @zakiego, @radunemerenco, @AliYusuf95, and @dominiksipowicz for helping!