From bbc8ea57affa7edfba9105215f2e9226316f8bf7 Mon Sep 17 00:00:00 2001 From: Kalle <38327916+Sendouc@users.noreply.github.com> Date: Sun, 16 Aug 2026 09:20:33 +0300 Subject: [PATCH] Move app to apps/web-react in pnpm workspace layout --- .github/workflows/e2e-tests.yml | 18 +-- .github/workflows/main.yml | 2 +- .github/workflows/translation-progress.yml | 2 +- .gitignore | 26 +-- .env.example => apps/web-react/.env.example | 0 .env.test => apps/web-react/.env.test | 0 .../web-react/app}/browser-test-setup.ts | 0 .../components/AbilitiesSelector.module.css | 0 .../app}/components/AbilitiesSelector.tsx | 0 .../app}/components/Ability.module.css | 0 .../web-react/app}/components/Ability.tsx | 0 .../app}/components/ActionButton.tsx | 0 .../app}/components/Alert.module.css | 0 .../web-react/app}/components/Alert.tsx | 0 .../app}/components/Avatar.module.css | 0 .../web-react/app}/components/Avatar.tsx | 0 .../web-react/app}/components/Badge.tsx | 0 .../app}/components/BuildCard.module.css | 0 .../web-react/app}/components/BuildCard.tsx | 0 .../web-react/app}/components/Catcher.tsx | 0 .../app}/components/Chart.module.css | 0 .../web-react/app}/components/Chart.tsx | 0 .../components/CopyToClipboardPopover.tsx | 0 .../components/CustomThemeSelector.module.css | 0 .../app}/components/CustomThemeSelector.tsx | 0 .../app}/components/Divider.module.css | 0 .../web-react/app}/components/Divider.tsx | 0 .../app}/components/DotPagination.module.css | 0 .../app}/components/DotPagination.tsx | 0 .../app}/components/EventsList.module.css | 0 .../web-react/app}/components/EventsList.tsx | 0 .../web-react/app}/components/Flag.tsx | 0 .../app}/components/FormErrors.module.css | 0 .../web-react/app}/components/FormErrors.tsx | 0 .../app}/components/FormMessage.module.css | 0 .../web-react/app}/components/FormMessage.tsx | 0 .../app}/components/FormWithConfirm.tsx | 0 .../app}/components/FriendCodeInput.tsx | 0 .../app}/components/FriendCodePopover.tsx | 0 .../app}/components/GameTimeline.module.css | 0 .../app}/components/GameTimeline.tsx | 0 .../web-react/app}/components/GearSelect.tsx | 0 .../app}/components/Image.module.css | 0 .../web-react/app}/components/Image.tsx | 0 .../app}/components/InfoPopover.module.css | 0 .../web-react/app}/components/InfoPopover.tsx | 0 .../components/IngameNameInput.module.css | 0 .../app}/components/IngameNameInput.tsx | 0 .../app}/components/Input.module.css | 0 .../web-react/app}/components/Input.tsx | 0 .../app}/components/Label.module.css | 0 .../web-react/app}/components/Label.tsx | 0 .../web-react/app}/components/LocaleTime.tsx | 0 .../app}/components/LocaleTimeRange.tsx | 0 .../web-react/app}/components/Main.module.css | 0 .../web-react/app}/components/Main.tsx | 0 .../components/MapPoolSelector.module.css | 0 .../app}/components/MapPoolSelector.tsx | 0 .../web-react/app}/components/Markdown.tsx | 0 .../app}/components/MobileNav.module.css | 0 .../web-react/app}/components/MobileNav.tsx | 0 .../app}/components/NoteAvatar.module.css | 0 .../web-react/app}/components/NoteAvatar.tsx | 0 .../components/NotificationDot.module.css | 0 .../app}/components/NotificationDot.tsx | 0 .../components/ObjectiveTimeline.module.css | 0 .../app}/components/ObjectiveTimeline.tsx | 0 .../app}/components/Pagination.module.css | 0 .../app}/components/Pagination.test.ts | 0 .../web-react/app}/components/Pagination.tsx | 0 .../app}/components/Placeholder.module.css | 0 .../web-react/app}/components/Placeholder.tsx | 0 .../web-react/app}/components/Placement.tsx | 0 .../PlayerStatusTimeline.module.css | 0 .../app}/components/PlayerStatusTimeline.tsx | 0 .../web-react/app}/components/Redirect.tsx | 0 .../components/RelativeTime.browser.test.tsx | 0 .../app}/components/RelativeTime.tsx | 0 .../app}/components/Section.module.css | 0 .../web-react/app}/components/Section.tsx | 0 .../app}/components/ShareUrlButton.tsx | 0 .../app}/components/SideNav.module.css | 0 .../web-react/app}/components/SideNav.tsx | 0 .../components/SortableTableHeader.module.css | 0 .../app}/components/SortableTableHeader.tsx | 0 .../app}/components/StageBannerBox.module.css | 0 .../app}/components/StageBannerBox.tsx | 0 .../app}/components/StageSelect.module.css | 0 .../web-react/app}/components/StageSelect.tsx | 0 .../components/StreamListItems.module.css | 0 .../app}/components/StreamListItems.tsx | 0 .../app}/components/SubNav.module.css | 0 .../web-react/app}/components/SubNav.tsx | 0 .../app}/components/SubmitButton.tsx | 0 .../app}/components/Table.module.css | 0 .../web-react/app}/components/Table.tsx | 0 .../app}/components/TierPill.module.css | 0 .../web-react/app}/components/TierPill.tsx | 0 .../app}/components/TimePopover.module.css | 0 .../web-react/app}/components/TimePopover.tsx | 0 .../app}/components/UserLink.module.css | 0 .../web-react/app}/components/UserLink.tsx | 0 .../app}/components/WeaponSelect.module.css | 0 .../app}/components/WeaponSelect.tsx | 0 .../app}/components/YouTubeEmbed.module.css | 0 .../app}/components/YouTubeEmbed.tsx | 0 .../app}/components/elements/BottomTexts.tsx | 0 .../components/elements/Button.module.css | 0 .../app}/components/elements/Button.tsx | 0 .../components/elements/Calendar.module.css | 0 .../app}/components/elements/Calendar.tsx | 0 .../components/elements/ChipRadio.module.css | 0 .../app}/components/elements/ChipRadio.tsx | 0 .../components/elements/DatePicker.module.css | 0 .../app}/components/elements/DatePicker.tsx | 0 .../components/elements/Dialog.module.css | 0 .../app}/components/elements/Dialog.tsx | 0 .../app}/components/elements/FieldError.tsx | 0 .../app}/components/elements/FieldMessage.tsx | 0 .../app}/components/elements/Label.module.css | 0 .../app}/components/elements/Label.tsx | 0 .../app}/components/elements/Menu.module.css | 0 .../app}/components/elements/Menu.tsx | 0 .../elements/OrganizationSearch.tsx | 0 .../components/elements/Popover.module.css | 0 .../app}/components/elements/Popover.tsx | 0 .../elements/SearchSelect.module.css | 0 .../app}/components/elements/SearchSelect.tsx | 0 .../elements/Select.browser.test.tsx | 0 .../components/elements/Select.module.css | 0 .../app}/components/elements/Select.tsx | 0 .../components/elements/Switch.module.css | 0 .../app}/components/elements/Switch.tsx | 0 .../app}/components/elements/Tabs.module.css | 0 .../app}/components/elements/Tabs.tsx | 0 .../components/elements/TeamSearch.module.css | 0 .../app}/components/elements/TeamSearch.tsx | 0 .../elements/Toast.browser.test.tsx | 0 .../app}/components/elements/Toast.module.css | 0 .../app}/components/elements/Toast.tsx | 0 .../components/elements/TournamentSearch.tsx | 0 .../app}/components/elements/UserSearch.tsx | 0 .../components/elements/useEntitySearch.ts | 0 .../filter-bar/FilterBar.browser.test.tsx | 0 .../filter-bar/FilterBar.module.css | 0 .../app}/components/filter-bar/FilterBar.tsx | 0 .../web-react/app}/components/fuse/Fuse.tsx | 0 .../app}/components/icons/ArrowRight.tsx | 0 .../app}/components/icons/BSKYLike.tsx | 0 .../app}/components/icons/BSKYReply.tsx | 0 .../app}/components/icons/BSKYRepost.tsx | 0 .../app}/components/icons/Battlefy.tsx | 0 .../web-react/app}/components/icons/Bsky.tsx | 0 .../app}/components/icons/Discord.tsx | 0 .../app}/components/icons/External.tsx | 0 .../app}/components/icons/GitHub.tsx | 0 .../app}/components/icons/MainSlot.tsx | 0 .../app}/components/icons/Patreon.tsx | 0 .../app}/components/icons/SideSlot.tsx | 0 .../app}/components/icons/Twitch.tsx | 0 .../app}/components/icons/YouTube.tsx | 0 .../app}/components/layout/AnythingAdder.tsx | 0 .../components/layout/AuthErrorDialog.tsx | 0 .../components/layout/ChatSidebar.module.css | 0 .../app}/components/layout/ChatSidebar.tsx | 0 .../app}/components/layout/Footer.module.css | 0 .../app}/components/layout/Footer.tsx | 0 .../components/layout/GlobalSearch.module.css | 0 .../app}/components/layout/GlobalSearch.tsx | 0 .../layout/LogInButtonContainer.tsx | 0 .../layout/NotificationPopover.module.css | 0 .../components/layout/NotificationPopover.tsx | 0 .../components/layout/TopNavMenus.module.css | 0 .../app}/components/layout/TopNavMenus.tsx | 0 .../layout/TopRightButtons.module.css | 0 .../components/layout/TopRightButtons.tsx | 0 .../components/layout/UserItem.module.css | 0 .../app}/components/layout/WeaponSearch.tsx | 0 .../layout/global-search-persisted.test.ts | 0 .../layout/global-search-persisted.ts | 0 .../global-search-search-params.test.ts | 0 .../layout/global-search-search-params.ts | 0 .../app}/components/layout/index.module.css | 0 .../app}/components/layout/index.tsx | 0 .../components/layout/layout-search-params.ts | 0 .../app}/components/layout/nav-items.ts | 0 .../MatchActionPickBanTab.module.css | 0 .../match-page/MatchActionPickBanTab.tsx | 0 .../match-page/MatchActionTab.module.css | 0 .../components/match-page/MatchActionTab.tsx | 0 .../match-page/MatchBanner.module.css | 0 .../components/match-page/MatchBanner.tsx | 0 .../MatchBannerBottomRow.module.css | 0 .../match-page/MatchBannerBottomRow.tsx | 0 .../match-page/MatchBannerScheduledTime.tsx | 0 .../match-page/MatchBannerStartedAt.tsx | 0 .../match-page/MatchBannerTimer.tsx | 0 .../match-page/MatchBannerTopRow.module.css | 0 .../match-page/MatchBannerTopRow.tsx | 0 .../match-page/MatchPage.module.css | 0 .../app}/components/match-page/MatchPage.tsx | 0 .../match-page/MatchPageHeader.module.css | 0 .../components/match-page/MatchPageHeader.tsx | 0 .../components/match-page/MatchResultTab.tsx | 0 .../match-page/MatchRosterTab.module.css | 0 .../components/match-page/MatchRosterTab.tsx | 0 .../match-page/MatchTabs.module.css | 0 .../app}/components/match-page/MatchTabs.tsx | 0 .../match-page/MatchTimeline.module.css | 0 .../components/match-page/MatchTimeline.tsx | 0 .../match-page/SecondaryAction.module.css | 0 .../components/match-page/SecondaryAction.tsx | 0 .../match-page/WeaponPool.module.css | 0 .../app}/components/match-page/WeaponPool.tsx | 0 .../match-page/WeaponReporter.module.css | 0 .../components/match-page/WeaponReporter.tsx | 0 .../match-page/ingested-scoreboard.test.ts | 0 .../match-page/ingested-scoreboard.ts | 0 .../match-page/match-page-schemas.ts | 0 .../match-page-search-params.test.ts | 0 .../match-page/match-page-search-params.ts | 0 .../match-page/useMatchWeaponReport.ts | 0 .../app}/components/match-page/utils.test.ts | 0 .../app}/components/match-page/utils.ts | 0 .../objective-timeline-utils.test.ts | 0 .../components/objective-timeline-utils.ts | 0 .../web-react/app}/config-helpers.server.ts | 0 {app => apps/web-react/app}/config.server.ts | 0 {app => apps/web-react/app}/config.ts | 0 .../app}/db/empty-values-noop-plugin.ts | 0 .../web-react/app}/db/json-columns.test.ts | 0 .../web-react/app}/db/json-columns.ts | 0 .../web-react/app}/db/json-selections.test.ts | 0 .../web-react/app}/db/json-selections.ts | 0 .../web-react/app}/db/node-sqlite-dialect.ts | 0 {app => apps/web-react/app}/db/reset.ts | 0 .../web-react/app}/db/seed/constants.ts | 0 .../app}/db/seed/core/SplatoonFaker.ts | 0 .../web-react/app}/db/seed/core/actAs.ts | 0 .../web-react/app}/db/seed/core/backdate.ts | 0 .../app}/db/seed/core/defineFactory.ts | 0 .../web-react/app}/db/seed/core/faker.ts | 0 .../web-react/app}/db/seed/core/pinUserId.ts | 0 .../web-react/app}/db/seed/core/reseason.ts | 0 .../app}/db/seed/core/showcaseNames.ts | 0 .../web-react/app}/db/seed/data/badges.json | 0 .../app}/db/seed/data/placements.json | 0 .../web-react/app}/db/seed/data/trophies.json | 0 .../web-react/app}/db/seed/dev/badges.ts | 0 .../web-react/app}/db/seed/dev/builds.ts | 0 .../web-react/app}/db/seed/dev/calendar.ts | 0 .../web-react/app}/db/seed/dev/highlights.ts | 0 .../web-react/app}/db/seed/dev/misc.ts | 0 .../app}/db/seed/dev/organizations.ts | 0 .../web-react/app}/db/seed/dev/plus.ts | 0 .../web-react/app}/db/seed/dev/scrims-lfg.ts | 0 .../web-react/app}/db/seed/dev/sendouq.ts | 0 .../web-react/app}/db/seed/dev/teams.ts | 0 .../web-react/app}/db/seed/dev/tournaments.ts | 0 .../web-react/app}/db/seed/dev/trophies.ts | 0 .../web-react/app}/db/seed/dev/users.ts | 0 .../web-react/app}/db/seed/dev/vods.ts | 0 .../app}/db/seed/factories/ApiTokenFactory.ts | 0 .../app}/db/seed/factories/ArtFactory.ts | 0 .../db/seed/factories/AssociationFactory.ts | 0 .../app}/db/seed/factories/BadgeFactory.ts | 0 .../app}/db/seed/factories/BuildFactory.ts | 0 .../db/seed/factories/CalendarEventFactory.ts | 0 .../factories/CalendarEventResultFactory.ts | 0 .../db/seed/factories/FriendRequestFactory.ts | 0 .../db/seed/factories/FriendshipFactory.ts | 0 .../GroupMatchContinueVoteFactory.ts | 0 .../app}/db/seed/factories/ImageFactory.ts | 0 .../app}/db/seed/factories/LFGPostFactory.ts | 0 .../db/seed/factories/LiveStreamFactory.ts | 0 .../db/seed/factories/LogInLinkFactory.ts | 0 .../db/seed/factories/NotificationFactory.ts | 0 .../seed/factories/PlusSuggestionFactory.ts | 0 .../app}/db/seed/factories/PlusVoteFactory.ts | 0 .../seed/factories/ResultHighlightFactory.ts | 0 .../app}/db/seed/factories/SQGroupFactory.ts | 0 .../app}/db/seed/factories/SQMatchFactory.ts | 0 .../db/seed/factories/SQReadyCheckFactory.ts | 0 .../seed/factories/SQReportedWeaponFactory.ts | 0 .../factories/SavedCalendarEventFactory.ts | 0 .../db/seed/factories/ScrimPostFactory.ts | 0 .../app}/db/seed/factories/SkillFactory.ts | 0 .../seed/factories/SplatoonRotationFactory.ts | 0 .../app}/db/seed/factories/TeamFactory.ts | 0 .../db/seed/factories/TournamentFactory.ts | 0 .../factories/TournamentLFGTeamFactory.ts | 0 .../TournamentOrganizationFactory.ts | 0 .../TournamentReportedWeaponFactory.ts | 0 .../factories/TournamentStreamerFactory.ts | 0 .../seed/factories/TournamentTeamFactory.ts | 0 .../app}/db/seed/factories/TrophyFactory.ts | 0 .../app}/db/seed/factories/UserFactory.ts | 0 .../db/seed/factories/UserReportFactory.ts | 0 .../app}/db/seed/factories/VodFactory.ts | 0 .../seed/factories/XRankPlacementFactory.ts | 0 .../app}/db/seed/img/alliance-rogue.png | Bin .../web-react/app}/db/seed/img/default.png | Bin .../app}/db/seed/img/in-the-zone.png | Bin .../web-react/app}/db/seed/img/luti.png | Bin .../app}/db/seed/img/paddling-pool.png | Bin .../web-react/app}/db/seed/img/picnic.png | Bin .../app}/db/seed/img/swim-or-sink.png | Bin .../web-react/app}/db/seed/img/the-depths.png | Bin {app => apps/web-react/app}/db/seed/index.ts | 0 {app => apps/web-react/app}/db/sql.ts | 0 {app => apps/web-react/app}/db/tables-json.ts | 0 {app => apps/web-react/app}/db/tables.ts | 0 {app => apps/web-react/app}/db/wipe.ts | 0 .../web-react/app}/db/write-tracker.ts | 0 {app => apps/web-react/app}/entry.client.tsx | 0 {app => apps/web-react/app}/entry.server.tsx | 0 .../admin/AdminRepository.server.test.ts | 0 .../features/admin/AdminRepository.server.ts | 0 .../admin/ExternalStreamRepository.server.ts | 0 .../features/admin/actions/admin.server.ts | 0 .../admin/actions/admin.streams.server.ts | 0 .../app}/features/admin/admin-constants.ts | 0 .../app}/features/admin/admin-schemas.ts | 0 .../admin/admin-search-params.test.ts | 0 .../features/admin/admin-search-params.ts | 0 .../app}/features/admin/core/dev-controls.ts | 0 .../admin/core/discord-webhook.server.ts | 0 .../features/admin/core/plus-tier.server.ts | 0 .../features/admin/loaders/admin.server.ts | 0 .../admin/loaders/admin.streams.server.ts | 0 .../admin/routes/admin.streams.module.css | 0 .../features/admin/routes/admin.streams.tsx | 0 .../app}/features/admin/routes/admin.test.ts | 0 .../app}/features/admin/routes/admin.tsx | 0 .../features/admin/routes/generate-images.tsx | 0 .../api-private/core/refresh-caches.server.ts | 0 .../features/api-private/routes/end-season.ts | 0 .../features/api-private/routes/patrons.ts | 0 .../api-private/routes/refresh-caches.ts | 0 .../api-private/routes/run-routine.ts | 0 .../app}/features/api-private/routes/seed.ts | 0 .../app}/features/api-private/routes/users.ts | 0 .../api-public/api-action-wrapper.server.ts | 0 .../api-public/api-auth-middleware.server.ts | 0 .../api-public/api-cors-middleware.server.ts | 0 .../api-public/api-public-utils.server.ts | 0 .../features/api-public/routes/api.layout.tsx | 0 .../routes/calendar.$year.$week.test.ts | 0 .../api-public/routes/calendar.$year.$week.ts | 0 .../features/api-public/routes/org.$id.ts | 0 .../routes/sendouq.active-match.$userId.ts | 0 .../routes/sendouq.match.$matchId.ts | 0 .../features/api-public/routes/team.$id.ts | 0 .../api-public/routes/tournament-match.$id.ts | 0 ...tournament.$id.brackets.$bidx.standings.ts | 0 .../routes/tournament.$id.brackets.$bidx.ts | 0 .../routes/tournament.$id.casted.ts | 0 .../routes/tournament.$id.players.ts | 0 .../api-public/routes/tournament.$id.seeds.ts | 0 .../tournament.$id.starting-brackets.ts | 0 .../routes/tournament.$id.streams.ts | 0 ...tournament.$id.teams.$teamId.add-member.ts | 0 ...rnament.$id.teams.$teamId.remove-member.ts | 0 ...ent.$id.teams.$teamId.update-member-ign.ts | 0 .../routes/tournament.$id.teams.test.ts | 0 .../api-public/routes/tournament.$id.teams.ts | 0 .../tournament.$id.teams.upsert.test.ts | 0 .../routes/tournament.$id.teams.upsert.ts | 0 .../api-public/routes/tournament.$id.ts | 0 .../api-public/routes/user.$identifier.ids.ts | 0 .../api-public/routes/user.$identifier.ts | 0 .../routes/user.$userId.active-match.ts | 0 .../app}/features/api-public/schema.ts | 0 .../features/api/ApiRepository.server.test.ts | 0 .../app}/features/api/ApiRepository.server.ts | 0 .../app}/features/api/actions/api.server.ts | 0 .../app}/features/api/api-schemas.ts | 0 .../web-react/app}/features/api/api-types.ts | 0 .../app}/features/api/core/perms.test.ts | 0 .../web-react/app}/features/api/core/perms.ts | 0 .../app}/features/api/loaders/api.server.ts | 0 .../app}/features/api/routes/api.tsx | 0 .../features/art/ArtRepository.server.test.ts | 0 .../app}/features/art/ArtRepository.server.ts | 0 .../features/art/actions/art.new.server.ts | 0 .../app}/features/art/art-constants.ts | 0 .../app}/features/art/art-image.server.ts | 0 .../web-react/app}/features/art/art-image.ts | 0 .../app}/features/art/art-schemas.server.ts | 0 .../app}/features/art/art-schemas.ts | 0 .../features/art/art-search-params.test.ts | 0 .../app}/features/art/art-search-params.ts | 0 .../web-react/app}/features/art/art-types.ts | 0 .../app}/features/art/art-urls.test.ts | 0 .../web-react/app}/features/art/art-urls.ts | 0 .../web-react/app}/features/art/art-utils.ts | 0 .../art/components/ArtGrid.module.css | 0 .../app}/features/art/components/ArtGrid.tsx | 0 .../components/ArtImageFormField.module.css | 0 .../art/components/ArtImageFormField.tsx | 0 .../components/ArtTagsFormField.module.css | 0 .../art/components/ArtTagsFormField.tsx | 0 .../features/art/components/TagSelect.tsx | 0 .../features/art/loaders/art.new.server.ts | 0 .../app}/features/art/loaders/art.server.ts | 0 .../app}/features/art/routes/art.new.tsx | 0 .../app}/features/art/routes/art.tsx | 0 .../features/articles/articles-constants.ts | 0 .../articles/articles-schemas.server.ts | 0 .../features/articles/core/bySlug.server.ts | 0 .../features/articles/core/list.server.ts | 0 .../articles/loaders/a.$slug.server.ts | 0 .../features/articles/loaders/a.server.ts | 0 .../app}/features/articles/routes/a.$slug.tsx | 0 .../features/articles/routes/a.module.css | 0 .../app}/features/articles/routes/a.tsx | 0 .../AssociationRepository.server.ts | 0 .../actions/associations.new.server.ts | 0 .../actions/associations.server.ts | 0 .../associations/associations-constants.ts | 0 .../associations/associations-schemas.ts | 0 .../associations-search-params.test.ts | 0 .../associations-search-params.ts | 0 .../associations/associations-types.ts | 0 .../associations/associations-urls.ts | 0 .../associations/core/Association.test.ts | 0 .../features/associations/core/Association.ts | 0 .../loaders/associations.server.ts | 0 .../associations/routes/associations.new.tsx | 0 .../associations/routes/associations.tsx | 0 .../auth/LogInLinkRepository.server.test.ts | 0 .../auth/LogInLinkRepository.server.ts | 0 .../auth/core/DiscordStrategy.server.ts | 0 .../auth/core/authenticator.server.ts | 0 .../app}/features/auth/core/errors.ts | 0 .../app}/features/auth/core/routes.server.ts | 0 .../app}/features/auth/core/session.server.ts | 0 .../features/auth/core/user-context.server.ts | 0 .../auth/core/user-middleware.server.ts | 0 .../app}/features/auth/core/user.server.ts | 0 .../web-react/app}/features/auth/core/user.ts | 0 .../features/auth/routes/auth.callback.ts | 0 .../features/auth/routes/auth.create-link.ts | 0 .../auth/routes/auth.impersonate.stop.ts | 0 .../features/auth/routes/auth.impersonate.ts | 0 .../app}/features/auth/routes/auth.login.ts | 0 .../app}/features/auth/routes/auth.logout.ts | 0 .../app}/features/auth/routes/auth.ts | 0 .../badges/BadgeRepository.server.test.ts | 0 .../features/badges/BadgeRepository.server.ts | 0 .../badges/actions/badges.$id.edit.server.ts | 0 .../app}/features/badges/badges-constants.ts | 0 .../app}/features/badges/badges-schemas.ts | 0 .../app}/features/badges/badges-utils.ts | 0 .../app}/features/badges/badges.module.css | 0 .../badges/components/BadgeDisplay.module.css | 0 .../badges/components/BadgeDisplay.tsx | 0 .../badges/components/BadgesSelector.tsx | 0 .../badges/loaders/badges.$id.server.ts | 0 .../features/badges/loaders/badges.server.ts | 0 .../badges/routes/badges.$id.edit.tsx | 0 .../features/badges/routes/badges.$id.tsx | 0 .../app}/features/badges/routes/badges.tsx | 0 .../app}/features/ban/core/banned.server.ts | 0 .../app}/features/ban/core/banned.test.ts | 0 .../features/ban/loaders/suspended.server.ts | 0 .../app}/features/ban/routes/suspended.tsx | 0 .../bracket-test/bracket-test.module.css | 0 .../routes/bracket-test.index.tsx | 0 .../bracket-test/routes/bracket-test.tsx | 0 .../build-analyzer/analyzer-constants.ts | 0 .../features/build-analyzer/analyzer-hooks.ts | 0 .../analyzer-search-params.test.ts | 0 .../build-analyzer/analyzer-search-params.ts | 0 .../features/build-analyzer/analyzer-types.ts | 0 .../features/build-analyzer/analyzer-urls.ts | 0 .../components/PerInkTankGrid.tsx | 0 .../core/ability-points.test.ts | 0 .../build-analyzer/core/ability-points.ts | 0 .../core/abilityChunksCalc.test.ts | 0 .../build-analyzer/core/abilityChunksCalc.ts | 0 .../build-analyzer/core/serializer.ts | 0 .../core/specialEffects.test.ts | 0 .../build-analyzer/core/specialEffects.ts | 0 .../build-analyzer/core/stats.test.ts | 0 .../features/build-analyzer/core/stats.ts | 0 .../features/build-analyzer/core/utils.ts | 0 .../build-analyzer/data/ability-values.ts | 0 .../build-analyzer/data/weapon-params.ts | 0 .../build-analyzer/routes/analyzer.module.css | 0 .../build-analyzer/routes/analyzer.tsx | 0 .../build-stats/build-stats-utils.test.ts | 0 .../features/build-stats/build-stats-utils.ts | 0 .../loaders/builds.$slug.popular.server.ts | 0 .../loaders/builds.$slug.stats.server.ts | 0 .../routes/builds.$slug.popular.tsx | 0 .../routes/builds.$slug.stats.module.css | 0 .../build-stats/routes/builds.$slug.stats.tsx | 0 .../builds/BuildRepository.server.test.ts | 0 .../features/builds/BuildRepository.server.ts | 0 .../app}/features/builds/builds-constants.ts | 0 .../app}/features/builds/builds-schemas.ts | 0 .../builds/builds-search-params.test.ts | 0 .../features/builds/builds-search-params.ts | 0 .../app}/features/builds/builds-types.ts | 0 .../core/ability-sorting.server.test.ts | 0 .../builds/core/ability-sorting.server.ts | 0 .../features/builds/core/filter.server.ts | 0 .../app}/features/builds/core/filter.test.ts | 0 .../builds/loaders/builds.$slug.server.ts | 0 .../builds/routes/builds.$slug.module.css | 0 .../features/builds/routes/builds.$slug.tsx | 0 .../features/builds/routes/builds.module.css | 0 .../app}/features/builds/routes/builds.tsx | 0 .../calendar/CalendarRepository.server.ts | 0 .../calendar.$id.report-winners.server.ts | 0 .../calendar/actions/calendar.$id.server.ts | 0 .../calendar/actions/calendar.new.server.ts | 0 .../features/calendar/actions/calendar.tsx | 0 .../features/calendar/calendar-constants.ts | 0 .../calendar/calendar-event.module.css | 0 .../app}/features/calendar/calendar-hooks.ts | 0 .../calendar/calendar-new-schemas.server.ts | 0 .../features/calendar/calendar-new-schemas.ts | 0 .../features/calendar/calendar-new.module.css | 0 .../calendar-progression-form.test.ts | 0 .../calendar/calendar-progression-form.ts | 0 .../calendar-report-winners-schemas.ts | 0 .../features/calendar/calendar-schemas.ts | 0 .../calendar/calendar-search-params.test.ts | 0 .../calendar/calendar-search-params.ts | 0 .../app}/features/calendar/calendar-types.ts | 0 .../app}/features/calendar/calendar-urls.ts | 0 .../features/calendar/calendar-utils.test.ts | 0 .../app}/features/calendar/calendar-utils.ts | 0 .../BracketProgressionFormFields.module.css | 0 .../BracketProgressionFormFields.tsx | 0 .../calendar/components/FiltersBar.tsx | 0 .../calendar/components/Tags.module.css | 0 .../features/calendar/components/Tags.tsx | 0 .../components/TournamentCard.module.css | 0 .../calendar/components/TournamentCard.tsx | 0 .../calendar/core/CalendarEvent.test.ts | 0 .../features/calendar/core/CalendarEvent.ts | 0 .../features/calendar/core/ICal.server.ts | 0 .../calendar.$id.report-winners.server.ts | 0 .../calendar/loaders/calendar.$id.server.ts | 0 .../calendar/loaders/calendar.new.server.ts | 0 .../calendar/loaders/calendar.server.test.ts | 0 .../calendar/loaders/calendar.server.ts | 0 .../calendar/loaders/calendar[.]ics.server.ts | 0 .../calendar/loaders/events.server.ts | 0 .../routes/calendar.$id.report-winners.tsx | 0 .../calendar/routes/calendar.$id.test.ts | 0 .../features/calendar/routes/calendar.$id.tsx | 0 .../features/calendar/routes/calendar.ics.tsx | 0 .../calendar/routes/calendar.module.css | 0 .../features/calendar/routes/calendar.new.tsx | 0 .../features/calendar/routes/calendar.tsx | 0 .../calendar/routes/events.module.css | 0 .../app}/features/calendar/routes/events.tsx | 0 .../app}/features/chat/ChatProvider.tsx | 0 .../features/chat/ChatSystemMessage.server.ts | 0 .../app}/features/chat/chat-constants.test.ts | 0 .../app}/features/chat/chat-constants.ts | 0 .../features/chat/chat-hooks.browser.test.tsx | 0 .../app}/features/chat/chat-hooks.ts | 0 .../app}/features/chat/chat-last-read.test.ts | 0 .../app}/features/chat/chat-last-read.ts | 0 .../app}/features/chat/chat-provider-types.ts | 0 .../features/chat/chat-search-params.test.ts | 0 .../app}/features/chat/chat-search-params.ts | 0 .../app}/features/chat/chat-types.ts | 0 .../app}/features/chat/chat-utils.test.ts | 0 .../app}/features/chat/chat-utils.ts | 0 .../chat/components/Chat.browser.test.tsx | 0 .../features/chat/components/Chat.module.css | 0 .../app}/features/chat/components/Chat.tsx | 0 .../revalidate-broadcast-throttle.test.ts | 0 .../chat/revalidate-broadcast-throttle.ts | 0 .../features/chat/revalidation-scope.test.ts | 0 .../app}/features/chat/revalidation-scope.ts | 0 .../features/chat/routes/api.chat-users.ts | 0 .../app}/features/chat/useChatContext.ts | 0 .../comp-analyzer/comp-analyzer-constants.ts | 0 .../comp-analyzer/comp-analyzer-hooks.ts | 0 .../comp-analyzer-search-params.test.ts | 0 .../comp-analyzer-search-params.ts | 0 .../comp-analyzer/comp-analyzer-types.ts | 0 .../components/DamageComboBar.module.css | 0 .../components/DamageComboBar.tsx | 0 .../components/RangeVisualization.module.css | 0 .../components/RangeVisualization.tsx | 0 .../SelectedWeapons.browser.test.tsx | 0 .../components/SelectedWeapons.module.css | 0 .../components/SelectedWeapons.tsx | 0 .../SpecialRangeVisualization.module.css | 0 .../components/SpecialRangeVisualization.tsx | 0 .../components/WeaponCategories.module.css | 0 .../components/WeaponCategories.tsx | 0 .../components/WeaponGrid.browser.test.tsx | 0 .../components/WeaponGrid.module.css | 0 .../comp-analyzer/components/WeaponGrid.tsx | 0 .../core/damage-combinations.test.ts | 0 .../comp-analyzer/core/damage-combinations.ts | 0 .../core/special-weapon-range.test.ts | 0 .../core/special-weapon-range.ts | 0 .../comp-analyzer/core/weapon-range.test.ts | 0 .../comp-analyzer/core/weapon-range.ts | 0 .../routes/comp-analyzer.all-ranges.tsx | 0 .../comp-analyzer/routes/comp-analyzer.tsx | 0 .../components-showcase.module.css | 0 .../example-trophy-model.ts | 0 .../form-examples-schema.ts | 0 .../components-showcase/routes/components.tsx | 0 .../features/core/streams/streams.server.ts | 0 .../friends/FriendRepository.server.test.ts | 0 .../friends/FriendRepository.server.ts | 0 .../friends/actions/friends.server.ts | 0 .../friends/components/FriendMenu.tsx | 0 .../features/friends/friends-constants.ts | 0 .../friends/friends-schemas.server.ts | 0 .../app}/features/friends/friends-schemas.ts | 0 .../friends/friends-search-params.test.ts | 0 .../features/friends/friends-search-params.ts | 0 .../features/friends/friends-utils.server.ts | 0 .../friends/loaders/friends.server.ts | 0 .../friends/routes/friends.module.css | 0 .../app}/features/friends/routes/friends.tsx | 0 .../components/PWAInstallBanner.module.css | 0 .../components/PWAInstallBanner.tsx | 0 .../components/SplatoonRotations.module.css | 0 .../components/SplatoonRotations.tsx | 0 .../front-page/core/Changelog.server.ts | 0 .../core/ShowcaseTournaments.server.ts | 0 .../front-page/loaders/index.server.ts | 0 .../app}/features/front-page/routes/index.tsx | 0 .../front-page/routes/patrons-list.ts | 0 .../components/BuildGraphic.module.css | 0 .../img-export/components/BuildGraphic.tsx | 0 .../img-export/components/Graphic.module.css | 0 .../img-export/components/Graphic.tsx | 0 .../components/ImageExportDialog.module.css | 0 .../components/ImageExportDialog.tsx | 0 .../SeasonSummaryGraphic.module.css | 0 .../components/SeasonSummaryGraphic.tsx | 0 .../TournamentResultsGraphic.module.css | 0 .../components/TournamentResultsGraphic.tsx | 0 .../TournamentRunGraphic.module.css | 0 .../components/TournamentRunGraphic.tsx | 0 .../features/img-export/core/RunComps.test.ts | 0 .../app}/features/img-export/core/RunComps.ts | 0 .../img-export/core/SeasonSummary.test.ts | 0 .../features/img-export/core/SeasonSummary.ts | 0 .../img-upload/ImageRepository.server.test.ts | 0 .../img-upload/ImageRepository.server.ts | 0 .../img-upload/actions/upload.admin.server.ts | 0 .../features/img-upload/image-bytes.server.ts | 0 .../features/img-upload/image-field.server.ts | 0 .../img-upload/loaders/upload.admin.server.ts | 0 .../img-upload/routes/upload.admin.tsx | 0 .../app}/features/img-upload/s3.server.ts | 0 .../features/img-upload/upload-constants.ts | 0 .../features/img-upload/upload-schemas.ts | 0 .../features/info/routes/contributions.tsx | 0 .../app}/features/info/routes/faq.module.css | 0 .../app}/features/info/routes/faq.tsx | 0 .../features/info/routes/support.module.css | 0 .../app}/features/info/routes/support.tsx | 0 .../features/info/routes/welcome.module.css | 0 .../app}/features/info/routes/welcome.tsx | 0 .../features/layout/LayoutDataProvider.tsx | 0 .../features/layout/core/layout.server.ts | 0 .../layout/core/sidenav-session.server.ts | 0 .../app}/features/layout/routes/api.layout.ts | 0 .../app}/features/layout/routes/sidenav.ts | 0 .../LeaderboardRepository.server.test.ts | 0 .../LeaderboardRepository.server.ts | 0 .../actions/leaderboards.server.ts | 0 .../components/TopTenPlayer.module.css | 0 .../leaderboards/components/TopTenPlayer.tsx | 0 .../core/leaderboards.server.test.ts | 0 .../leaderboards/core/leaderboards.server.ts | 0 .../leaderboards/leaderboards-constants.ts | 0 .../leaderboards/leaderboards-schemas.ts | 0 .../leaderboards-search-params.test.ts | 0 .../leaderboards-search-params.ts | 0 .../leaderboards/leaderboards-urls.test.ts | 0 .../leaderboards/leaderboards-urls.ts | 0 .../leaderboards/leaderboards-utils.ts | 0 .../loaders/leaderboards.server.ts | 0 .../routes/leaderboards.browser.test.tsx | 0 .../routes/leaderboards.module.css | 0 .../leaderboards/routes/leaderboards.tsx | 0 .../app}/features/leaderboards/top-ten.json | 0 .../features/lfg/LFGRepository.server.test.ts | 0 .../app}/features/lfg/LFGRepository.server.ts | 0 .../features/lfg/actions/lfg.new.server.ts | 0 .../app}/features/lfg/actions/lfg.server.ts | 0 .../lfg/components/LFGPost.module.css | 0 .../app}/features/lfg/components/LFGPost.tsx | 0 .../app}/features/lfg/core/filtering.test.ts | 0 .../app}/features/lfg/core/filtering.ts | 0 .../app}/features/lfg/core/timezone.test.ts | 0 .../app}/features/lfg/core/timezone.ts | 0 .../app}/features/lfg/lfg-constants.ts | 0 .../app}/features/lfg/lfg-schemas.ts | 0 .../features/lfg/lfg-search-params.test.ts | 0 .../app}/features/lfg/lfg-search-params.ts | 0 .../web-react/app}/features/lfg/lfg-types.ts | 0 .../web-react/app}/features/lfg/lfg-urls.ts | 0 .../features/lfg/loaders/lfg.new.server.ts | 0 .../features/lfg/loaders/lfg.server.test.ts | 0 .../app}/features/lfg/loaders/lfg.server.ts | 0 .../app}/features/lfg/routes/lfg.module.css | 0 .../app}/features/lfg/routes/lfg.new.tsx | 0 .../app}/features/lfg/routes/lfg.tsx | 0 .../web-react/app}/features/links/links.json | 0 .../features/links/routes/links.module.css | 0 .../app}/features/links/routes/links.tsx | 0 .../LiveStreamRepository.server.ts | 0 .../map-list-generator/core/MapList.test.ts | 0 .../map-list-generator/core/MapList.ts | 0 .../map-pool-serializer/serializer.test.ts | 0 .../core/map-pool-serializer/serializer.ts | 0 .../core/map-pool-serializer/types.ts | 0 .../map-list-generator/core/map-pool.ts | 0 .../map-list-generator-search-params.test.ts | 0 .../map-list-generator-search-params.ts | 0 .../map-list-generator-urls.ts | 0 .../map-list-generator/routes/maps.module.css | 0 .../map-list-generator/routes/maps.tsx | 0 .../map-planner/components/Planner.module.css | 0 .../map-planner/components/Planner.tsx | 0 .../features/map-planner/plans-global.css | 0 .../app}/features/map-planner/plans-types.ts | 0 .../features/map-planner/routes/plans.tsx | 0 .../routes/match-page-test.tsx | 0 .../MatchProfileRepository.server.test.ts | 0 .../MatchProfileRepository.server.ts | 0 .../features/match-profile/banned-maps.ts | 0 .../match-profile/match-profile-constants.ts | 0 .../match-profile/routes/q.settings.tsx | 0 .../features/mmr/SkillRepository.server.ts | 0 .../features/mmr/components/SeasonSelect.tsx | 0 .../app}/features/mmr/core/Seasons.test.ts | 0 .../app}/features/mmr/core/Seasons.ts | 0 .../app}/features/mmr/mmr-constants.ts | 0 .../app}/features/mmr/mmr-utils.server.ts | 0 .../web-react/app}/features/mmr/mmr-utils.ts | 0 .../app}/features/mmr/tiered.server.ts | 0 .../NotificationRepository.server.test.ts | 0 .../NotificationRepository.server.ts | 0 .../notifications/NotificationsProvider.tsx | 0 .../components/NotificationList.module.css | 0 .../components/NotificationList.tsx | 0 .../notifications/core/notify.server.test.ts | 0 .../notifications/core/notify.server.ts | 0 .../notifications/core/pushSubscription.ts | 0 .../notifications/core/resolve.server.ts | 0 .../notifications/core/webPush.server.ts | 0 .../loaders/notifications.server.ts | 0 .../notifications/notifications-contants.ts | 0 .../notifications-hooks.browser.test.tsx | 0 .../notifications/notifications-hooks.ts | 0 .../notifications/notifications-schemas.ts | 0 .../notifications/notifications-types.ts | 0 .../notifications/notifications-utils.ts | 0 .../notifications/routes/api.notifications.ts | 0 .../routes/notifications.module.css | 0 .../routes/notifications.seen.ts | 0 .../routes/notifications.subscribe.ts | 0 .../notifications/routes/notifications.tsx | 0 .../calculator-constants.ts | 0 .../calculator-hooks.ts | 0 .../calculator-search-params.test.ts | 0 .../calculator-search-params.ts | 0 .../calculator-types.ts | 0 .../calculator-urls.ts | 0 .../core/objectDamage.test.ts | 0 .../core/objectDamage.ts | 0 .../core/objectHitPoints.ts | 0 .../data/object-dmg.json | 0 .../object-damage-calculator.module.css | 0 .../routes/object-damage-calculator.tsx | 0 .../ParamComparisonDialog.module.css | 0 .../components/ParamComparisonDialog.tsx | 0 .../params/components/WeaponKits.module.css | 0 .../features/params/components/WeaponKits.tsx | 0 .../components/WeaponParamsTable.module.css | 0 .../params/components/WeaponParamsTable.tsx | 0 .../components/WeaponParamsView.module.css | 0 .../params/components/WeaponParamsView.tsx | 0 .../components/WeaponPatchHistory.module.css | 0 .../params/components/WeaponPatchHistory.tsx | 0 .../features/params/core/WeaponParams.test.ts | 0 .../app}/features/params/core/WeaponParams.ts | 0 .../features/params/core/param-directions.ts | 0 .../params/core/param-explanations.ts | 0 .../data/all-version-special-params.json | 0 .../params/data/all-version-sub-params.json | 0 .../data/all-version-weapon-params.json | 0 .../params/data/damage-rate-history.json | 0 .../params/loaders/params.$slug.server.ts | 0 .../params/params-search-params.test.ts | 0 .../features/params/params-search-params.ts | 0 .../features/params/routes/params.$slug.tsx | 0 .../params/weapon-params-constants.ts | 0 .../features/params/weapon-params-types.ts | 0 .../PlusSuggestionRepository.server.ts | 0 ...uggestions.comment.$tier.$userId.server.ts | 0 .../actions/plus.suggestions.new.server.ts | 0 .../actions/plus.suggestions.server.ts | 0 .../loaders/plus.suggestions.server.ts | 0 .../plus-suggestions-constants.ts | 0 .../plus-suggestions-schemas.server.ts | 0 .../plus-suggestions-schemas.ts | 0 .../plus-suggestions-search-params.test.ts | 0 .../plus-suggestions-search-params.ts | 0 .../plus-suggestions/plus-suggestions-urls.ts | 0 .../plus-suggestions-utils.ts | 0 .../features/plus-suggestions/plus.module.css | 0 .../plus-suggestions/routes/plus.index.ts | 0 .../routes/plus.suggestions.browser.test.tsx | 0 ...plus.suggestions.comment.$tier.$userId.tsx | 0 .../routes/plus.suggestions.new.tsx | 0 .../routes/plus.suggestions.tsx | 0 .../features/plus-suggestions/routes/plus.tsx | 0 .../PlusVotingRepository.server.ts | 0 .../plus-voting/actions/plus.voting.server.ts | 0 .../plus-voting/core/PlusVoting.test.ts | 0 .../features/plus-voting/core/PlusVoting.ts | 0 .../app}/features/plus-voting/core/index.ts | 0 .../app}/features/plus-voting/core/types.ts | 0 .../plus-voting/core/usePlusVoting.ts | 0 .../features/plus-voting/core/voting-time.ts | 0 .../loaders/plus.voting.results.server.ts | 0 .../plus-voting/loaders/plus.voting.server.ts | 0 .../plus-voting/plus-voting-constants.ts | 0 .../plus-voting-results.module.css | 0 .../plus-voting/plus-voting-schemas.ts | 0 .../features/plus-voting/routes/plus.list.ts | 0 .../routes/plus.voting.results.tsx | 0 .../plus-voting/routes/plus.voting.tsx | 0 .../ScannerIngestRepository.server.test.ts | 0 .../ScannerIngestRepository.server.ts | 0 .../actions/scanner-ingest.server.ts | 0 .../scanner-ingest/core/Matches.test.ts | 0 .../features/scanner-ingest/core/Matches.ts | 0 .../scanner-ingest/core/Scoreboards.test.ts | 0 .../scanner-ingest/core/Scoreboards.ts | 0 .../scanner-ingest/core/VodMatches.test.ts | 0 .../scanner-ingest/core/VodMatches.ts | 0 .../scanner-ingest/core/tests/fixtures.ts | 0 .../scanner-ingest/routes/scanner-ingest.ts | 0 .../scanner-ingest/scanner-ingest-schemas.ts | 0 .../scanner-ingest-vod-schemas.ts | 0 .../features/scanner-ingest/tests/harness.ts | 0 .../tests/ingest-scenarios.test.ts | 0 .../web-react/app}/features/scanner/README.md | 0 .../app}/features/scanner/capture/sampler.ts | 0 .../features/scanner/capture/ticker.worker.ts | 0 .../features/scanner/capture/vod-frames.ts | 0 .../scanner/components/AbilityGrid.module.css | 0 .../scanner/components/AbilityGrid.tsx | 0 .../scanner/components/DeathCard.module.css | 0 .../features/scanner/components/DeathCard.tsx | 0 .../scanner/components/EventCard.module.css | 0 .../features/scanner/components/EventCard.tsx | 0 .../scanner/components/EventTypeIcon.tsx | 0 .../components/EventsSummary.module.css | 0 .../scanner/components/EventsSummary.tsx | 0 .../scanner/components/FrameThumb.module.css | 0 .../scanner/components/FrameThumb.tsx | 0 .../scanner/components/LivePage.module.css | 0 .../features/scanner/components/LivePage.tsx | 0 .../scanner/components/MapStartCard.tsx | 0 .../scanner/components/MatchCard.module.css | 0 .../features/scanner/components/MatchCard.tsx | 0 .../components/MatchLobbyTabs.module.css | 0 .../scanner/components/MatchLobbyTabs.tsx | 0 .../scanner/components/MetaChips.module.css | 0 .../features/scanner/components/MetaChips.tsx | 0 .../scanner/components/MinimapCard.module.css | 0 .../scanner/components/MinimapCard.tsx | 0 .../scanner/components/ObjectiveCard.tsx | 0 .../scanner/components/PlayerStatusCard.tsx | 0 .../scanner/components/ScannerApp.module.css | 0 .../scanner/components/ScannerApp.tsx | 0 .../scanner/components/ScoreboardCard.tsx | 0 .../scanner/components/ScoreboardOwnCard.tsx | 0 .../components/ScreenshotPage.module.css | 0 .../scanner/components/ScreenshotPage.tsx | 0 .../scanner/components/StripWeaponsCard.tsx | 0 .../scanner/components/VodPage.module.css | 0 .../features/scanner/components/VodPage.tsx | 0 .../scanner/components/dedupe-events.ts | 0 .../features/scanner/components/events-csv.ts | 0 .../scanner/components/fixture-export.ts | 0 .../features/scanner/components/format.ts | 0 .../features/scanner/components/labels.ts | 0 .../scanner/components/player-status-view.ts | 0 .../scanner/components/sendou-ingest.ts | 0 .../scanner/components/sendou-upload.ts | 0 .../features/scanner/components/thumbnail.ts | 0 .../features/scanner/core/ability-harvest.ts | 0 .../app}/features/scanner/core/canonical.ts | 0 .../app}/features/scanner/core/cv.ts | 0 .../scanner/core/detectors/death/abilities.ts | 0 .../scanner/core/detectors/death/index.ts | 0 .../detectors/death/localized-messages.ts | 0 .../scanner/core/detectors/death/rois.ts | 0 .../core/detectors/death/weapon-names.ts | 0 .../scanner/core/detectors/map-start/index.ts | 0 .../scanner/core/detectors/map-start/rois.ts | 0 .../core/detectors/minimap/abilities.ts | 0 .../scanner/core/detectors/minimap/index.ts | 0 .../scanner/core/detectors/minimap/rois.ts | 0 .../scanner/core/detectors/minimap/stage.ts | 0 .../scanner/core/detectors/objective/index.ts | 0 .../core/detectors/objective/player-status.ts | 0 .../scanner/core/detectors/objective/rois.ts | 0 .../core/detectors/objective/strip-weapons.ts | 0 .../scanner/core/detectors/registry.ts | 0 .../scanner/core/detectors/scheduler.ts | 0 .../scoreboard-battle-log-replay/code.ts | 0 .../scoreboard-battle-log-replay/header.ts | 0 .../scoreboard-battle-log-replay/index.ts | 0 .../scoreboard-battle-log-replay/rois.ts | 0 .../detectors/scoreboard-battle-log/index.ts | 0 .../detectors/scoreboard-battle-log/rois.ts | 0 .../detectors/scoreboard-own/abilities.ts | 0 .../core/detectors/scoreboard-own/index.ts | 0 .../core/detectors/scoreboard-own/rois.ts | 0 .../core/detectors/scoreboard/banner.ts | 0 .../core/detectors/scoreboard/digits.ts | 0 .../core/detectors/scoreboard/header.ts | 0 .../core/detectors/scoreboard/index.ts | 0 .../scanner/core/detectors/scoreboard/kits.ts | 0 .../core/detectors/scoreboard/names.ts | 0 .../scanner/core/detectors/scoreboard/pov.ts | 0 .../scanner/core/detectors/scoreboard/rois.ts | 0 .../scanner/core/detectors/scoreboard/row.ts | 0 .../core/detectors/scoreboard/specials.ts | 0 .../core/detectors/scoreboard/weapons.ts | 0 .../scanner/core/detectors/telemetry.ts | 0 .../features/scanner/core/detectors/types.ts | 0 .../app}/features/scanner/core/glyphs.ts | 0 .../app}/features/scanner/core/image.ts | 0 .../app}/features/scanner/core/ink-color.ts | 0 .../scanner/core/localized-entries.ts | 0 .../app}/features/scanner/core/localized.ts | 0 .../features/scanner/core/match-builder.ts | 0 .../app}/features/scanner/core/match-sets.ts | 0 .../app}/features/scanner/core/replay-time.ts | 0 .../app}/features/scanner/core/resources.ts | 0 .../features/scanner/core/scanner-match.ts | 0 .../scanner/core/slot-row-assignment.ts | 0 .../app}/features/scanner/core/text.ts | 0 .../features/scanner/core/timeline/index.ts | 0 .../scanner/core/timeline/same-scoreboard.ts | 0 .../app}/features/scanner/node/assets-dir.ts | 0 .../app}/features/scanner/node/fixtures.ts | 0 .../app}/features/scanner/node/image-io.ts | 0 .../app}/features/scanner/node/resources.ts | 0 .../app}/features/scanner/routes/scanner.tsx | 0 .../app}/features/scanner/scanner-schemas.ts | 0 .../scanner/scanner-search-params.test.ts | 0 .../features/scanner/scanner-search-params.ts | 0 .../app}/features/scanner/scanner-types.ts | 0 .../app}/features/scanner/scanner.module.css | 0 .../app}/features/scanner/store/db.ts | 0 .../app}/features/scanner/store/events.ts | 0 .../app}/features/scanner/store/inspect.ts | 0 .../scanner/store/vods.browser.test.ts | 0 .../app}/features/scanner/store/vods.ts | 0 .../scanner/tests/ability-harvest.test.ts | 0 .../features/scanner/tests/banner.test.ts | 0 .../features/scanner/tests/death.1.test.ts | 0 .../features/scanner/tests/death.2.test.ts | 0 .../features/scanner/tests/death.3.test.ts | 0 .../death/classic-squiffer-jp/expected.json | 0 .../death/classic-squiffer-jp/frame.png | Bin .../death/colorful-splashtag/expected.json | 0 .../death/colorful-splashtag/frame.png | Bin .../death/e-liter-4k-jp-720p/expected.json | 0 .../death/e-liter-4k-jp-720p/frame.png | Bin .../death/fxg-supaatan-slosher/expected.json | 0 .../death/fxg-supaatan-slosher/frame.png | Bin .../death/german-booyah-bomb/expected.json | 0 .../death/german-booyah-bomb/frame.png | Bin .../fixtures/death/headphones/expected.json | 0 .../tests/fixtures/death/headphones/frame.png | Bin .../death/pink-text-special/expected.json | 0 .../death/pink-text-special/frame.png | Bin .../expected.json | 0 .../rapid-blaster-deco-heavy-kez/frame.jpg | Bin .../death/splattershot-tezuka/expected.json | 0 .../death/splattershot-tezuka/frame.jpg | Bin .../death/ultra-stamp-jp-720p/expected.json | 0 .../death/ultra-stamp-jp-720p/frame.png | Bin .../death/wipeout-52-gal/expected.json | 0 .../fixtures/death/wipeout-52-gal/frame.png | Bin .../death/z-f-splatterscope-vod/expected.json | 0 .../death/z-f-splatterscope-vod/frame.png | Bin .../expected.json | 0 .../german-splat-zones-robo-rom-en/frame.png | Bin .../map-start/splat-zones-mahi/expected.json | 0 .../map-start/splat-zones-mahi/frame.png | Bin .../expected.json | 0 .../splat-zones-undertow-spillway/frame.png | Bin .../expected.json | 0 .../frame.png | Bin .../minimap/snix-special-ready/expected.json | 0 .../minimap/snix-special-ready/frame.png | Bin .../spectator-area-cup-round1/expected.json | 0 .../spectator-area-cup-round1/frame.jpg | Bin .../expected.json | 0 .../spectator-area-cup-winners-qf/frame.png | Bin .../minimap/spectator-pxg/expected.json | 0 .../fixtures/minimap/spectator-pxg/frame.png | Bin .../spectator-sws26-swiss/expected.json | 0 .../minimap/spectator-sws26-swiss/frame.png | Bin .../stonks-cross-both-teams/expected.json | 0 .../minimap/stonks-cross-both-teams/frame.jpg | Bin .../expected.json | 0 .../frame.png | Bin .../expected.json | 0 .../frame.png | Bin .../expected.json | 0 .../frame.png | Bin .../expected.json | 0 .../splat-zones-barnacle-dime-start/frame.png | Bin .../expected.json | 0 .../frame.png | Bin .../expected.json | 0 .../frame.png | Bin .../expected.json | 0 .../frame.png | Bin .../expected.json | 0 .../frame.png | Bin .../splat-zones-mako-mart/expected.json | 0 .../objective/splat-zones-mako-mart/frame.png | Bin .../expected.json | 0 .../frame.png | Bin .../expected.json | 0 .../frame.png | Bin .../expected.json | 0 .../frame.png | Bin .../expected.json | 0 .../frame.png | Bin .../expected.json | 0 .../frame.png | Bin .../expected.json | 0 .../frame.png | Bin .../expected.json | 0 .../frame.png | Bin .../expected.json | 0 .../frame.png | Bin .../expected.json | 0 .../frame.png | Bin .../expected.json | 0 .../frame.png | Bin .../expected.json | 0 .../frame.png | Bin .../expected.json | 0 .../frame.png | Bin .../expected.json | 0 .../frame.png | Bin .../expected.json | 0 .../frame.png | Bin .../expected.json | 0 .../frame.png | Bin .../expected.json | 0 .../frame.png | Bin .../expected.json | 0 .../frame.png | Bin .../expected.json | 0 .../frame.png | Bin .../expected.json | 0 .../frame.png | Bin .../expected.json | 0 .../frame.png | Bin .../expected.json | 0 .../pov-wahoo-world-special-dead/frame.png | Bin .../expected.json | 0 .../frame.png | Bin .../french-eeltail-alley/expected.json | 0 .../french-eeltail-alley/frame.png | Bin .../low-res-2/expected.json | 0 .../low-res-2/frame.png | Bin .../low-res/expected.json | 0 .../low-res/frame.png | Bin .../expected.json | 0 .../private-battle-crableg-capital/frame.png | Bin .../private-battle-makomart/expected.json | 0 .../private-battle-makomart/frame.png | Bin .../expected.json | 0 .../frame.jpeg | Bin .../expected.json | 0 .../frame.png | Bin .../expected.json | 0 .../frame.png | Bin .../expected.json | 0 .../frame.png | Bin .../expected.json | 0 .../frame.png | Bin .../expected.json | 0 .../frame.png | Bin .../expected.json | 0 .../x-battle-rainmaker-urchin-1434/frame.png | Bin .../expected.json | 0 .../frame.png | Bin .../expected.json | 0 .../frame.png | Bin .../expected.json | 0 .../frame.png | Bin .../expected.json | 0 .../frame.png | Bin .../x-battle-clam-blitz-lemuria/expected.json | 0 .../x-battle-clam-blitz-lemuria/frame.png | Bin .../order-slosher-replica/expected.json | 0 .../order-slosher-replica/frame.png | Bin .../expected.json | 0 .../frame.png | Bin .../expected.json | 0 .../frame.png | Bin .../expected.json | 0 .../frame.png | Bin .../expected.json | 0 .../frame.png | Bin .../expected.json | 0 .../frame.png | Bin .../expected.json | 0 .../frame.png | Bin .../expected.json | 0 .../frame.png | Bin .../fixtures/scoreboard/robot/expected.json | 0 .../tests/fixtures/scoreboard/robot/frame.png | Bin .../scoreboard/special-symbols/expected.json | 0 .../scoreboard/special-symbols/frame.png | Bin .../scoreboard/splash-sploosh/expected.json | 0 .../scoreboard/splash-sploosh/frame.png | Bin .../expected.json | 0 .../xbattle-splat-zones-ko-capture/frame.png | Bin .../xbattle-splat-zones-ko/expected.json | 0 .../xbattle-splat-zones-ko/frame.jpg | Bin .../triton-mahi-allalive-4m33/expected.json | 0 .../triton-mahi-allalive-4m33/frame.png | Bin .../triton-mahi-allalive-4m59/expected.json | 0 .../triton-mahi-allalive-4m59/frame.png | Bin .../triton-mahi-twodead-4m17/expected.json | 0 .../triton-mahi-twodead-4m17/frame.png | Bin .../scanner/tests/logic/dedupe-events.test.ts | 0 .../scanner/tests/logic/match-builder.test.ts | 0 .../scanner/tests/logic/match-sets.test.ts | 0 .../scanner/tests/logic/scheduler.test.ts | 0 .../features/scanner/tests/map-start.test.ts | 0 .../features/scanner/tests/minimap.test.ts | 0 .../scanner/tests/node-test-compat.ts | 0 .../features/scanner/tests/objective.test.ts | 0 .../scanner/tests/opencv-smoke.test.ts | 0 .../scanner/tests/player-status.test.ts | 0 .../scanner/tests/replay-time.test.ts | 0 .../scoreboard-battle-log-replay.1.test.ts | 0 .../scoreboard-battle-log-replay.2.test.ts | 0 .../tests/scoreboard-battle-log.test.ts | 0 .../scanner/tests/scoreboard-own.test.ts | 0 .../features/scanner/tests/scoreboard.test.ts | 0 .../scanner/tests/sendou-upload.test.ts | 0 .../scanner/tests/strip-weapons.test.ts | 0 .../features/scanner/tests/suites/death.ts | 0 .../suites/scoreboard-battle-log-replay.ts | 0 .../features/scanner/tests/timeline.test.ts | 0 .../scanner/worker/analyzer.worker.ts | 0 .../app}/features/scanner/worker/client.ts | 0 .../app}/features/scanner/worker/protocol.ts | 0 .../app}/features/scanner/worker/resources.ts | 0 .../scrims/ScrimMapListRepository.server.ts | 0 .../scrims/ScrimMapRepository.server.ts | 0 ...ScrimPickupRosterRepository.server.test.ts | 0 .../ScrimPickupRosterRepository.server.ts | 0 .../scrims/ScrimPostRepository.server.test.ts | 0 .../scrims/ScrimPostRepository.server.ts | 0 .../scrims/actions/scrims.$id.server.ts | 0 .../scrims/actions/scrims.new.server.ts | 0 .../actions/scrims.request.server.test.ts | 0 .../features/scrims/actions/scrims.server.ts | 0 .../scrims/components/PickMapDialog.tsx | 0 .../scrims/components/ScrimCard.module.css | 0 .../features/scrims/components/ScrimCard.tsx | 0 .../scrims/components/ScrimMapListForm.tsx | 0 .../components/ScrimMapListManager.module.css | 0 .../scrims/components/ScrimMapListManager.tsx | 0 .../components/ScrimMatchActionTab.module.css | 0 .../scrims/components/ScrimMatchActionTab.tsx | 0 .../scrims/components/ScrimMatchBanner.tsx | 0 .../scrims/components/ScrimMatchHeader.tsx | 0 .../components/ScrimMatchStatsTab.module.css | 0 .../scrims/components/ScrimMatchStatsTab.tsx | 0 .../scrims/components/ScrimMatchTabs.tsx | 0 .../scrims/components/ScrimRequestModal.tsx | 0 .../components/WithFormField.module.css | 0 .../scrims/components/WithFormField.tsx | 0 .../app}/features/scrims/core/Scrim.test.ts | 0 .../app}/features/scrims/core/Scrim.ts | 0 .../scrims/core/ScrimMapByMap.test.ts | 0 .../features/scrims/core/ScrimMapByMap.ts | 0 .../scrims/loaders/scrims.$id.server.ts | 0 .../scrims/loaders/scrims.new.server.ts | 0 .../features/scrims/loaders/scrims.server.ts | 0 .../features/scrims/routes/scrims.$id.tsx | 0 .../features/scrims/routes/scrims.module.css | 0 .../scrims/routes/scrims.new.module.css | 0 .../features/scrims/routes/scrims.new.test.ts | 0 .../features/scrims/routes/scrims.new.tsx | 0 .../features/scrims/routes/scrims.test.ts | 0 .../app}/features/scrims/routes/scrims.tsx | 0 .../app}/features/scrims/scrims-constants.ts | 0 .../features/scrims/scrims-schemas.test.ts | 0 .../app}/features/scrims/scrims-schemas.ts | 0 .../scrims/scrims-search-params.test.ts | 0 .../features/scrims/scrims-search-params.ts | 0 .../app}/features/scrims/scrims-types.ts | 0 .../app}/features/scrims/scrims-utils.test.ts | 0 .../app}/features/scrims/scrims-utils.ts | 0 .../app}/features/search/routes/search.ts | 0 .../search/search-search-params.test.ts | 0 .../features/search/search-search-params.ts | 0 .../app}/features/search/search-types.ts | 0 ...MatchContinueVoteRepository.server.test.ts | 0 ...GroupMatchContinueVoteRepository.server.ts | 0 .../MatchSkillRepository.server.ts | 0 .../PlayerStatRepository.server.ts | 0 .../ReportedWeaponRepository.server.ts | 0 .../SQMatchRepository.server.test.ts | 0 .../sendouq-match/SQMatchRepository.server.ts | 0 .../actions/q.match.$id.server.ts | 0 .../components/RejoinSections.tsx | 0 .../components/RematchVotePanel.module.css | 0 .../components/RematchVotePanel.tsx | 0 .../SendouQMatchActionTab.module.css | 0 .../components/SendouQMatchActionTab.tsx | 0 .../components/SendouQMatchBanner.tsx | 0 .../components/SendouQMatchHeader.tsx | 0 .../components/SendouQMatchTabs.tsx | 0 .../sendouq-match/core/RejoinVote.test.ts | 0 .../features/sendouq-match/core/RejoinVote.ts | 0 .../sendouq-match/core/SendouQMatch.test.ts | 0 .../sendouq-match/core/SendouQMatch.ts | 0 .../core/discord-webhook.server.ts | 0 .../sendouq-match/core/match-timeline.test.ts | 0 .../sendouq-match/core/match-timeline.ts | 0 .../sendouq-match/core/match.server.test.ts | 0 .../sendouq-match/core/match.server.ts | 0 .../core/reported-weapons.server.test.ts | 0 .../core/reported-weapons.server.ts | 0 .../sendouq-match/core/skills.server.ts | 0 .../sendouq-match/core/summarizer.server.ts | 0 .../loaders/q.match.$id.server.ts | 0 .../features/sendouq-match/q-match-schemas.ts | 0 .../features/sendouq-match/q-match-utils.ts | 0 .../sendouq-match/routes/q.match.$id.tsx | 0 .../QStreamsRepository.server.ts | 0 .../sendouq-streams/core/streams.server.ts | 0 .../loaders/q.streams.server.ts | 0 .../sendouq-streams/q-streams-constants.ts | 0 .../routes/q.streams.module.css | 0 .../sendouq-streams/routes/q.streams.tsx | 0 .../PrivateUserNoteRepository.server.test.ts | 0 .../PrivateUserNoteRepository.server.ts | 0 .../sendouq/SQGroupRepository.server.test.ts | 0 .../sendouq/SQGroupRepository.server.ts | 0 .../sendouq/actions/q.looking.server.ts | 0 .../sendouq/actions/q.preparing.server.ts | 0 .../sendouq/actions/q.ready.server.ts | 0 .../app}/features/sendouq/actions/q.server.ts | 0 .../components/GroupCard.browser.test.tsx | 0 .../sendouq/components/GroupCard.module.css | 0 .../features/sendouq/components/GroupCard.tsx | 0 .../sendouq/components/GroupLeaver.tsx | 0 .../sendouq/components/MemberAdder.tsx | 0 .../sendouq/core/SendouQ.server.test.ts | 0 .../features/sendouq/core/SendouQ.server.ts | 0 .../sendouq/core/default-maps.server.test.ts | 0 .../sendouq/core/default-maps.server.ts | 0 .../sendouq/core/groups.server.test.ts | 0 .../features/sendouq/core/groups.server.ts | 0 .../app}/features/sendouq/core/groups.ts | 0 .../features/sendouq/core/likes.server.ts | 0 .../sendouq/core/ready-check.server.test.ts | 0 .../sendouq/core/ready-check.server.ts | 0 .../sendouq/loaders/q.looking.server.ts | 0 .../sendouq/loaders/q.preparing.server.ts | 0 .../sendouq/loaders/q.ready.server.ts | 0 .../app}/features/sendouq/loaders/q.server.ts | 0 .../features/sendouq/loaders/tiers.server.ts | 0 .../app}/features/sendouq/q-action-schemas.ts | 0 .../app}/features/sendouq/q-constants.test.ts | 0 .../app}/features/sendouq/q-constants.ts | 0 .../app}/features/sendouq/q-schemas.ts | 0 .../features/sendouq/q-search-params.test.ts | 0 .../app}/features/sendouq/q-search-params.ts | 0 .../app}/features/sendouq/q-types.ts | 0 .../web-react/app}/features/sendouq/q-urls.ts | 0 .../app}/features/sendouq/q-utils.server.ts | 0 .../app}/features/sendouq/q-utils.ts | 0 .../sendouq/routes/friends-for-adding.ts | 0 .../app}/features/sendouq/routes/play.ts | 0 .../features/sendouq/routes/q.info.module.css | 0 .../app}/features/sendouq/routes/q.info.tsx | 0 .../sendouq/routes/q.looking.module.css | 0 .../features/sendouq/routes/q.looking.test.ts | 0 .../features/sendouq/routes/q.looking.tsx | 0 .../app}/features/sendouq/routes/q.module.css | 0 .../sendouq/routes/q.preparing.module.css | 0 .../features/sendouq/routes/q.preparing.tsx | 0 .../sendouq/routes/q.ready.module.css | 0 .../features/sendouq/routes/q.ready.test.ts | 0 .../app}/features/sendouq/routes/q.ready.tsx | 0 .../app}/features/sendouq/routes/q.rules.tsx | 0 .../app}/features/sendouq/routes/q.tsx | 0 .../app}/features/sendouq/routes/tiers.tsx | 0 .../features/sendouq/routes/weapon-usage.ts | 0 .../session-id/session-id-context.server.ts | 0 .../session-id-middleware.server.ts | 0 .../settings/actions/settings.server.ts | 0 .../settings/components/LocaleTab.tsx | 0 .../components/MapModePreferencesField.tsx | 0 .../settings/components/MatchProfileTab.tsx | 0 .../components/ModeMapPoolPicker.module.css | 0 .../settings/components/ModeMapPoolPicker.tsx | 0 .../PreferenceRadioGroup.module.css | 0 .../components/PreferenceRadioGroup.tsx | 0 .../settings/components/PreferencesTab.tsx | 0 .../settings/components/SoundsTab.module.css | 0 .../settings/components/SoundsTab.tsx | 0 .../features/settings/components/ThemeTab.tsx | 0 .../settings/loaders/settings.server.ts | 0 .../settings/match-profile-schemas.test.ts | 0 .../settings/match-profile-schemas.ts | 0 .../settings/routes/settings.global.css | 0 .../features/settings/routes/settings.tsx | 0 .../app}/features/settings/routes/wave.svg | 0 .../features/settings/settings-constants.ts | 0 .../settings/settings-schemas.server.ts | 0 .../features/settings/settings-schemas.ts | 0 .../settings/settings-search-params.test.ts | 0 .../settings/settings-search-params.ts | 0 .../app}/features/settings/settings-utils.ts | 0 .../sidebar/core/StreamRanking.test.ts | 0 .../features/sidebar/core/StreamRanking.ts | 0 .../features/sidebar/core/sidebar.server.ts | 0 .../SplatoonRotationRepository.server.ts | 0 .../splatoon-rotations-constants.ts | 0 .../splatoon-rotations.server.ts | 0 .../team/TeamRepository.server.test.ts | 0 .../features/team/TeamRepository.server.ts | 0 .../actions/t.$customUrl.edit.server.test.ts | 0 .../team/actions/t.$customUrl.edit.server.ts | 0 .../team/actions/t.$customUrl.index.server.ts | 0 .../team/actions/t.$customUrl.join.server.ts | 0 .../actions/t.$customUrl.roster.server.ts | 0 .../team/actions/t.new.server.test.ts | 0 .../features/team/actions/t.new.server.ts | 0 .../team/components/TeamGoBackButton.tsx | 0 .../components/TeamResultsTable.module.css | 0 .../team/components/TeamResultsTable.tsx | 0 .../team/loaders/t.$customUrl.edit.server.ts | 0 .../team/loaders/t.$customUrl.join.server.ts | 0 .../loaders/t.$customUrl.results.server.ts | 0 .../loaders/t.$customUrl.roster.server.ts | 0 .../team/loaders/t.$customUrl.server.ts | 0 .../features/team/loaders/t.new.server.ts | 0 .../team/routes/t.$customUrl.edit.test.ts | 0 .../team/routes/t.$customUrl.edit.tsx | 0 .../team/routes/t.$customUrl.index.tsx | 0 .../team/routes/t.$customUrl.join.tsx | 0 .../team/routes/t.$customUrl.results.tsx | 0 .../team/routes/t.$customUrl.roster.tsx | 0 .../features/team/routes/t.$customUrl.test.ts | 0 .../features/team/routes/t.$customUrl.tsx | 0 .../app}/features/team/routes/t.new.tsx | 0 .../web-react/app}/features/team/routes/t.tsx | 0 .../app}/features/team/team-constants.ts | 0 .../app}/features/team/team-schemas.server.ts | 0 .../app}/features/team/team-schemas.ts | 0 .../features/team/team-search-params.test.ts | 0 .../app}/features/team/team-search-params.ts | 0 .../web-react/app}/features/team/team-urls.ts | 0 .../app}/features/team/team-utils.test.ts | 0 .../app}/features/team/team-utils.ts | 0 .../app}/features/team/team.module.css | 0 .../app}/features/team/tests/fixtures.ts | 0 .../app}/features/theme/core/README.md | 0 .../app}/features/theme/core/provider.tsx | 0 .../theme/core/theme-session.server.ts | 0 .../app}/features/theme/routes/theme.ts | 0 .../app}/features/theme/theme-constants.ts | 0 .../components/DraggableItem.module.css | 0 .../components/DraggableItem.tsx | 0 .../components/ItemDragPreview.module.css | 0 .../components/ItemDragPreview.tsx | 0 .../components/ItemPool.module.css | 0 .../tier-list-maker/components/ItemPool.tsx | 0 .../components/TierListGraphic.module.css | 0 .../components/TierListGraphic.tsx | 0 .../components/TierListItemImage.module.css | 0 .../components/TierListItemImage.tsx | 0 .../components/TierRow.module.css | 0 .../tier-list-maker/components/TierRow.tsx | 0 .../contexts/TierListContext.tsx | 0 .../tier-list-maker/hooks/useTierList.ts | 0 .../routes/tier-list-maker.module.css | 0 .../routes/tier-list-maker.tsx | 0 .../tier-list-maker-constants.ts | 0 .../tier-list-maker-schemas.ts | 0 .../tier-list-maker-search-params.test.ts | 0 .../tier-list-maker-search-params.ts | 0 .../tier-list-maker-utils.test.ts | 0 .../tier-list-maker/tier-list-maker-utils.ts | 0 .../timezone/timezone-context.server.ts | 0 .../features/timezone/timezone-cookie.test.ts | 0 .../app}/features/timezone/timezone-cookie.ts | 0 .../timezone/timezone-middleware.server.ts | 0 .../XRankPlacementRepository.server.test.ts | 0 .../XRankPlacementRepository.server.ts | 0 .../actions/xsearch.player.$id.server.ts | 0 .../components/HowToLinkPopover.module.css | 0 .../components/HowToLinkPopover.tsx | 0 .../top-search/components/Placements.tsx | 0 .../loaders/xsearch.player.$id.server.ts | 0 .../top-search/loaders/xsearch.server.ts | 0 .../top-search/routes/xsearch.player.$id.tsx | 0 .../features/top-search/routes/xsearch.tsx | 0 .../top-search-search-params.test.ts | 0 .../top-search/top-search-search-params.ts | 0 .../features/top-search/top-search-types.ts | 0 .../features/top-search/top-search-urls.ts | 0 .../features/top-search/top-search-utils.ts | 0 .../features/top-search/top-search.module.css | 0 .../actions/to.$id.admin.brackets.server.ts | 0 .../actions/to.$id.admin.index.server.ts | 0 .../to.$id.admin.registration.server.ts | 0 .../actions/to.$id.admin.seeds.server.ts | 0 .../actions/to.$id.admin.staff.server.ts | 0 .../actions/to.$id.admin.stream.server.ts | 0 .../components/ExportDialog.module.css | 0 .../components/ExportDialog.test.ts | 0 .../components/ExportDialog.tsx | 0 .../loaders/to.$id.admin.audit.server.ts | 0 .../loaders/to.$id.admin.index.server.ts | 0 .../to.$id.admin.registration.$tid.server.ts | 0 .../loaders/to.$id.admin.seeds.server.ts | 0 .../routes/to.$id.admin._index.module.css | 0 .../routes/to.$id.admin._index.tsx | 0 .../routes/to.$id.admin.audit.module.css | 0 .../routes/to.$id.admin.audit.tsx | 0 .../routes/to.$id.admin.brackets.tsx | 0 .../routes/to.$id.admin.import-teams.ts | 0 .../routes/to.$id.admin.index.tsx | 0 .../routes/to.$id.admin.module.css | 0 ...d.admin.registration.$tid.browser.test.tsx | 0 ...ration.$tid.captain-label.browser.test.tsx | 0 .../routes/to.$id.admin.registration.$tid.tsx | 0 .../routes/to.$id.admin.seeds.module.css | 0 .../routes/to.$id.admin.seeds.tsx | 0 .../routes/to.$id.admin.staff.tsx | 0 .../routes/to.$id.admin.stream.tsx | 0 .../tournament-admin/routes/to.$id.admin.tsx | 0 ...ament-admin-registration-schemas.server.ts | 0 .../tournament-admin-registration-schemas.ts | 0 .../tournament-admin-schemas.ts | 0 .../tournament-admin-search-params.test.ts | 0 .../tournament-admin-search-params.ts | 0 .../tournament-admin-staff-schemas.ts | 0 .../tournament-admin/tournament-admin-urls.ts | 0 .../BracketRepository.server.ts | 0 .../TournamentMatchVodRepository.server.ts | 0 .../to.$id.brackets.finalize.server.ts | 0 .../actions/to.$id.brackets.server.ts | 0 .../Bracket/Bracket.browser.test.tsx | 0 .../components/Bracket/Elimination.tsx | 0 .../components/Bracket/Match.tsx | 0 .../components/Bracket/PlacementsTable.tsx | 0 .../components/Bracket/RoundHeader.tsx | 0 .../components/Bracket/RoundRobin.tsx | 0 .../components/Bracket/Swiss.tsx | 0 .../components/Bracket/bracket.module.css | 0 .../components/Bracket/index.tsx | 0 .../Bracket/useBracketSpoilerCensor.test.ts | 0 .../Bracket/useBracketSpoilerCensor.ts | 0 .../BracketMapListDialog.module.css | 0 .../components/BracketMapListDialog.test.ts | 0 .../components/BracketMapListDialog.tsx | 0 .../CustomFlowBuilder.browser.test.tsx | 0 .../components/CustomFlowBuilder.module.css | 0 .../components/CustomFlowBuilder.tsx | 0 .../components/TournamentTeamActions.tsx | 0 .../core/AbDivisions.test.ts | 0 .../tournament-bracket/core/AbDivisions.ts | 0 .../tournament-bracket/core/Bracket.test.ts | 0 .../core/Bracket/Bracket.ts | 0 .../core/Bracket/DoubleEliminationBracket.ts | 0 .../core/Bracket/RoundRobinBracket.ts | 0 .../core/Bracket/SingleEliminationBracket.ts | 0 .../core/Bracket/SwissBracket.ts | 0 .../tournament-bracket/core/Bracket/index.ts | 0 .../tournament-bracket/core/Bracket/utils.ts | 0 .../tournament-bracket/core/Deadline.test.ts | 0 .../tournament-bracket/core/Deadline.ts | 0 .../tournament-bracket/core/PickBan.test.ts | 0 .../tournament-bracket/core/PickBan.ts | 0 .../core/PreparedMaps.test.ts | 0 .../tournament-bracket/core/PreparedMaps.ts | 0 .../core/Progression.test.ts | 0 .../tournament-bracket/core/Progression.ts | 0 .../core/RunningTournaments.server.ts | 0 .../core/RunningTournaments.test.ts | 0 .../tournament-bracket/core/Seeding.test.ts | 0 .../tournament-bracket/core/Seeding.ts | 0 .../tournament-bracket/core/Swiss.test.ts | 0 .../core/Tournament.server.test.ts | 0 .../core/Tournament.server.ts | 0 .../core/Tournament.test.ts | 0 .../core/Tournament.timezone.test.ts | 0 .../tournament-bracket/core/Tournament.ts | 0 .../core/engine/create/builder.ts | 0 .../engine/create/double-elimination.test.ts | 0 .../core/engine/create/double-elimination.ts | 0 .../core/engine/create/helpers.test.ts | 0 .../core/engine/create/helpers.ts | 0 .../core/engine/create/index.ts | 0 .../core/engine/create/round-robin.test.ts | 0 .../core/engine/create/round-robin.ts | 0 .../core/engine/create/seeding.ts | 0 .../core/engine/create/settings.ts | 0 .../engine/create/single-elimination.test.ts | 0 .../core/engine/create/single-elimination.ts | 0 .../core/engine/create/swiss.ts | 0 .../core/engine/general.test.ts | 0 .../tournament-bracket/core/engine/index.ts | 0 .../propagation/double-elimination.test.ts | 0 .../core/engine/propagation/dropped-teams.ts | 0 .../core/engine/propagation/helpers.ts | 0 .../core/engine/propagation/report-result.ts | 0 .../core/engine/propagation/reset-result.ts | 0 .../engine/propagation/round-robin.test.ts | 0 .../core/engine/propagation/set.test.ts | 0 .../core/engine/propagation/set.ts | 0 .../propagation/single-elimination.test.ts | 0 .../core/engine/propagation/store.ts | 0 .../core/engine/propagation/traversal.ts | 0 .../core/engine/propagation/update.test.ts | 0 .../core/engine/status.test.ts | 0 .../tournament-bracket/core/engine/status.ts | 0 .../core/engine/swiss/pairing.ts | 0 .../core/engine/swiss/team-status.ts | 0 .../tournament-bracket/core/engine/types.ts | 0 .../core/executeBracketOperation.server.ts | 0 .../core/finalizeTournament.server.ts | 0 .../tournament-bracket/core/rounds.ts | 0 .../core/summarizer.server.ts | 0 .../core/summarizer.test.ts | 0 .../tournament-bracket/core/tests/mocks-li.ts | 0 .../core/tests/mocks-sos.ts | 0 .../core/tests/mocks-swiss.ts | 0 .../core/tests/mocks-zones-weekly.ts | 0 .../tournament-bracket/core/tests/mocks.ts | 0 .../core/tests/test-utils.ts | 0 .../tournament-bracket/core/toMapList.ts | 0 .../to.$id.brackets.finalize.server.ts | 0 .../loaders/to.$id.brackets.server.ts | 0 .../loaders/to.$id.divisions.server.ts | 0 .../routes/to.$id.brackets.finalize.tsx | 0 .../routes/to.$id.brackets.tsx | 0 .../routes/to.$id.divisions.module.css | 0 .../routes/to.$id.divisions.tsx | 0 .../tournament-bracket-constants.ts | 0 .../tournament-bracket-schemas.ts | 0 .../tournament-bracket-search-params.test.ts | 0 .../tournament-bracket-search-params.ts | 0 .../tournament-bracket-urls.ts | 0 .../tournament-bracket-utils.test.ts | 0 .../tournament-bracket-utils.ts | 0 .../tournament-bracket.module.css | 0 .../TournamentLFGRepository.server.test.ts | 0 .../TournamentLFGRepository.server.ts | 0 .../actions/to.$id.looking.server.ts | 0 .../components/LFGGroupCard.module.css | 0 .../components/LFGGroupCard.tsx | 0 .../loaders/to.$id.looking.server.ts | 0 .../routes/to.$id.looking.module.css | 0 .../tournament-lfg/routes/to.$id.looking.tsx | 0 .../tournament-lfg/tournament-lfg-schemas.ts | 0 .../tournament-lfg-utils.server.ts | 0 .../tournament-lfg/tournament-lfg-utils.ts | 0 .../TournamentMatchRepository.server.test.ts | 0 .../TournamentMatchRepository.server.ts | 0 .../actions/to.$id.matches.$mid.server.ts | 0 .../OrganizerMatchMapListDialog.tsx | 0 .../TournamentMatchActionPickBanTab.tsx | 0 .../components/TournamentMatchActionTab.tsx | 0 .../TournamentMatchAdminTab.module.css | 0 .../components/TournamentMatchAdminTab.tsx | 0 .../components/TournamentMatchBanner.tsx | 0 .../components/TournamentMatchHeader.tsx | 0 .../components/TournamentMatchTabs.tsx | 0 .../core/executeRoll.server.ts | 0 .../tournament-match/core/mapList.server.ts | 0 .../core/reportScore.server.ts | 0 .../loaders/to.$id.matches.$mid.server.ts | 0 .../tournament-match/match-page-context.tsx | 0 .../routes/to.$id.matches.$mid.test.ts | 0 .../routes/to.$id.matches.$mid.tsx | 0 .../tournament-match-utils.test.ts | 0 .../tournament-match-utils.ts | 0 ...amentOrganizationRepository.server.test.ts | 0 ...TournamentOrganizationRepository.server.ts | 0 .../actions/org.$slug.edit.server.ts | 0 .../actions/org.$slug.server.ts | 0 .../actions/org.new.server.ts | 0 .../components/BanUserModal.tsx | 0 .../components/BannedPlayersList.module.css | 0 .../components/BannedPlayersList.tsx | 0 .../components/EventCalendar.tsx | 0 .../components/SocialLinksList.tsx | 0 .../core/leaderboards.server.ts | 0 .../core/tentativeTiers.server.ts | 0 .../loaders/org.$slug.edit.server.ts | 0 .../loaders/org.$slug.server.ts | 0 .../loaders/org.$slug.stats.server.ts | 0 .../routes/org.$slug.edit.browser.test.tsx | 0 .../routes/org.$slug.edit.tsx | 0 .../routes/org.$slug.stats.module.css | 0 .../routes/org.$slug.stats.test.ts | 0 .../routes/org.$slug.stats.tsx | 0 .../routes/org.$slug.tsx | 0 .../routes/org.new.tsx | 0 .../tournament-organization/test-utils.ts | 0 .../tournament-organization-constants.ts | 0 .../tournament-organization-schemas.server.ts | 0 .../tournament-organization-schemas.ts | 0 ...rnament-organization-search-params.test.ts | 0 .../tournament-organization-search-params.ts | 0 .../tournament-organization-urls.test.ts | 0 .../tournament-organization-urls.ts | 0 .../tournament-organization-utils.server.ts | 0 .../tournament-organization.module.css | 0 .../loaders/to.$id.subs.server.ts | 0 .../tournament-subs/routes/to.$id.subs.tsx | 0 .../SavedCalendarEventRepository.server.ts | 0 ...ournamentAuditLogRepository.server.test.ts | 0 .../TournamentAuditLogRepository.server.ts | 0 .../TournamentRepository.finalize.test.ts | 0 .../TournamentRepository.permissions.test.ts | 0 .../TournamentRepository.searchByName.test.ts | 0 .../tournament/TournamentRepository.server.ts | 0 ...ournamentRepository.showcaseCounts.test.ts | 0 .../TournamentTeamRepository.server.test.ts | 0 .../TournamentTeamRepository.server.ts | 0 .../tournament/actions/to.$id.info.server.ts | 0 .../tournament/actions/to.$id.join.server.ts | 0 .../actions/to.$id.register.server.ts | 0 .../components/CounterPickMapPoolPicker.tsx | 0 .../tournament/components/FactCard.module.css | 0 .../tournament/components/FactCard.tsx | 0 .../components/RegistrationActions.tsx | 0 .../tournament/components/TeamWithRoster.tsx | 0 .../components/TournamentHeader.module.css | 0 .../components/TournamentHeader.tsx | 0 .../components/TournamentNav.module.css | 0 .../tournament/components/TournamentNav.tsx | 0 .../components/TournamentStream.tsx | 0 .../tournament/core/Standings.test.ts | 0 .../features/tournament/core/Standings.ts | 0 .../tournament/core/layout-payload.ts | 0 .../tournament/core/sets.server.test.ts | 0 .../features/tournament/core/sets.server.ts | 0 .../features/tournament/core/tiering.test.ts | 0 .../app}/features/tournament/core/tiering.ts | 0 .../tournament/loaders/to.$id.info.server.ts | 0 .../tournament/loaders/to.$id.join.server.ts | 0 .../loaders/to.$id.register.server.ts | 0 .../loaders/to.$id.results.server.ts | 0 .../tournament/loaders/to.$id.rules.server.ts | 0 .../tournament/loaders/to.$id.server.ts | 0 .../loaders/to.$id.streams.server.ts | 0 .../loaders/to.$id.teams.$tid.comps.server.ts | 0 .../loaders/to.$id.teams.$tid.server.ts | 0 .../tournament/loaders/to.$id.teams.server.ts | 0 .../app}/features/tournament/routes/luti.ts | 0 .../tournament/routes/to.$id.index.ts | 0 .../tournament/routes/to.$id.info.module.css | 0 .../tournament/routes/to.$id.info.tsx | 0 .../tournament/routes/to.$id.join.tsx | 0 .../tournament/routes/to.$id.register.tsx | 0 .../tournament/routes/to.$id.results.tsx | 0 .../tournament/routes/to.$id.rules.tsx | 0 .../tournament/routes/to.$id.streams.tsx | 0 .../routes/to.$id.teams.$tid.comps.ts | 0 .../tournament/routes/to.$id.teams.$tid.tsx | 0 .../tournament/routes/to.$id.teams.tsx | 0 .../features/tournament/routes/to.$id.tsx | 0 .../features/tournament/routes/to.search.ts | 0 .../tournament/tournament-constants.ts | 0 .../tournament/tournament-context.tsx | 0 .../tournament-register-schemas.server.ts | 0 .../tournament/tournament-register-schemas.ts | 0 .../tournament/tournament-schemas.server.ts | 0 .../features/tournament/tournament-schemas.ts | 0 .../tournament-search-params.test.ts | 0 .../tournament/tournament-search-params.ts | 0 .../features/tournament/tournament-urls.ts | 0 .../tournament/tournament-utils.server.ts | 0 .../tournament/tournament-utils.test.ts | 0 .../features/tournament/tournament-utils.ts | 0 .../features/tournament/tournament.module.css | 0 .../trophies/TrophyRepository.server.test.ts | 0 .../trophies/TrophyRepository.server.ts | 0 .../trophies/actions/trophies.new.server.ts | 0 .../TournamentSummaryRow.module.css | 0 .../components/TournamentSummaryRow.tsx | 0 .../components/TrophiesSelector.module.css | 0 .../trophies/components/TrophiesSelector.tsx | 0 .../trophies/components/Trophy.module.css | 0 .../features/trophies/components/Trophy.tsx | 0 .../components/TrophyDisplay.module.css | 0 .../trophies/components/TrophyDisplay.tsx | 0 .../components/TrophyShowcase.module.css | 0 .../trophies/components/TrophyShowcase.tsx | 0 .../TrophyTournamentHistory.module.css | 0 .../components/TrophyTournamentHistory.tsx | 0 .../features/trophies/core/model-analysis.ts | 0 .../trophies/loaders/trophies.$id.server.ts | 0 .../trophies/loaders/trophies.new.server.ts | 0 .../trophies/loaders/trophies.server.ts | 0 .../routes/trophies.$id.tournaments.ts | 0 .../features/trophies/routes/trophies.$id.tsx | 0 .../routes/trophies.$id.wins.$userId.ts | 0 .../trophies/routes/trophies.module.css | 0 .../trophies/routes/trophies.new.module.css | 0 .../trophies/routes/trophies.new.test.ts | 0 .../features/trophies/routes/trophies.new.tsx | 0 .../features/trophies/routes/trophies.tsx | 0 .../features/trophies/trophies-constants.ts | 0 .../features/trophies/trophies-schemas.ts | 0 .../features/trophies/trophies-utils.test.ts | 0 .../app}/features/trophies/trophies-utils.ts | 0 .../UserCardRepository.server.test.ts | 0 .../user-card/UserCardRepository.server.ts | 0 .../actions/user-card.edit.server.ts | 0 .../components/AddPrivateNoteDialog.tsx | 0 .../user-card/components/UserCard.module.css | 0 .../user-card/components/UserCard.tsx | 0 .../loaders/user-card.edit.server.ts | 0 .../routes/user-card.$id.friendship.ts | 0 .../user-card/routes/user-card.$id.note.ts | 0 .../routes/user-card.edit.module.css | 0 .../user-card/routes/user-card.edit.tsx | 0 .../features/user-card/user-card-constants.ts | 0 .../features/user-card/user-card-schemas.ts | 0 .../user-card/user-card-search-params.test.ts | 0 .../user-card/user-card-search-params.ts | 0 .../features/user-card/user-card-types.ts | 0 .../app}/features/user-card/user-card-urls.ts | 0 .../features/user-card/user-card-utils.ts | 0 .../user-page/UserRepository.server.ts | 0 .../features/user-page/UserRepository.test.ts | 0 .../actions/u.$identifier.admin.server.ts | 0 .../actions/u.$identifier.art.server.ts | 0 .../u.$identifier.builds.new.server.ts | 0 .../actions/u.$identifier.builds.server.ts | 0 .../u.$identifier.edit-widgets.server.ts | 0 .../actions/u.$identifier.edit.server.ts | 0 ...u.$identifier.results.highlights.server.ts | 0 .../user-page/bio-json.server.test.ts | 0 .../GameBadgeSelectField.module.css | 0 .../components/GameBadgeSelectField.tsx | 0 .../components/MutualFriends.module.css | 0 .../user-page/components/MutualFriends.tsx | 0 .../components/NewBuildForm.browser.test.tsx | 0 .../user-page/components/NewBuildForm.tsx | 0 .../components/ParticipationPill.module.css | 0 .../components/ParticipationPill.tsx | 0 .../components/ResultsFiltersBar.tsx | 0 .../components/SubPageHeader.module.css | 0 .../user-page/components/SubPageHeader.tsx | 0 .../components/UserPageIconNav.module.css | 0 .../user-page/components/UserPageIconNav.tsx | 0 .../user-page/components/UserResultsTable.tsx | 0 .../user-page/components/Widget.module.css | 0 .../features/user-page/components/Widget.tsx | 0 .../components/WidgetSettingsForm.tsx | 0 .../core/badge-sorting.server.test.ts | 0 .../user-page/core/badge-sorting.server.ts | 0 .../core/build-sorting.server.test.ts | 0 .../user-page/core/build-sorting.server.ts | 0 .../user-page/core/trophy-sorting.server.ts | 0 .../core/widgets/leaderboard-cache.test.ts | 0 .../core/widgets/portfolio-loaders.server.ts | 0 .../user-page/core/widgets/portfolio.ts | 0 .../features/user-page/core/widgets/types.ts | 0 .../user-page/core/widgets/utils.server.ts | 0 .../core/widgets/widget-form-schemas.ts | 0 .../custom-theme-json.server.test.ts | 0 .../features/user-page/in-game-name.test.ts | 0 .../app}/features/user-page/in-game-name.ts | 0 .../loaders/u.$identifier.admin.server.ts | 0 .../loaders/u.$identifier.art.server.ts | 0 .../u.$identifier.builds.new.server.ts | 0 .../loaders/u.$identifier.builds.server.ts | 0 .../u.$identifier.edit-widgets.server.ts | 0 .../loaders/u.$identifier.edit.server.ts | 0 .../loaders/u.$identifier.index.server.ts | 0 .../loaders/u.$identifier.results.server.ts | 0 .../u.$identifier.seasons.index.server.ts | 0 .../loaders/u.$identifier.seasons.server.ts | 0 .../u.$identifier.seasons.stats.server.ts | 0 ...entifier.seasons.summary-graphic.server.ts | 0 .../user-page/loaders/u.$identifier.server.ts | 0 .../loaders/u.$identifier.vods.server.ts | 0 .../user-page/routes/short.$customUrl.ts | 0 .../user-page/routes/u.$identifier.admin.tsx | 0 .../user-page/routes/u.$identifier.art.tsx | 0 .../routes/u.$identifier.builds.module.css | 0 .../routes/u.$identifier.builds.new.tsx | 0 .../user-page/routes/u.$identifier.builds.tsx | 0 .../u.$identifier.edit-widgets.module.css | 0 .../routes/u.$identifier.edit-widgets.tsx | 0 .../routes/u.$identifier.edit.test.ts | 0 .../user-page/routes/u.$identifier.edit.tsx | 0 .../user-page/routes/u.$identifier.index.tsx | 0 .../user-page/routes/u.$identifier.module.css | 0 .../u.$identifier.results.highlights.tsx | 0 .../routes/u.$identifier.results.tsx | 0 .../routes/u.$identifier.seasons.index.tsx | 0 .../routes/u.$identifier.seasons.stats.tsx | 0 .../u.$identifier.seasons.summary-graphic.ts | 0 .../routes/u.$identifier.seasons.tsx | 0 .../user-page/routes/u.$identifier.tsx | 0 .../user-page/routes/u.$identifier.vods.tsx | 0 .../features/user-page/user-page-constants.ts | 0 .../user-page/user-page-schemas.server.ts | 0 .../features/user-page/user-page-schemas.ts | 0 .../user-page/user-page-search-params.test.ts | 0 .../user-page/user-page-search-params.ts | 0 .../app}/features/user-page/user-page-urls.ts | 0 .../features/user-page/user-page.module.css | 0 .../UserReportRepository.server.ts | 0 .../components/ReportUserDialog.tsx | 0 .../components/ReportsBarChart.module.css | 0 .../components/ReportsBarChart.tsx | 0 .../core/discord-webhook.server.ts | 0 .../user-report/routes/user-report.$id.ts | 0 .../user-report/user-report-constants.ts | 0 .../user-report/user-report-schemas.server.ts | 0 .../user-report/user-report-schemas.ts | 0 .../app}/features/user-search/routes/u.tsx | 0 .../vods/VodRepository.server.test.ts | 0 .../features/vods/VodRepository.server.ts | 0 .../features/vods/actions/vods.$id.server.ts | 0 .../features/vods/actions/vods.new.server.ts | 0 .../vods/components/VodListing.module.css | 0 .../features/vods/components/VodListing.tsx | 0 .../app}/features/vods/components/VodPov.tsx | 0 .../features/vods/loaders/vods.$id.server.ts | 0 .../features/vods/loaders/vods.new.server.ts | 0 .../app}/features/vods/loaders/vods.server.ts | 0 .../features/vods/routes/vods.$id.module.css | 0 .../app}/features/vods/routes/vods.$id.tsx | 0 .../app}/features/vods/routes/vods.module.css | 0 .../vods/routes/vods.new.browser.test.tsx | 0 .../features/vods/routes/vods.new.module.css | 0 .../features/vods/routes/vods.new.test.ts | 0 .../app}/features/vods/routes/vods.new.tsx | 0 .../app}/features/vods/routes/vods.tsx | 0 .../app}/features/vods/vods-constants.ts | 0 .../app}/features/vods/vods-schemas.server.ts | 0 .../app}/features/vods/vods-schemas.ts | 0 .../features/vods/vods-search-params.test.ts | 0 .../app}/features/vods/vods-search-params.ts | 0 .../app}/features/vods/vods-types.ts | 0 .../web-react/app}/features/vods/vods-urls.ts | 0 .../app}/features/vods/vods-utils.test.ts | 0 .../app}/features/vods/vods-utils.ts | 0 .../web-react/app}/form/FormField.tsx | 0 .../app}/form/SendouForm.browser.test.tsx | 0 .../web-react/app}/form/SendouForm.module.css | 0 .../web-react/app}/form/SendouForm.tsx | 0 .../app}/form/UnsavedChangesGuard.tsx | 0 {app => apps/web-react/app}/form/fields.ts | 0 .../form/fields/ArrayFormField.module.css | 0 .../app}/form/fields/ArrayFormField.tsx | 0 .../app}/form/fields/BadgesFormField.tsx | 0 .../app}/form/fields/DatetimeFormField.tsx | 0 .../app}/form/fields/DualSelectFormField.tsx | 0 .../app}/form/fields/FieldsetFormField.tsx | 0 .../form/fields/FormFieldWrapper.module.css | 0 .../app}/form/fields/FormFieldWrapper.tsx | 0 .../form/fields/ImageFormField.module.css | 0 .../app}/form/fields/ImageFormField.tsx | 0 .../app}/form/fields/InGameNameFormField.tsx | 0 .../app}/form/fields/InputFormField.tsx | 0 .../app}/form/fields/InputGroupFormField.tsx | 0 .../form/fields/SelectFormField.module.css | 0 .../app}/form/fields/SelectFormField.tsx | 0 .../fields/StageSelectFormField.module.css | 0 .../app}/form/fields/StageSelectFormField.tsx | 0 .../app}/form/fields/SwitchFormField.tsx | 0 .../app}/form/fields/TeamSearchFormField.tsx | 0 .../app}/form/fields/TextareaFormField.tsx | 0 .../app}/form/fields/TimeRangeFormField.tsx | 0 .../form/fields/TournamentSearchFormField.tsx | 0 .../app}/form/fields/TrophiesFormField.tsx | 0 .../fields/UserSearchFormField.module.css | 0 .../app}/form/fields/UserSearchFormField.tsx | 0 .../fields/WeaponPoolFormField.module.css | 0 .../app}/form/fields/WeaponPoolFormField.tsx | 0 .../fields/WeaponSelectFormField.module.css | 0 .../form/fields/WeaponSelectFormField.tsx | 0 .../web-react/app}/form/image-field.ts | 0 {app => apps/web-react/app}/form/index.ts | 0 .../web-react/app}/form/parse.server.ts | 0 {app => apps/web-react/app}/form/types.ts | 0 .../web-react/app}/form/utils.test.ts | 0 {app => apps/web-react/app}/form/utils.ts | 0 .../app}/hooks/intl/useDateTimeFormat.ts | 0 .../app}/hooks/intl/useFormatDistanceToNow.ts | 0 .../app}/hooks/intl/useUserIntlPreference.ts | 0 {app => apps/web-react/app}/hooks/swr.ts | 0 .../web-react/app}/hooks/useActionSubmit.ts | 0 .../web-react/app}/hooks/useAutoRerender.ts | 0 .../app}/hooks/useBackgroundResource.ts | 0 .../app}/hooks/useCopyToClipboard.ts | 0 .../web-react/app}/hooks/useDebounce.ts | 0 .../web-react/app}/hooks/useHydrated.ts | 0 .../app}/hooks/useIsomorphicLayoutEffect.ts | 0 .../app}/hooks/useMainContentWidth.ts | 0 .../web-react/app}/hooks/usePagination.ts | 0 .../app}/hooks/usePrefersReducedMotion.ts | 0 .../hooks/useRecentlyReportedWeapons.test.ts | 0 .../app}/hooks/useRecentlyReportedWeapons.ts | 0 .../app}/hooks/useReloadOnNewDeploy.ts | 0 .../app}/hooks/useSearchParamPagination.ts | 0 .../app}/hooks/useSpoilerFree.test.ts | 0 .../web-react/app}/hooks/useSpoilerFree.ts | 0 .../web-react/app}/hooks/useThemeColors.ts | 0 .../hooks/useUnseenFriendRequests.test.ts | 0 .../app}/hooks/useUnseenFriendRequests.ts | 0 .../app}/hooks/useVisualViewportHeight.ts | 0 .../web-react/app}/hooks/useWindowSize.ts | 0 .../app}/modules/cache/index.test.ts | 0 .../web-react/app}/modules/cache/index.ts | 0 .../web-react/app}/modules/csv.test.ts | 0 {app => apps/web-react/app}/modules/csv.ts | 0 .../app}/modules/discord-webhook.server.ts | 0 .../app}/modules/i18n/InitialI18nStore.tsx | 0 .../web-react/app}/modules/i18n/config.ts | 0 .../app}/modules/i18n/i18next.server.ts | 0 .../web-react/app}/modules/i18n/loader.ts | 0 .../app}/modules/i18n/resources.browser.ts | 0 .../app}/modules/i18n/resources.server.ts | 0 .../app}/modules/i18n/useChangeLanguage.ts | 0 .../app}/modules/in-game-lists/abilities.ts | 0 .../app}/modules/in-game-lists/brand-ids.ts | 0 .../modules/in-game-lists/game-badge-ids.ts | 0 .../app}/modules/in-game-lists/games.ts | 0 .../app}/modules/in-game-lists/gear-ids.ts | 0 .../app}/modules/in-game-lists/modes.ts | 0 .../app}/modules/in-game-lists/stage-ids.ts | 0 .../app}/modules/in-game-lists/types.ts | 0 .../app}/modules/in-game-lists/utils.test.ts | 0 .../app}/modules/in-game-lists/utils.ts | 0 .../modules/in-game-lists/weapon-alt-names.ts | 0 .../modules/in-game-lists/weapon-ids.test.ts | 0 .../app}/modules/in-game-lists/weapon-ids.ts | 0 .../app}/modules/patreon/constants.ts | 0 .../web-react/app}/modules/patreon/index.ts | 0 .../web-react/app}/modules/patreon/schema.ts | 0 .../web-react/app}/modules/patreon/updater.ts | 0 .../app}/modules/permissions/guards.server.ts | 0 .../app}/modules/permissions/hooks.ts | 0 .../app}/modules/permissions/mapper.server.ts | 0 .../app}/modules/permissions/types.ts | 0 .../app}/modules/permissions/utils.test.ts | 0 .../app}/modules/permissions/utils.ts | 0 .../persisted-state/hooks.browser.test.tsx | 0 .../app}/modules/persisted-state/hooks.ts | 0 .../persisted-state-test-utils.ts | 0 .../persisted-state/persisted-state.test.ts | 0 .../persisted-state/persisted-state.ts | 0 .../responsive-masonry/components/Masonry.tsx | 0 .../components/ResponsiveMasonry.tsx | 0 .../search-params/hooks.browser.test.tsx | 0 .../app}/modules/search-params/hooks.ts | 0 .../search-params/search-params-test-utils.ts | 0 .../search-params/search-params.test.ts | 0 .../modules/search-params/search-params.ts | 0 .../app}/modules/search-params/store.ts | 0 .../balanced-map-list.ts | 0 .../constants.ts | 0 .../generation.test.ts | 0 .../tournament-map-list-generator/source.ts | 0 .../starter-map.ts | 0 .../tournament-map-list-generator/types.ts | 0 .../web-react/app}/modules/twitch/fetch.ts | 0 .../web-react/app}/modules/twitch/index.ts | 0 .../web-react/app}/modules/twitch/schemas.ts | 0 .../web-react/app}/modules/twitch/streams.ts | 0 .../web-react/app}/modules/twitch/token.ts | 0 .../app}/modules/twitch/utils.server.ts | 0 .../web-react/app}/modules/twitch/utils.ts | 0 .../app}/modules/twitch/vods.test.ts | 0 .../web-react/app}/modules/twitch/vods.ts | 0 {app => apps/web-react/app}/root.tsx | 0 {app => apps/web-react/app}/routes.ts | 0 .../app}/routines/closeExpiredCommissions.ts | 0 .../closeExpiredContinueVotes.test.ts | 0 .../routines/closeExpiredContinueVotes.ts | 0 .../app}/routines/computeLutiDivs.ts | 0 .../app}/routines/deleteObsoleteMatchVods.ts | 0 .../app}/routines/deleteOldExternalStreams.ts | 0 .../app}/routines/deleteOldNotifications.ts | 0 .../deleteOldPendingFriendRequests.ts | 0 .../routines/deleteOldScrimPickupRosters.ts | 0 .../routines/deleteOldTournamentAuditLogs.ts | 0 .../app}/routines/deleteOrphanArtTags.ts | 0 .../routines/evictStaleRunningTournaments.ts | 0 .../app}/routines/expireReadyChecks.ts | 0 .../web-react/app}/routines/list.server.ts | 0 .../app}/routines/notifyCheckInStart.test.ts | 0 .../app}/routines/notifyCheckInStart.ts | 0 .../app}/routines/notifyPlusServerVoting.ts | 0 .../app}/routines/notifyScrimStartingSoon.ts | 0 .../app}/routines/notifySeasonStart.ts | 0 .../app}/routines/optimizeDatabase.ts | 0 .../routines/resolveStaleSQMatches.test.ts | 0 .../app}/routines/resolveStaleSQMatches.ts | 0 .../web-react/app}/routines/routine.server.ts | 0 .../app}/routines/setOldGroupsAsInactive.ts | 0 .../app}/routines/syncLiveStreams.test.ts | 0 .../app}/routines/syncLiveStreams.ts | 0 .../app}/routines/syncSplatoonRotations.ts | 0 .../app}/routines/syncTournamentVods.test.ts | 0 .../app}/routines/syncTournamentVods.ts | 0 .../app}/routines/updatePatreonData.ts | 0 {app => apps/web-react/app}/styles/common.css | 0 {app => apps/web-react/app}/styles/flags.css | 0 {app => apps/web-react/app}/styles/fonts.css | 0 .../app}/styles/fonts/lexend-latin-ext.woff2 | Bin .../app}/styles/fonts/lexend-latin.woff2 | Bin .../web-react/app}/styles/front.module.css | 0 .../web-react/app}/styles/normalize.css | 0 {app => apps/web-react/app}/styles/utils.css | 0 {app => apps/web-react/app}/styles/vars.css | 0 {app => apps/web-react/app}/test-setup.ts | 0 {app => apps/web-react/app}/utils/Test.ts | 0 .../web-react/app}/utils/action-schemas.ts | 0 .../web-react/app}/utils/arrays.test.ts | 0 {app => apps/web-react/app}/utils/arrays.ts | 0 .../web-react/app}/utils/cache.server.ts | 0 .../web-react/app}/utils/compression.test.ts | 0 .../web-react/app}/utils/compression.ts | 0 .../web-react/app}/utils/dates.test.ts | 0 {app => apps/web-react/app}/utils/dates.ts | 0 {app => apps/web-react/app}/utils/e2e.ts | 0 {app => apps/web-react/app}/utils/errors.ts | 0 {app => apps/web-react/app}/utils/fetch.ts | 0 .../web-react/app}/utils/git-commit.ts | 0 .../web-react/app}/utils/i18n.test.ts | 0 {app => apps/web-react/app}/utils/i18n.ts | 0 {app => apps/web-react/app}/utils/id.ts | 0 .../web-react/app}/utils/invariant.ts | 0 .../web-react/app}/utils/kysely.server.ts | 0 {app => apps/web-react/app}/utils/logger.ts | 0 {app => apps/web-react/app}/utils/number.ts | 0 .../web-react/app}/utils/numbers.test.ts | 0 .../web-react/app}/utils/oklch-gamut.ts | 0 .../web-react/app}/utils/random.test.ts | 0 {app => apps/web-react/app}/utils/random.ts | 0 .../web-react/app}/utils/remix.server.test.ts | 0 .../web-react/app}/utils/remix.server.ts | 0 .../web-react/app}/utils/remix.test.ts | 0 {app => apps/web-react/app}/utils/remix.ts | 0 .../request-context-middleware.server.ts | 0 .../app}/utils/request-context.server.ts | 0 {app => apps/web-react/app}/utils/result.ts | 0 .../web-react/app}/utils/session-id.ts | 0 {app => apps/web-react/app}/utils/sql.ts | 0 .../web-react/app}/utils/string.test.ts | 0 {app => apps/web-react/app}/utils/strings.ts | 0 .../web-react/app}/utils/team-name-data.ts | 0 .../web-react/app}/utils/team-name.ts | 0 {app => apps/web-react/app}/utils/types.ts | 0 .../web-react/app}/utils/unslugify.server.ts | 0 {app => apps/web-react/app}/utils/urls.ts | 0 .../web-react/app}/utils/users.test.ts | 0 {app => apps/web-react/app}/utils/users.ts | 0 {app => apps/web-react/app}/utils/zod.test.ts | 0 {app => apps/web-react/app}/utils/zod.ts | 0 .../content}/articles/20xx-series-6-recap.md | 0 ...hat-could-completely-alter-the-metagame.md | 0 ...A-dying-scene-Stronghold-and-Splatoon-4.md | 0 .../content}/articles/a-fresh-start.md | 0 .../articles/austrian-championship-2023.md | 0 .../articles/belgian-championship-2023.md | 0 .../articles/competitive-guidebook-part-1.md | 0 .../articles/dutch-championship-2023.md | 0 .../content}/articles/final-low-ink.md | 0 .../flippa-floppa-wins-first-major-of-20xx.md | 0 .../articles/gamers-for-giving-2026.md | 0 .../articles/german-championship-2023.md | 0 .../articles/golden-squid-junction-40.md | 0 .../articles/hypernova-roster-shuffle.md | 0 .../articles/in-the-zone-26-winners.md | 0 .../articles/inktv-announces-return.md | 0 .../interactive-LAN-map-now-available.md | 0 .../ipl-x-area-cup-splat-world-series.md | 0 .../iplxareacup-sws-2026-season-reveal.md | 0 .../articles/january-february-2026-lans.md | 0 .../articles/july-august-2026-lans.md | 0 .../content}/articles/luti-season-13.md | 0 .../articles/march-april-2026-LANs.md | 0 .../content}/articles/may-june-2026-LANs.md | 0 .../content}/articles/na-lague-2026-p1e1.md | 0 .../content}/articles/na-league-2026-p2e2.md | 0 .../articles/na-league-2026-playoffs.md | 0 .../content}/articles/na-league-2026-r1e3.md | 0 .../content}/articles/na-league-2026-r2e4.md | 0 .../content}/articles/na-league-2026-r3-e5.md | 0 .../content}/articles/na-league-2026-r4-e6.md | 0 .../content}/articles/na-league-2026-r5-e7.md | 0 .../content}/articles/na-league-2026-r6-e8.md | 0 .../content}/articles/na-league-2026-r7-e9.md | 0 .../articles/na-league-2026-r8-e10.md | 0 ...hip-brings-splatoon-3-to-80000-students.md | 0 .../articles/november-splatfest-theme.md | 0 .../content}/articles/oktofest-2025.md | 0 ...ourney-beyond-the-north-american-league.md | 0 ...lifier-1-the-road-to-splat-world-series.md | 0 .../articles/qualifier-2-the-road-to-sws.md | 0 .../content}/articles/raise-4-raices.md | 0 .../articles/range-players-harmony.md | 0 .../articles/results-from-riptide-2025.md | 0 .../content}/articles/sendouq-faq.md | 0 .../sendouq-season-10-finale-recap.md | 0 .../articles/sendouq-season8-finale-recap.md | 0 .../articles/sendouq-season9-finale-recap.md | 0 .../articles/series-weapon-power-breakdown.md | 0 .../articles/splat-world-series-finals.md | 0 .../splatfest-world-premiere-results.md | 0 .../articles/splatfest-world-premiere.md | 0 .../splatoon-3-breaks-sales-record.md | 0 .../splatoon-3-more-ways-to-compete.md | 0 .../splatoon-3-na-lague-event-3-regular-1.md | 0 ...platoon-3-na-league-event-1-preseason-1.md | 0 ...splatoon-3-na-league-event-10-regular-8.md | 0 .../splatoon-3-na-league-event-4-regular-2.md | 0 .../splatoon-3-na-league-event-5-regular-3.md | 0 .../splatoon-3-na-league-event-6-regular-4.md | 0 .../splatoon-3-na-league-event-7-regular-5.md | 0 .../splatoon-3-na-league-event-8-regular-6.md | 0 .../splatoon-3-na-league-event-9-regular-7.md | 0 .../articles/splatoon-3-na-league-playoffs.md | 0 .../splatoon-3-na-league-returns-for-2026.md | 0 ...merican-league-event-1-preseason-week-1.md | 0 .../articles/splatoon-competitive-guide.md | 0 .../content}/articles/splatoon-liquipedia.md | 0 .../articles/starburst-wins-pax-west.md | 0 ...erjump-5-the-road-to-splat-world-series.md | 0 .../content}/articles/superjump-6.md | 0 .../content}/articles/superjump-7.md | 0 .../articles/swiss-championship-2023.md | 0 .../articles/sws26-recap-GG2-finals.md | 0 .../articles/sws26-recap-gg1-finals.md | 0 .../content}/articles/sws26-recap-gg1-q1.md | 0 .../sws26-recap-gg2-q1-sqs11-finale.md | 0 .../content}/articles/sws26-recap-gg2-q2.md | 0 .../articles/sws26-recap-westernqualifier1.md | 0 .../articles/sws26-recap-westernqualifier2.md | 0 .../content}/articles/sws26recap-gg1-q2.md | 0 .../content}/articles/ten-splatoon-tips.md | 0 ...atoon-3-north-american-league-news-drop.md | 0 .../the-splatoon-peer-review-server.md | 0 ...sconceptions-about-competitive-splatoon.md | 0 .../upcoming-fall-winter-2026-LANs.md | 0 ...oming-major-splatoon-3-fall-tournaments.md | 0 .../content}/articles/updated-directory.md | 0 ...n-11.0.0-hype-moments-and-aura-and-luti.md | 0 ...the-start-of-splatoons-great-retirement.md | 0 {e2e => apps/web-react/e2e}/analyzer.spec.ts | 0 .../web-react/e2e}/api-public.spec.ts | 0 {e2e => apps/web-react/e2e}/art.spec.ts | 0 .../web-react/e2e}/associations.spec.ts | 0 {e2e => apps/web-react/e2e}/badges.spec.ts | 0 {e2e => apps/web-react/e2e}/ban.spec.ts | 0 {e2e => apps/web-react/e2e}/builds.spec.ts | 0 {e2e => apps/web-react/e2e}/calendar.spec.ts | 0 .../web-react/e2e}/comp-analyzer.spec.ts | 0 {e2e => apps/web-react/e2e}/events.spec.ts | 0 .../web-react/e2e}/fixtures/test-image.png | Bin {e2e => apps/web-react/e2e}/friends.spec.ts | 0 .../web-react/e2e}/global-search.spec.ts | 0 {e2e => apps/web-react/e2e}/global-setup.ts | 2 +- .../web-react/e2e}/global-teardown.ts | 0 .../e2e}/helpers/counterpick-map-pool.ts | 0 .../web-react/e2e}/helpers/factories.ts | 0 .../web-react/e2e}/helpers/playwright-form.ts | 0 .../web-react/e2e}/helpers/playwright.ts | 0 .../web-react/e2e}/helpers/sidebar.ts | 0 .../web-react/e2e}/helpers/tournament.ts | 0 {e2e => apps/web-react/e2e}/lfg.spec.ts | 0 .../web-react/e2e}/navigation.spec.ts | 0 .../web-react/e2e}/notifications.spec.ts | 0 .../e2e}/object-damage-calculator.spec.ts | 0 {e2e => apps/web-react/e2e}/org.spec.ts | 0 .../e2e}/pages/analyzer/analyzer-page.ts | 0 .../e2e}/pages/analyzer/weapon-params-page.ts | 0 .../web-react/e2e}/pages/api/api-page.ts | 0 .../web-react/e2e}/pages/art/new-art-page.ts | 0 .../web-react/e2e}/pages/art/user-art-page.ts | 0 .../pages/associations/associations-page.ts | 0 .../associations/new-association-page.ts | 0 .../web-react/e2e}/pages/badges/badge-page.ts | 0 .../e2e}/pages/ban/admin-ban-page.ts | 0 .../e2e}/pages/ban/suspended-page.ts | 0 .../web-react/e2e}/pages/builds/build-card.ts | 0 .../e2e}/pages/builds/build-form-page.ts | 0 .../e2e}/pages/builds/builds-page.ts | 0 .../e2e}/pages/builds/user-builds-page.ts | 0 .../e2e}/pages/builds/weapon-builds-page.ts | 0 .../pages/calendar/calendar-event-page.ts | 0 .../pages/calendar/calendar-new-event-page.ts | 0 .../e2e}/pages/calendar/calendar-page.ts | 0 .../e2e}/pages/calendar/events-page.ts | 0 .../pages/calendar/report-winners-page.ts | 0 .../pages/comp-analyzer/comp-analyzer-page.ts | 0 .../e2e}/pages/friends/friends-page.ts | 0 .../e2e}/pages/front-page/front-page.ts | 0 .../pages/img-upload/image-validation-page.ts | 0 .../e2e}/pages/layout/anything-adder.ts | 0 .../web-react/e2e}/pages/layout/mobile-nav.ts | 0 .../e2e}/pages/layout/notification-popover.ts | 0 .../web-react/e2e}/pages/layout/side-nav.ts | 0 .../e2e}/pages/layout/top-nav-menus.ts | 0 .../web-react/e2e}/pages/lfg/lfg-page.ts | 0 .../e2e}/pages/lfg/new-lfg-post-page.ts | 0 .../pages/notifications/notifications-page.ts | 0 .../object-damage-calculator-page.ts | 0 .../e2e}/pages/org/new-organization-page.ts | 0 .../e2e}/pages/org/organization-edit-page.ts | 0 .../e2e}/pages/org/organization-page.ts | 0 .../e2e}/pages/scrims/new-scrim-post-page.ts | 0 .../web-react/e2e}/pages/scrims/scrim-page.ts | 0 .../e2e}/pages/scrims/scrims-page.ts | 0 .../e2e}/pages/search/global-search-dialog.ts | 0 .../e2e}/pages/sendouq/group-card.ts | 0 .../pages/sendouq/sendouq-looking-page.ts | 0 .../e2e}/pages/sendouq/sendouq-match-page.ts | 0 .../e2e}/pages/sendouq/sendouq-page.ts | 0 .../pages/sendouq/sendouq-preparing-page.ts | 0 .../e2e}/pages/sendouq/sendouq-ready-page.ts | 0 .../settings/map-mode-preferences-field.ts | 0 .../e2e}/pages/settings/match-profile-page.ts | 0 .../e2e}/pages/settings/settings-page.ts | 0 .../e2e}/pages/team/join-team-page.ts | 0 .../e2e}/pages/team/new-team-page.ts | 0 .../e2e}/pages/team/team-edit-page.ts | 0 .../web-react/e2e}/pages/team/team-page.ts | 0 .../e2e}/pages/team/team-roster-page.ts | 0 .../tier-list-maker/tier-list-maker-page.ts | 0 .../e2e}/pages/top-search/placements-table.ts | 0 .../e2e}/pages/top-search/top-search-page.ts | 0 .../top-search/top-search-player-page.ts | 0 .../tournament/tournament-admin-audit-page.ts | 0 .../pages/tournament/tournament-admin-page.ts | 0 .../tournament-admin-registration-page.ts | 0 .../tournament/tournament-admin-staff-page.ts | 0 .../tournament-admin-stream-page.ts | 0 .../tournament/tournament-brackets-page.ts | 0 .../pages/tournament/tournament-info-page.ts | 0 .../pages/tournament/tournament-join-page.ts | 0 .../pages/tournament/tournament-match-page.ts | 0 .../e2e}/pages/tournament/tournament-nav.ts | 0 .../e2e}/pages/tournament/tournament-page.ts | 0 .../tournament/tournament-register-page.ts | 0 .../tournament/tournament-results-page.ts | 0 .../pages/tournament/tournament-rules-page.ts | 0 .../pages/tournament/tournament-seeds-page.ts | 0 .../tournament/tournament-streams-page.ts | 0 .../pages/tournament/tournament-subs-page.ts | 0 .../pages/tournament/tournament-team-page.ts | 0 .../pages/tournament/tournament-teams-page.ts | 0 .../e2e}/pages/trophies/new-trophy-page.ts | 0 .../e2e}/pages/trophies/trophies-page.ts | 0 .../e2e}/pages/user/user-admin-page.ts | 0 .../e2e}/pages/user/user-card-edit-page.ts | 0 .../web-react/e2e}/pages/user/user-card.ts | 0 .../e2e}/pages/user/user-edit-profile-page.ts | 0 .../web-react/e2e}/pages/user/user-page.ts | 0 .../e2e}/pages/user/user-results-page.ts | 0 .../e2e}/pages/user/user-seasons-page.ts | 0 .../web-react/e2e}/pages/user/welcome-page.ts | 0 .../web-react/e2e}/pages/vods/new-vod-page.ts | 0 .../web-react/e2e}/pages/vods/vod-page.ts | 0 .../web-react/e2e}/pages/vods/vods-page.ts | 0 {e2e => apps/web-react/e2e}/params.spec.ts | 0 {e2e => apps/web-react/e2e}/scrims.spec.ts | 0 .../web-react/e2e}/sendouq-match.spec.ts | 0 {e2e => apps/web-react/e2e}/sendouq.spec.ts | 0 {e2e => apps/web-react/e2e}/settings.spec.ts | 0 .../web-react/e2e}/sidebar-events.spec.ts | 0 .../web-react/e2e}/sidebar-friends.spec.ts | 0 .../web-react/e2e}/sidebar-streams.spec.ts | 0 {e2e => apps/web-react/e2e}/team.spec.ts | 0 .../web-react/e2e}/tier-list-maker.spec.ts | 0 .../web-react/e2e}/top-search.spec.ts | 0 .../e2e}/tournament-ab-divisions.spec.ts | 0 .../web-react/e2e}/tournament-admin.spec.ts | 0 .../tournament-bracket-elimination.spec.ts | 0 .../tournament-bracket-multi-stage.spec.ts | 0 .../e2e}/tournament-bracket-pick-ban.spec.ts | 0 .../tournament-bracket-round-robin.spec.ts | 0 .../e2e}/tournament-bracket-swiss.spec.ts | 0 .../web-react/e2e}/tournament-bracket.spec.ts | 0 .../e2e}/tournament-invitational.spec.ts | 0 .../web-react/e2e}/tournament-staff.spec.ts | 0 .../web-react/e2e}/tournament-streams.spec.ts | 0 .../web-react/e2e}/tournament-tiers.spec.ts | 0 .../web-react/e2e}/tournament.spec.ts | 0 {e2e => apps/web-react/e2e}/trophies.spec.ts | 0 {e2e => apps/web-react/e2e}/user-card.spec.ts | 0 {e2e => apps/web-react/e2e}/user-page.spec.ts | 0 .../web-react/e2e}/user-report.spec.ts | 0 {e2e => apps/web-react/e2e}/vods.spec.ts | 0 {e2e => apps/web-react/e2e}/welcome.spec.ts | 0 knip.ts => apps/web-react/knip.ts | 0 .../web-react/locales}/da/analyzer.json | 0 .../web-react/locales}/da/art.json | 0 .../web-react/locales}/da/badges.json | 0 .../web-react/locales}/da/builds.json | 0 .../web-react/locales}/da/calendar.json | 0 .../web-react/locales}/da/common.json | 0 .../web-react/locales}/da/contributions.json | 0 .../web-react/locales}/da/faq.json | 0 .../web-react/locales}/da/forms.json | 0 .../web-react/locales}/da/friends.json | 0 .../web-react/locales}/da/front.json | 0 .../web-react/locales}/da/game-badges.json | 0 .../web-react/locales}/da/game-misc.json | 0 .../web-react/locales}/da/gear.json | 0 .../web-react/locales}/da/lfg.json | 0 .../web-react/locales}/da/org.json | 0 .../web-react/locales}/da/params.json | 0 {locales => apps/web-react/locales}/da/q.json | 0 .../web-react/locales}/da/scrims.json | 0 .../web-react/locales}/da/settings.json | 0 .../web-react/locales}/da/team.json | 0 .../locales}/da/tier-list-maker.json | 0 .../web-react/locales}/da/tournament.json | 0 .../web-react/locales}/da/trophies.json | 0 .../web-react/locales}/da/user.json | 0 .../web-react/locales}/da/vods.json | 0 .../web-react/locales}/da/weapons.json | 0 .../web-react/locales}/da/welcome.json | 0 .../web-react/locales}/de/analyzer.json | 0 .../web-react/locales}/de/art.json | 0 .../web-react/locales}/de/badges.json | 0 .../web-react/locales}/de/builds.json | 0 .../web-react/locales}/de/calendar.json | 0 .../web-react/locales}/de/common.json | 0 .../web-react/locales}/de/contributions.json | 0 .../web-react/locales}/de/faq.json | 0 .../web-react/locales}/de/forms.json | 0 .../web-react/locales}/de/friends.json | 0 .../web-react/locales}/de/front.json | 0 .../web-react/locales}/de/game-badges.json | 0 .../web-react/locales}/de/game-misc.json | 0 .../web-react/locales}/de/gear.json | 0 .../web-react/locales}/de/lfg.json | 0 .../web-react/locales}/de/org.json | 0 .../web-react/locales}/de/params.json | 0 {locales => apps/web-react/locales}/de/q.json | 0 .../web-react/locales}/de/scrims.json | 0 .../web-react/locales}/de/settings.json | 0 .../web-react/locales}/de/team.json | 0 .../locales}/de/tier-list-maker.json | 0 .../web-react/locales}/de/tournament.json | 0 .../web-react/locales}/de/trophies.json | 0 .../web-react/locales}/de/user.json | 0 .../web-react/locales}/de/vods.json | 0 .../web-react/locales}/de/weapons.json | 0 .../web-react/locales}/de/welcome.json | 0 .../web-react/locales}/en/analyzer.json | 0 .../web-react/locales}/en/art.json | 0 .../web-react/locales}/en/badges.json | 0 .../web-react/locales}/en/builds.json | 0 .../web-react/locales}/en/calendar.json | 0 .../web-react/locales}/en/common.json | 0 .../web-react/locales}/en/contributions.json | 0 .../web-react/locales}/en/faq.json | 0 .../web-react/locales}/en/forms.json | 0 .../web-react/locales}/en/friends.json | 0 .../web-react/locales}/en/front.json | 0 .../web-react/locales}/en/game-badges.json | 0 .../web-react/locales}/en/game-misc.json | 0 .../web-react/locales}/en/gear.json | 0 .../web-react/locales}/en/lfg.json | 0 .../web-react/locales}/en/org.json | 0 .../web-react/locales}/en/params.json | 0 {locales => apps/web-react/locales}/en/q.json | 0 .../web-react/locales}/en/scrims.json | 0 .../web-react/locales}/en/settings.json | 0 .../web-react/locales}/en/team.json | 0 .../locales}/en/tier-list-maker.json | 0 .../web-react/locales}/en/tournament.json | 0 .../web-react/locales}/en/trophies.json | 0 .../web-react/locales}/en/user.json | 0 .../web-react/locales}/en/vods.json | 0 .../web-react/locales}/en/weapons.json | 0 .../web-react/locales}/en/welcome.json | 0 .../web-react/locales}/es-ES/analyzer.json | 0 .../web-react/locales}/es-ES/art.json | 0 .../web-react/locales}/es-ES/badges.json | 0 .../web-react/locales}/es-ES/builds.json | 0 .../web-react/locales}/es-ES/calendar.json | 0 .../web-react/locales}/es-ES/common.json | 0 .../locales}/es-ES/contributions.json | 0 .../web-react/locales}/es-ES/faq.json | 0 .../web-react/locales}/es-ES/forms.json | 0 .../web-react/locales}/es-ES/friends.json | 0 .../web-react/locales}/es-ES/front.json | 0 .../web-react/locales}/es-ES/game-badges.json | 0 .../web-react/locales}/es-ES/game-misc.json | 0 .../web-react/locales}/es-ES/gear.json | 0 .../web-react/locales}/es-ES/lfg.json | 0 .../web-react/locales}/es-ES/org.json | 0 .../web-react/locales}/es-ES/params.json | 0 .../web-react/locales}/es-ES/q.json | 0 .../web-react/locales}/es-ES/scrims.json | 0 .../web-react/locales}/es-ES/settings.json | 0 .../web-react/locales}/es-ES/team.json | 0 .../locales}/es-ES/tier-list-maker.json | 0 .../web-react/locales}/es-ES/tournament.json | 0 .../web-react/locales}/es-ES/trophies.json | 0 .../web-react/locales}/es-ES/user.json | 0 .../web-react/locales}/es-ES/vods.json | 0 .../web-react/locales}/es-ES/weapons.json | 0 .../web-react/locales}/es-ES/welcome.json | 0 .../web-react/locales}/es-US/analyzer.json | 0 .../web-react/locales}/es-US/art.json | 0 .../web-react/locales}/es-US/badges.json | 0 .../web-react/locales}/es-US/builds.json | 0 .../web-react/locales}/es-US/calendar.json | 0 .../web-react/locales}/es-US/common.json | 0 .../locales}/es-US/contributions.json | 0 .../web-react/locales}/es-US/faq.json | 0 .../web-react/locales}/es-US/forms.json | 0 .../web-react/locales}/es-US/friends.json | 0 .../web-react/locales}/es-US/front.json | 0 .../web-react/locales}/es-US/game-badges.json | 0 .../web-react/locales}/es-US/game-misc.json | 0 .../web-react/locales}/es-US/gear.json | 0 .../web-react/locales}/es-US/lfg.json | 0 .../web-react/locales}/es-US/org.json | 0 .../web-react/locales}/es-US/params.json | 0 .../web-react/locales}/es-US/q.json | 0 .../web-react/locales}/es-US/scrims.json | 0 .../web-react/locales}/es-US/settings.json | 0 .../web-react/locales}/es-US/team.json | 0 .../locales}/es-US/tier-list-maker.json | 0 .../web-react/locales}/es-US/tournament.json | 0 .../web-react/locales}/es-US/trophies.json | 0 .../web-react/locales}/es-US/user.json | 0 .../web-react/locales}/es-US/vods.json | 0 .../web-react/locales}/es-US/weapons.json | 0 .../web-react/locales}/es-US/welcome.json | 0 .../web-react/locales}/fr-CA/analyzer.json | 0 .../web-react/locales}/fr-CA/art.json | 0 .../web-react/locales}/fr-CA/badges.json | 0 .../web-react/locales}/fr-CA/builds.json | 0 .../web-react/locales}/fr-CA/calendar.json | 0 .../web-react/locales}/fr-CA/common.json | 0 .../locales}/fr-CA/contributions.json | 0 .../web-react/locales}/fr-CA/faq.json | 0 .../web-react/locales}/fr-CA/forms.json | 0 .../web-react/locales}/fr-CA/friends.json | 0 .../web-react/locales}/fr-CA/front.json | 0 .../web-react/locales}/fr-CA/game-badges.json | 0 .../web-react/locales}/fr-CA/game-misc.json | 0 .../web-react/locales}/fr-CA/gear.json | 0 .../web-react/locales}/fr-CA/lfg.json | 0 .../web-react/locales}/fr-CA/org.json | 0 .../web-react/locales}/fr-CA/params.json | 0 .../web-react/locales}/fr-CA/q.json | 0 .../web-react/locales}/fr-CA/scrims.json | 0 .../web-react/locales}/fr-CA/settings.json | 0 .../web-react/locales}/fr-CA/team.json | 0 .../locales}/fr-CA/tier-list-maker.json | 0 .../web-react/locales}/fr-CA/tournament.json | 0 .../web-react/locales}/fr-CA/trophies.json | 0 .../web-react/locales}/fr-CA/user.json | 0 .../web-react/locales}/fr-CA/vods.json | 0 .../web-react/locales}/fr-CA/weapons.json | 0 .../web-react/locales}/fr-CA/welcome.json | 0 .../web-react/locales}/fr-EU/analyzer.json | 0 .../web-react/locales}/fr-EU/art.json | 0 .../web-react/locales}/fr-EU/badges.json | 0 .../web-react/locales}/fr-EU/builds.json | 0 .../web-react/locales}/fr-EU/calendar.json | 0 .../web-react/locales}/fr-EU/common.json | 0 .../locales}/fr-EU/contributions.json | 0 .../web-react/locales}/fr-EU/faq.json | 0 .../web-react/locales}/fr-EU/forms.json | 0 .../web-react/locales}/fr-EU/friends.json | 0 .../web-react/locales}/fr-EU/front.json | 0 .../web-react/locales}/fr-EU/game-badges.json | 0 .../web-react/locales}/fr-EU/game-misc.json | 0 .../web-react/locales}/fr-EU/gear.json | 0 .../web-react/locales}/fr-EU/lfg.json | 0 .../web-react/locales}/fr-EU/org.json | 0 .../web-react/locales}/fr-EU/params.json | 0 .../web-react/locales}/fr-EU/q.json | 0 .../web-react/locales}/fr-EU/scrims.json | 0 .../web-react/locales}/fr-EU/settings.json | 0 .../web-react/locales}/fr-EU/team.json | 0 .../locales}/fr-EU/tier-list-maker.json | 0 .../web-react/locales}/fr-EU/tournament.json | 0 .../web-react/locales}/fr-EU/trophies.json | 0 .../web-react/locales}/fr-EU/user.json | 0 .../web-react/locales}/fr-EU/vods.json | 0 .../web-react/locales}/fr-EU/weapons.json | 0 .../web-react/locales}/fr-EU/welcome.json | 0 .../web-react/locales}/he/analyzer.json | 0 .../web-react/locales}/he/art.json | 0 .../web-react/locales}/he/badges.json | 0 .../web-react/locales}/he/builds.json | 0 .../web-react/locales}/he/calendar.json | 0 .../web-react/locales}/he/common.json | 0 .../web-react/locales}/he/contributions.json | 0 .../web-react/locales}/he/faq.json | 0 .../web-react/locales}/he/forms.json | 0 .../web-react/locales}/he/friends.json | 0 .../web-react/locales}/he/front.json | 0 .../web-react/locales}/he/game-badges.json | 0 .../web-react/locales}/he/game-misc.json | 0 .../web-react/locales}/he/gear.json | 0 .../web-react/locales}/he/lfg.json | 0 .../web-react/locales}/he/org.json | 0 .../web-react/locales}/he/params.json | 0 {locales => apps/web-react/locales}/he/q.json | 0 .../web-react/locales}/he/scrims.json | 0 .../web-react/locales}/he/settings.json | 0 .../web-react/locales}/he/team.json | 0 .../locales}/he/tier-list-maker.json | 0 .../web-react/locales}/he/tournament.json | 0 .../web-react/locales}/he/trophies.json | 0 .../web-react/locales}/he/user.json | 0 .../web-react/locales}/he/vods.json | 0 .../web-react/locales}/he/weapons.json | 0 .../web-react/locales}/he/welcome.json | 0 .../web-react/locales}/it/analyzer.json | 0 .../web-react/locales}/it/art.json | 0 .../web-react/locales}/it/badges.json | 0 .../web-react/locales}/it/builds.json | 0 .../web-react/locales}/it/calendar.json | 0 .../web-react/locales}/it/common.json | 0 .../web-react/locales}/it/contributions.json | 0 .../web-react/locales}/it/faq.json | 0 .../web-react/locales}/it/forms.json | 0 .../web-react/locales}/it/friends.json | 0 .../web-react/locales}/it/front.json | 0 .../web-react/locales}/it/game-badges.json | 0 .../web-react/locales}/it/game-misc.json | 0 .../web-react/locales}/it/gear.json | 0 .../web-react/locales}/it/lfg.json | 0 .../web-react/locales}/it/org.json | 0 .../web-react/locales}/it/params.json | 0 {locales => apps/web-react/locales}/it/q.json | 0 .../web-react/locales}/it/scrims.json | 0 .../web-react/locales}/it/settings.json | 0 .../web-react/locales}/it/team.json | 0 .../locales}/it/tier-list-maker.json | 0 .../web-react/locales}/it/tournament.json | 0 .../web-react/locales}/it/trophies.json | 0 .../web-react/locales}/it/user.json | 0 .../web-react/locales}/it/vods.json | 0 .../web-react/locales}/it/weapons.json | 0 .../web-react/locales}/it/welcome.json | 0 .../web-react/locales}/ja/analyzer.json | 0 .../web-react/locales}/ja/art.json | 0 .../web-react/locales}/ja/badges.json | 0 .../web-react/locales}/ja/builds.json | 0 .../web-react/locales}/ja/calendar.json | 0 .../web-react/locales}/ja/common.json | 0 .../web-react/locales}/ja/contributions.json | 0 .../web-react/locales}/ja/faq.json | 0 .../web-react/locales}/ja/forms.json | 0 .../web-react/locales}/ja/friends.json | 0 .../web-react/locales}/ja/front.json | 0 .../web-react/locales}/ja/game-badges.json | 0 .../web-react/locales}/ja/game-misc.json | 0 .../web-react/locales}/ja/gear.json | 0 .../web-react/locales}/ja/lfg.json | 0 .../web-react/locales}/ja/org.json | 0 .../web-react/locales}/ja/params.json | 0 {locales => apps/web-react/locales}/ja/q.json | 0 .../web-react/locales}/ja/scrims.json | 0 .../web-react/locales}/ja/settings.json | 0 .../web-react/locales}/ja/team.json | 0 .../locales}/ja/tier-list-maker.json | 0 .../web-react/locales}/ja/tournament.json | 0 .../web-react/locales}/ja/trophies.json | 0 .../web-react/locales}/ja/user.json | 0 .../web-react/locales}/ja/vods.json | 0 .../web-react/locales}/ja/weapons.json | 0 .../web-react/locales}/ja/welcome.json | 0 .../web-react/locales}/ko/analyzer.json | 0 .../web-react/locales}/ko/art.json | 0 .../web-react/locales}/ko/badges.json | 0 .../web-react/locales}/ko/builds.json | 0 .../web-react/locales}/ko/calendar.json | 0 .../web-react/locales}/ko/common.json | 0 .../web-react/locales}/ko/contributions.json | 0 .../web-react/locales}/ko/faq.json | 0 .../web-react/locales}/ko/forms.json | 0 .../web-react/locales}/ko/friends.json | 0 .../web-react/locales}/ko/front.json | 0 .../web-react/locales}/ko/game-badges.json | 0 .../web-react/locales}/ko/game-misc.json | 0 .../web-react/locales}/ko/gear.json | 0 .../web-react/locales}/ko/lfg.json | 0 .../web-react/locales}/ko/org.json | 0 .../web-react/locales}/ko/params.json | 0 {locales => apps/web-react/locales}/ko/q.json | 0 .../web-react/locales}/ko/scrims.json | 0 .../web-react/locales}/ko/settings.json | 0 .../web-react/locales}/ko/team.json | 0 .../locales}/ko/tier-list-maker.json | 0 .../web-react/locales}/ko/tournament.json | 0 .../web-react/locales}/ko/trophies.json | 0 .../web-react/locales}/ko/user.json | 0 .../web-react/locales}/ko/vods.json | 0 .../web-react/locales}/ko/weapons.json | 0 .../web-react/locales}/ko/welcome.json | 0 .../web-react/locales}/nl/analyzer.json | 0 .../web-react/locales}/nl/art.json | 0 .../web-react/locales}/nl/badges.json | 0 .../web-react/locales}/nl/builds.json | 0 .../web-react/locales}/nl/calendar.json | 0 .../web-react/locales}/nl/common.json | 0 .../web-react/locales}/nl/contributions.json | 0 .../web-react/locales}/nl/faq.json | 0 .../web-react/locales}/nl/forms.json | 0 .../web-react/locales}/nl/friends.json | 0 .../web-react/locales}/nl/front.json | 0 .../web-react/locales}/nl/game-badges.json | 0 .../web-react/locales}/nl/game-misc.json | 0 .../web-react/locales}/nl/gear.json | 0 .../web-react/locales}/nl/lfg.json | 0 .../web-react/locales}/nl/org.json | 0 .../web-react/locales}/nl/params.json | 0 {locales => apps/web-react/locales}/nl/q.json | 0 .../web-react/locales}/nl/scrims.json | 0 .../web-react/locales}/nl/settings.json | 0 .../web-react/locales}/nl/team.json | 0 .../locales}/nl/tier-list-maker.json | 0 .../web-react/locales}/nl/tournament.json | 0 .../web-react/locales}/nl/trophies.json | 0 .../web-react/locales}/nl/user.json | 0 .../web-react/locales}/nl/vods.json | 0 .../web-react/locales}/nl/weapons.json | 0 .../web-react/locales}/nl/welcome.json | 0 .../web-react/locales}/pl/analyzer.json | 0 .../web-react/locales}/pl/art.json | 0 .../web-react/locales}/pl/badges.json | 0 .../web-react/locales}/pl/builds.json | 0 .../web-react/locales}/pl/calendar.json | 0 .../web-react/locales}/pl/common.json | 0 .../web-react/locales}/pl/contributions.json | 0 .../web-react/locales}/pl/faq.json | 0 .../web-react/locales}/pl/forms.json | 0 .../web-react/locales}/pl/friends.json | 0 .../web-react/locales}/pl/front.json | 0 .../web-react/locales}/pl/game-badges.json | 0 .../web-react/locales}/pl/game-misc.json | 0 .../web-react/locales}/pl/gear.json | 0 .../web-react/locales}/pl/lfg.json | 0 .../web-react/locales}/pl/org.json | 0 .../web-react/locales}/pl/params.json | 0 {locales => apps/web-react/locales}/pl/q.json | 0 .../web-react/locales}/pl/scrims.json | 0 .../web-react/locales}/pl/settings.json | 0 .../web-react/locales}/pl/team.json | 0 .../locales}/pl/tier-list-maker.json | 0 .../web-react/locales}/pl/tournament.json | 0 .../web-react/locales}/pl/trophies.json | 0 .../web-react/locales}/pl/user.json | 0 .../web-react/locales}/pl/vods.json | 0 .../web-react/locales}/pl/weapons.json | 0 .../web-react/locales}/pl/welcome.json | 0 .../web-react/locales}/pt-BR/analyzer.json | 0 .../web-react/locales}/pt-BR/art.json | 0 .../web-react/locales}/pt-BR/badges.json | 0 .../web-react/locales}/pt-BR/builds.json | 0 .../web-react/locales}/pt-BR/calendar.json | 0 .../web-react/locales}/pt-BR/common.json | 0 .../locales}/pt-BR/contributions.json | 0 .../web-react/locales}/pt-BR/faq.json | 0 .../web-react/locales}/pt-BR/forms.json | 0 .../web-react/locales}/pt-BR/friends.json | 0 .../web-react/locales}/pt-BR/front.json | 0 .../web-react/locales}/pt-BR/game-badges.json | 0 .../web-react/locales}/pt-BR/game-misc.json | 0 .../web-react/locales}/pt-BR/gear.json | 0 .../web-react/locales}/pt-BR/lfg.json | 0 .../web-react/locales}/pt-BR/org.json | 0 .../web-react/locales}/pt-BR/params.json | 0 .../web-react/locales}/pt-BR/q.json | 0 .../web-react/locales}/pt-BR/scrims.json | 0 .../web-react/locales}/pt-BR/settings.json | 0 .../web-react/locales}/pt-BR/team.json | 0 .../locales}/pt-BR/tier-list-maker.json | 0 .../web-react/locales}/pt-BR/tournament.json | 0 .../web-react/locales}/pt-BR/trophies.json | 0 .../web-react/locales}/pt-BR/user.json | 0 .../web-react/locales}/pt-BR/vods.json | 0 .../web-react/locales}/pt-BR/weapons.json | 0 .../web-react/locales}/pt-BR/welcome.json | 0 .../web-react/locales}/ru/analyzer.json | 0 .../web-react/locales}/ru/art.json | 0 .../web-react/locales}/ru/badges.json | 0 .../web-react/locales}/ru/builds.json | 0 .../web-react/locales}/ru/calendar.json | 0 .../web-react/locales}/ru/common.json | 0 .../web-react/locales}/ru/contributions.json | 0 .../web-react/locales}/ru/faq.json | 0 .../web-react/locales}/ru/forms.json | 0 .../web-react/locales}/ru/friends.json | 0 .../web-react/locales}/ru/front.json | 0 .../web-react/locales}/ru/game-badges.json | 0 .../web-react/locales}/ru/game-misc.json | 0 .../web-react/locales}/ru/gear.json | 0 .../web-react/locales}/ru/lfg.json | 0 .../web-react/locales}/ru/org.json | 0 .../web-react/locales}/ru/params.json | 0 {locales => apps/web-react/locales}/ru/q.json | 0 .../web-react/locales}/ru/scrims.json | 0 .../web-react/locales}/ru/settings.json | 0 .../web-react/locales}/ru/team.json | 0 .../locales}/ru/tier-list-maker.json | 0 .../web-react/locales}/ru/tournament.json | 0 .../web-react/locales}/ru/trophies.json | 0 .../web-react/locales}/ru/user.json | 0 .../web-react/locales}/ru/vods.json | 0 .../web-react/locales}/ru/weapons.json | 0 .../web-react/locales}/ru/welcome.json | 0 .../web-react/locales}/zh/analyzer.json | 0 .../web-react/locales}/zh/art.json | 0 .../web-react/locales}/zh/badges.json | 0 .../web-react/locales}/zh/builds.json | 0 .../web-react/locales}/zh/calendar.json | 0 .../web-react/locales}/zh/common.json | 0 .../web-react/locales}/zh/contributions.json | 0 .../web-react/locales}/zh/faq.json | 0 .../web-react/locales}/zh/forms.json | 0 .../web-react/locales}/zh/friends.json | 0 .../web-react/locales}/zh/front.json | 0 .../web-react/locales}/zh/game-badges.json | 0 .../web-react/locales}/zh/game-misc.json | 0 .../web-react/locales}/zh/gear.json | 0 .../web-react/locales}/zh/lfg.json | 0 .../web-react/locales}/zh/org.json | 0 .../web-react/locales}/zh/params.json | 0 {locales => apps/web-react/locales}/zh/q.json | 0 .../web-react/locales}/zh/scrims.json | 0 .../web-react/locales}/zh/settings.json | 0 .../web-react/locales}/zh/team.json | 0 .../locales}/zh/tier-list-maker.json | 0 .../web-react/locales}/zh/tournament.json | 0 .../web-react/locales}/zh/trophies.json | 0 .../web-react/locales}/zh/user.json | 0 .../web-react/locales}/zh/vods.json | 0 .../web-react/locales}/zh/weapons.json | 0 .../web-react/locales}/zh/welcome.json | 0 .../migrations}/20260803000000-initial.sql | 0 .../migrations}/20260803000000-initial.ts | 0 ...0260803155926-group-match-cancel-report.ts | 0 ...260805155023-pending-trophy-accepted-at.ts | 0 ...-tournament-team-member-organizer-added.ts | 0 .../20260806150959-user-tournament-name.ts | 0 ...20260807120658-remove-group-member-role.ts | 0 .../20260807134609-group-suggestions.ts | 0 .../20260807143400-sq-ready-check.ts | 0 .../migrations}/20260807143401-ingest.ts | 0 .../20260808081130-user-card-xp-division.ts | 0 ...tification-subscription-endpoint-unique.ts | 0 .../20260812155327-scrim-pickup-rosters.ts | 0 .../20260815070111-leaderboard-team-skip.ts | 0 apps/web-react/package.json | 136 ++++++++++++++++ .../web-react/playwright.config.ts | 0 .../web-react/public}/app.webmanifest | 0 {public => apps/web-react/public}/favicon.ico | Bin {public => apps/web-react/public}/robots.txt | 0 .../scanner/v1/glyphs/death-tag-name.json | 0 .../scanner/v1/glyphs/death-tag-name.png | Bin .../scanner/v1/glyphs/death-weapon-ja.json | 0 .../scanner/v1/glyphs/death-weapon-ja.png | Bin .../scanner/v1/glyphs/death-weapon.json | 0 .../scanner/v1/glyphs/death-weapon.png | Bin .../scanner/v1/glyphs/map-start-mode.json | 0 .../scanner/v1/glyphs/map-start-mode.png | Bin .../scanner/v1/glyphs/map-start-stage.json | 0 .../scanner/v1/glyphs/map-start-stage.png | Bin .../v1/glyphs/scoreboard-header-line.json | 0 .../v1/glyphs/scoreboard-header-line.png | Bin .../v1/glyphs/scoreboard-header-lobby.json | 0 .../v1/glyphs/scoreboard-header-lobby.png | Bin .../scanner/v1/glyphs/scoreboard-names.json | 0 .../scanner/v1/glyphs/scoreboard-names.png | Bin .../v1/glyphs/scoreboard-paint-digits.json | 0 .../v1/glyphs/scoreboard-paint-digits.png | Bin .../v1/glyphs/scoreboard-replay-code.json | 0 .../v1/glyphs/scoreboard-replay-code.png | Bin .../v1/glyphs/scoreboard-replay-result.json | 0 .../v1/glyphs/scoreboard-replay-result.png | Bin .../v1/glyphs/scoreboard-stat-digits.json | 0 .../v1/glyphs/scoreboard-stat-digits.png | Bin .../v1/glyphs/scoreboard-team-digits.json | 0 .../v1/glyphs/scoreboard-team-digits.png | Bin .../public}/scanner/v1/planner/manifest.json | 0 .../public}/scanner/v1/planner/signatures.png | Bin {public => apps/web-react/public}/sw-2.js | 0 .../web-react/react-router.config.ts | 0 .../web-react/scripts}/add-badge-winners.ts | 0 .../web-react/scripts}/add-badge.ts | 0 .../add-leaderboard-teams-to-tournament.ts | 0 .../web-react/scripts}/benchmark-db.ts | 0 .../web-react/scripts}/benchmark-db/cases.ts | 0 .../scripts}/benchmark-db/fixtures.ts | 0 .../web-react/scripts}/check-articles.ts | 0 .../web-react/scripts}/check-season-status.ts | 0 .../scripts}/check-translation-jsons.ts | 0 .../scripts}/collapse-single-plural-keys.ts | 0 .../web-react/scripts}/compute-luti-divs.ts | 0 .../scripts}/create-analyzer-json.ts | 0 .../web-react/scripts}/create-gear-json.ts | 0 .../scripts}/create-league-divisions.ts | 0 .../web-react/scripts}/create-migration.ts | 0 .../web-react/scripts}/create-misc-json.ts | 0 .../scripts}/create-object-dmg-json.ts | 0 .../web-react/scripts}/delete-badge.ts | 0 .../web-react/scripts}/delete-db-files.mjs | 0 .../web-react/scripts}/delete-skill.ts | 0 .../web-react/scripts}/delete-user.ts | 0 .../web-react/scripts}/dicts/.gitkeep | 0 .../web-react/scripts}/dicts/langs/.gitkeep | 0 .../web-react/scripts}/ensure-test-db.ts | 0 .../web-react/scripts}/join-order.json | 0 .../scripts}/mass-add-tournaments-to-org.ts | 0 .../web-react/scripts}/migrate.ts | 0 .../scripts}/nuke-reported-weapons.ts | 0 .../scripts}/org-monthly-active-players.ts | 0 .../web-react/scripts}/output/.gitkeep | 0 .../web-react/scripts}/placements/index.ts | 0 .../web-react/scripts}/placements/schemas.ts | 0 .../web-react/scripts}/refresh-prod-db.ts | 0 .../web-react/scripts}/rename-badge.ts | 0 .../web-react/scripts}/replace-img-names.ts | 0 .../scripts}/replace-weapon-names.ts | 0 .../scanner/bootstrap-atlas-from-fixture.ts | 0 .../scripts}/scanner/build-glyph-atlas.ts | 0 .../scanner/build-localized-entries.ts | 0 .../scanner/build-planner-signatures.ts | 0 .../web-react/scripts}/scanner/dump-crops.ts | 0 .../web-react/scripts}/scanner/otf-cmap.ts | 0 .../scripts}/scanner/overlay-rois.ts | 0 .../scripts}/scanner/replay-frames.ts | 0 .../web-react/scripts}/scanner/report.ts | 0 .../scripts}/scanner/run-fixtures.ts | 0 .../web-react/scripts}/scanner/scan-vod.ts | 0 .../scripts}/scanner/status-audit.ts | 0 .../scripts}/scanner/vite-node.config.ts | 0 .../scripts}/season-initial-powers.ts | 0 .../web-react/scripts}/seed-art-urls.ts | 0 .../web-react/scripts}/seed-images.ts | 0 {scripts => apps/web-react/scripts}/seed.ts | 0 .../scripts}/send-test-notification.ts | 0 {scripts => apps/web-react/scripts}/setup.ts | 0 .../web-react/scripts}/skip-plus.ts | 0 .../web-react/scripts}/swap-users.ts | 0 .../scripts}/sync-homemade-badges.ts | 0 .../web-react/scripts}/sync-weapon-params.ts | 0 .../web-react/scripts}/tsconfig.json | 0 .../web-react/scripts}/unskip-plus.ts | 0 {scripts => apps/web-react/scripts}/utils.ts | 0 tsconfig.json => apps/web-react/tsconfig.json | 0 .../web-react/types}/edmonds-blossom.d.ts | 0 {types => apps/web-react/types}/env.d.ts | 0 .../web-react/types}/react-i18next.d.ts | 0 {types => apps/web-react/types}/react.d.ts | 0 {types => apps/web-react/types}/vite.d.ts | 0 {types => apps/web-react/types}/youtube.d.ts | 0 .../web-react/vite.config.ts | 0 .../web-react/vitest.browser.config.ts | 0 .../web-react/vitest.scanner.config.ts | 0 .../web-react/vitest.unit.config.ts | 0 biome.json | 35 ++-- package.json | 151 +++--------------- pnpm-lock.yaml | 99 ++---------- pnpm-workspace.yaml | 4 + svelte-big-bang.md | 2 +- 2913 files changed, 227 insertions(+), 250 deletions(-) rename .env.example => apps/web-react/.env.example (100%) rename .env.test => apps/web-react/.env.test (100%) rename {app => apps/web-react/app}/browser-test-setup.ts (100%) rename {app => apps/web-react/app}/components/AbilitiesSelector.module.css (100%) rename {app => apps/web-react/app}/components/AbilitiesSelector.tsx (100%) rename {app => apps/web-react/app}/components/Ability.module.css (100%) rename {app => apps/web-react/app}/components/Ability.tsx (100%) rename {app => apps/web-react/app}/components/ActionButton.tsx (100%) rename {app => apps/web-react/app}/components/Alert.module.css (100%) rename {app => apps/web-react/app}/components/Alert.tsx (100%) rename {app => apps/web-react/app}/components/Avatar.module.css (100%) rename {app => apps/web-react/app}/components/Avatar.tsx (100%) rename {app => apps/web-react/app}/components/Badge.tsx (100%) rename {app => apps/web-react/app}/components/BuildCard.module.css (100%) rename {app => apps/web-react/app}/components/BuildCard.tsx (100%) rename {app => apps/web-react/app}/components/Catcher.tsx (100%) rename {app => apps/web-react/app}/components/Chart.module.css (100%) rename {app => apps/web-react/app}/components/Chart.tsx (100%) rename {app => apps/web-react/app}/components/CopyToClipboardPopover.tsx (100%) rename {app => apps/web-react/app}/components/CustomThemeSelector.module.css (100%) rename {app => apps/web-react/app}/components/CustomThemeSelector.tsx (100%) rename {app => apps/web-react/app}/components/Divider.module.css (100%) rename {app => apps/web-react/app}/components/Divider.tsx (100%) rename {app => apps/web-react/app}/components/DotPagination.module.css (100%) rename {app => apps/web-react/app}/components/DotPagination.tsx (100%) rename {app => apps/web-react/app}/components/EventsList.module.css (100%) rename {app => apps/web-react/app}/components/EventsList.tsx (100%) rename {app => apps/web-react/app}/components/Flag.tsx (100%) rename {app => apps/web-react/app}/components/FormErrors.module.css (100%) rename {app => apps/web-react/app}/components/FormErrors.tsx (100%) rename {app => apps/web-react/app}/components/FormMessage.module.css (100%) rename {app => apps/web-react/app}/components/FormMessage.tsx (100%) rename {app => apps/web-react/app}/components/FormWithConfirm.tsx (100%) rename {app => apps/web-react/app}/components/FriendCodeInput.tsx (100%) rename {app => apps/web-react/app}/components/FriendCodePopover.tsx (100%) rename {app => apps/web-react/app}/components/GameTimeline.module.css (100%) rename {app => apps/web-react/app}/components/GameTimeline.tsx (100%) rename {app => apps/web-react/app}/components/GearSelect.tsx (100%) rename {app => apps/web-react/app}/components/Image.module.css (100%) rename {app => apps/web-react/app}/components/Image.tsx (100%) rename {app => apps/web-react/app}/components/InfoPopover.module.css (100%) rename {app => apps/web-react/app}/components/InfoPopover.tsx (100%) rename {app => apps/web-react/app}/components/IngameNameInput.module.css (100%) rename {app => apps/web-react/app}/components/IngameNameInput.tsx (100%) rename {app => apps/web-react/app}/components/Input.module.css (100%) rename {app => apps/web-react/app}/components/Input.tsx (100%) rename {app => apps/web-react/app}/components/Label.module.css (100%) rename {app => apps/web-react/app}/components/Label.tsx (100%) rename {app => apps/web-react/app}/components/LocaleTime.tsx (100%) rename {app => apps/web-react/app}/components/LocaleTimeRange.tsx (100%) rename {app => apps/web-react/app}/components/Main.module.css (100%) rename {app => apps/web-react/app}/components/Main.tsx (100%) rename {app => apps/web-react/app}/components/MapPoolSelector.module.css (100%) rename {app => apps/web-react/app}/components/MapPoolSelector.tsx (100%) rename {app => apps/web-react/app}/components/Markdown.tsx (100%) rename {app => apps/web-react/app}/components/MobileNav.module.css (100%) rename {app => apps/web-react/app}/components/MobileNav.tsx (100%) rename {app => apps/web-react/app}/components/NoteAvatar.module.css (100%) rename {app => apps/web-react/app}/components/NoteAvatar.tsx (100%) rename {app => apps/web-react/app}/components/NotificationDot.module.css (100%) rename {app => apps/web-react/app}/components/NotificationDot.tsx (100%) rename {app => apps/web-react/app}/components/ObjectiveTimeline.module.css (100%) rename {app => apps/web-react/app}/components/ObjectiveTimeline.tsx (100%) rename {app => apps/web-react/app}/components/Pagination.module.css (100%) rename {app => apps/web-react/app}/components/Pagination.test.ts (100%) rename {app => apps/web-react/app}/components/Pagination.tsx (100%) rename {app => apps/web-react/app}/components/Placeholder.module.css (100%) rename {app => apps/web-react/app}/components/Placeholder.tsx (100%) rename {app => apps/web-react/app}/components/Placement.tsx (100%) rename {app => apps/web-react/app}/components/PlayerStatusTimeline.module.css (100%) rename {app => apps/web-react/app}/components/PlayerStatusTimeline.tsx (100%) rename {app => apps/web-react/app}/components/Redirect.tsx (100%) rename {app => apps/web-react/app}/components/RelativeTime.browser.test.tsx (100%) rename {app => apps/web-react/app}/components/RelativeTime.tsx (100%) rename {app => apps/web-react/app}/components/Section.module.css (100%) rename {app => apps/web-react/app}/components/Section.tsx (100%) rename {app => apps/web-react/app}/components/ShareUrlButton.tsx (100%) rename {app => apps/web-react/app}/components/SideNav.module.css (100%) rename {app => apps/web-react/app}/components/SideNav.tsx (100%) rename {app => apps/web-react/app}/components/SortableTableHeader.module.css (100%) rename {app => apps/web-react/app}/components/SortableTableHeader.tsx (100%) rename {app => apps/web-react/app}/components/StageBannerBox.module.css (100%) rename {app => apps/web-react/app}/components/StageBannerBox.tsx (100%) rename {app => apps/web-react/app}/components/StageSelect.module.css (100%) rename {app => apps/web-react/app}/components/StageSelect.tsx (100%) rename {app => apps/web-react/app}/components/StreamListItems.module.css (100%) rename {app => apps/web-react/app}/components/StreamListItems.tsx (100%) rename {app => apps/web-react/app}/components/SubNav.module.css (100%) rename {app => apps/web-react/app}/components/SubNav.tsx (100%) rename {app => apps/web-react/app}/components/SubmitButton.tsx (100%) rename {app => apps/web-react/app}/components/Table.module.css (100%) rename {app => apps/web-react/app}/components/Table.tsx (100%) rename {app => apps/web-react/app}/components/TierPill.module.css (100%) rename {app => apps/web-react/app}/components/TierPill.tsx (100%) rename {app => apps/web-react/app}/components/TimePopover.module.css (100%) rename {app => apps/web-react/app}/components/TimePopover.tsx (100%) rename {app => apps/web-react/app}/components/UserLink.module.css (100%) rename {app => apps/web-react/app}/components/UserLink.tsx (100%) rename {app => apps/web-react/app}/components/WeaponSelect.module.css (100%) rename {app => apps/web-react/app}/components/WeaponSelect.tsx (100%) rename {app => apps/web-react/app}/components/YouTubeEmbed.module.css (100%) rename {app => apps/web-react/app}/components/YouTubeEmbed.tsx (100%) rename {app => apps/web-react/app}/components/elements/BottomTexts.tsx (100%) rename {app => apps/web-react/app}/components/elements/Button.module.css (100%) rename {app => apps/web-react/app}/components/elements/Button.tsx (100%) rename {app => apps/web-react/app}/components/elements/Calendar.module.css (100%) rename {app => apps/web-react/app}/components/elements/Calendar.tsx (100%) rename {app => apps/web-react/app}/components/elements/ChipRadio.module.css (100%) rename {app => apps/web-react/app}/components/elements/ChipRadio.tsx (100%) rename {app => apps/web-react/app}/components/elements/DatePicker.module.css (100%) rename {app => apps/web-react/app}/components/elements/DatePicker.tsx (100%) rename {app => apps/web-react/app}/components/elements/Dialog.module.css (100%) rename {app => apps/web-react/app}/components/elements/Dialog.tsx (100%) rename {app => apps/web-react/app}/components/elements/FieldError.tsx (100%) rename {app => apps/web-react/app}/components/elements/FieldMessage.tsx (100%) rename {app => apps/web-react/app}/components/elements/Label.module.css (100%) rename {app => apps/web-react/app}/components/elements/Label.tsx (100%) rename {app => apps/web-react/app}/components/elements/Menu.module.css (100%) rename {app => apps/web-react/app}/components/elements/Menu.tsx (100%) rename {app => apps/web-react/app}/components/elements/OrganizationSearch.tsx (100%) rename {app => apps/web-react/app}/components/elements/Popover.module.css (100%) rename {app => apps/web-react/app}/components/elements/Popover.tsx (100%) rename {app => apps/web-react/app}/components/elements/SearchSelect.module.css (100%) rename {app => apps/web-react/app}/components/elements/SearchSelect.tsx (100%) rename {app => apps/web-react/app}/components/elements/Select.browser.test.tsx (100%) rename {app => apps/web-react/app}/components/elements/Select.module.css (100%) rename {app => apps/web-react/app}/components/elements/Select.tsx (100%) rename {app => apps/web-react/app}/components/elements/Switch.module.css (100%) rename {app => apps/web-react/app}/components/elements/Switch.tsx (100%) rename {app => apps/web-react/app}/components/elements/Tabs.module.css (100%) rename {app => apps/web-react/app}/components/elements/Tabs.tsx (100%) rename {app => apps/web-react/app}/components/elements/TeamSearch.module.css (100%) rename {app => apps/web-react/app}/components/elements/TeamSearch.tsx (100%) rename {app => apps/web-react/app}/components/elements/Toast.browser.test.tsx (100%) rename {app => apps/web-react/app}/components/elements/Toast.module.css (100%) rename {app => apps/web-react/app}/components/elements/Toast.tsx (100%) rename {app => apps/web-react/app}/components/elements/TournamentSearch.tsx (100%) rename {app => apps/web-react/app}/components/elements/UserSearch.tsx (100%) rename {app => apps/web-react/app}/components/elements/useEntitySearch.ts (100%) rename {app => apps/web-react/app}/components/filter-bar/FilterBar.browser.test.tsx (100%) rename {app => apps/web-react/app}/components/filter-bar/FilterBar.module.css (100%) rename {app => apps/web-react/app}/components/filter-bar/FilterBar.tsx (100%) rename {app => apps/web-react/app}/components/fuse/Fuse.tsx (100%) rename {app => apps/web-react/app}/components/icons/ArrowRight.tsx (100%) rename {app => apps/web-react/app}/components/icons/BSKYLike.tsx (100%) rename {app => apps/web-react/app}/components/icons/BSKYReply.tsx (100%) rename {app => apps/web-react/app}/components/icons/BSKYRepost.tsx (100%) rename {app => apps/web-react/app}/components/icons/Battlefy.tsx (100%) rename {app => apps/web-react/app}/components/icons/Bsky.tsx (100%) rename {app => apps/web-react/app}/components/icons/Discord.tsx (100%) rename {app => apps/web-react/app}/components/icons/External.tsx (100%) rename {app => apps/web-react/app}/components/icons/GitHub.tsx (100%) rename {app => apps/web-react/app}/components/icons/MainSlot.tsx (100%) rename {app => apps/web-react/app}/components/icons/Patreon.tsx (100%) rename {app => apps/web-react/app}/components/icons/SideSlot.tsx (100%) rename {app => apps/web-react/app}/components/icons/Twitch.tsx (100%) rename {app => apps/web-react/app}/components/icons/YouTube.tsx (100%) rename {app => apps/web-react/app}/components/layout/AnythingAdder.tsx (100%) rename {app => apps/web-react/app}/components/layout/AuthErrorDialog.tsx (100%) rename {app => apps/web-react/app}/components/layout/ChatSidebar.module.css (100%) rename {app => apps/web-react/app}/components/layout/ChatSidebar.tsx (100%) rename {app => apps/web-react/app}/components/layout/Footer.module.css (100%) rename {app => apps/web-react/app}/components/layout/Footer.tsx (100%) rename {app => apps/web-react/app}/components/layout/GlobalSearch.module.css (100%) rename {app => apps/web-react/app}/components/layout/GlobalSearch.tsx (100%) rename {app => apps/web-react/app}/components/layout/LogInButtonContainer.tsx (100%) rename {app => apps/web-react/app}/components/layout/NotificationPopover.module.css (100%) rename {app => apps/web-react/app}/components/layout/NotificationPopover.tsx (100%) rename {app => apps/web-react/app}/components/layout/TopNavMenus.module.css (100%) rename {app => apps/web-react/app}/components/layout/TopNavMenus.tsx (100%) rename {app => apps/web-react/app}/components/layout/TopRightButtons.module.css (100%) rename {app => apps/web-react/app}/components/layout/TopRightButtons.tsx (100%) rename {app => apps/web-react/app}/components/layout/UserItem.module.css (100%) rename {app => apps/web-react/app}/components/layout/WeaponSearch.tsx (100%) rename {app => apps/web-react/app}/components/layout/global-search-persisted.test.ts (100%) rename {app => apps/web-react/app}/components/layout/global-search-persisted.ts (100%) rename {app => apps/web-react/app}/components/layout/global-search-search-params.test.ts (100%) rename {app => apps/web-react/app}/components/layout/global-search-search-params.ts (100%) rename {app => apps/web-react/app}/components/layout/index.module.css (100%) rename {app => apps/web-react/app}/components/layout/index.tsx (100%) rename {app => apps/web-react/app}/components/layout/layout-search-params.ts (100%) rename {app => apps/web-react/app}/components/layout/nav-items.ts (100%) rename {app => apps/web-react/app}/components/match-page/MatchActionPickBanTab.module.css (100%) rename {app => apps/web-react/app}/components/match-page/MatchActionPickBanTab.tsx (100%) rename {app => apps/web-react/app}/components/match-page/MatchActionTab.module.css (100%) rename {app => apps/web-react/app}/components/match-page/MatchActionTab.tsx (100%) rename {app => apps/web-react/app}/components/match-page/MatchBanner.module.css (100%) rename {app => apps/web-react/app}/components/match-page/MatchBanner.tsx (100%) rename {app => apps/web-react/app}/components/match-page/MatchBannerBottomRow.module.css (100%) rename {app => apps/web-react/app}/components/match-page/MatchBannerBottomRow.tsx (100%) rename {app => apps/web-react/app}/components/match-page/MatchBannerScheduledTime.tsx (100%) rename {app => apps/web-react/app}/components/match-page/MatchBannerStartedAt.tsx (100%) rename {app => apps/web-react/app}/components/match-page/MatchBannerTimer.tsx (100%) rename {app => apps/web-react/app}/components/match-page/MatchBannerTopRow.module.css (100%) rename {app => apps/web-react/app}/components/match-page/MatchBannerTopRow.tsx (100%) rename {app => apps/web-react/app}/components/match-page/MatchPage.module.css (100%) rename {app => apps/web-react/app}/components/match-page/MatchPage.tsx (100%) rename {app => apps/web-react/app}/components/match-page/MatchPageHeader.module.css (100%) rename {app => apps/web-react/app}/components/match-page/MatchPageHeader.tsx (100%) rename {app => apps/web-react/app}/components/match-page/MatchResultTab.tsx (100%) rename {app => apps/web-react/app}/components/match-page/MatchRosterTab.module.css (100%) rename {app => apps/web-react/app}/components/match-page/MatchRosterTab.tsx (100%) rename {app => apps/web-react/app}/components/match-page/MatchTabs.module.css (100%) rename {app => apps/web-react/app}/components/match-page/MatchTabs.tsx (100%) rename {app => apps/web-react/app}/components/match-page/MatchTimeline.module.css (100%) rename {app => apps/web-react/app}/components/match-page/MatchTimeline.tsx (100%) rename {app => apps/web-react/app}/components/match-page/SecondaryAction.module.css (100%) rename {app => apps/web-react/app}/components/match-page/SecondaryAction.tsx (100%) rename {app => apps/web-react/app}/components/match-page/WeaponPool.module.css (100%) rename {app => apps/web-react/app}/components/match-page/WeaponPool.tsx (100%) rename {app => apps/web-react/app}/components/match-page/WeaponReporter.module.css (100%) rename {app => apps/web-react/app}/components/match-page/WeaponReporter.tsx (100%) rename {app => apps/web-react/app}/components/match-page/ingested-scoreboard.test.ts (100%) rename {app => apps/web-react/app}/components/match-page/ingested-scoreboard.ts (100%) rename {app => apps/web-react/app}/components/match-page/match-page-schemas.ts (100%) rename {app => apps/web-react/app}/components/match-page/match-page-search-params.test.ts (100%) rename {app => apps/web-react/app}/components/match-page/match-page-search-params.ts (100%) rename {app => apps/web-react/app}/components/match-page/useMatchWeaponReport.ts (100%) rename {app => apps/web-react/app}/components/match-page/utils.test.ts (100%) rename {app => apps/web-react/app}/components/match-page/utils.ts (100%) rename {app => apps/web-react/app}/components/objective-timeline-utils.test.ts (100%) rename {app => apps/web-react/app}/components/objective-timeline-utils.ts (100%) rename {app => apps/web-react/app}/config-helpers.server.ts (100%) rename {app => apps/web-react/app}/config.server.ts (100%) rename {app => apps/web-react/app}/config.ts (100%) rename {app => apps/web-react/app}/db/empty-values-noop-plugin.ts (100%) rename {app => apps/web-react/app}/db/json-columns.test.ts (100%) rename {app => apps/web-react/app}/db/json-columns.ts (100%) rename {app => apps/web-react/app}/db/json-selections.test.ts (100%) rename {app => apps/web-react/app}/db/json-selections.ts (100%) rename {app => apps/web-react/app}/db/node-sqlite-dialect.ts (100%) rename {app => apps/web-react/app}/db/reset.ts (100%) rename {app => apps/web-react/app}/db/seed/constants.ts (100%) rename {app => apps/web-react/app}/db/seed/core/SplatoonFaker.ts (100%) rename {app => apps/web-react/app}/db/seed/core/actAs.ts (100%) rename {app => apps/web-react/app}/db/seed/core/backdate.ts (100%) rename {app => apps/web-react/app}/db/seed/core/defineFactory.ts (100%) rename {app => apps/web-react/app}/db/seed/core/faker.ts (100%) rename {app => apps/web-react/app}/db/seed/core/pinUserId.ts (100%) rename {app => apps/web-react/app}/db/seed/core/reseason.ts (100%) rename {app => apps/web-react/app}/db/seed/core/showcaseNames.ts (100%) rename {app => apps/web-react/app}/db/seed/data/badges.json (100%) rename {app => apps/web-react/app}/db/seed/data/placements.json (100%) rename {app => apps/web-react/app}/db/seed/data/trophies.json (100%) rename {app => apps/web-react/app}/db/seed/dev/badges.ts (100%) rename {app => apps/web-react/app}/db/seed/dev/builds.ts (100%) rename {app => apps/web-react/app}/db/seed/dev/calendar.ts (100%) rename {app => apps/web-react/app}/db/seed/dev/highlights.ts (100%) rename {app => apps/web-react/app}/db/seed/dev/misc.ts (100%) rename {app => apps/web-react/app}/db/seed/dev/organizations.ts (100%) rename {app => apps/web-react/app}/db/seed/dev/plus.ts (100%) rename {app => apps/web-react/app}/db/seed/dev/scrims-lfg.ts (100%) rename {app => apps/web-react/app}/db/seed/dev/sendouq.ts (100%) rename {app => apps/web-react/app}/db/seed/dev/teams.ts (100%) rename {app => apps/web-react/app}/db/seed/dev/tournaments.ts (100%) rename {app => apps/web-react/app}/db/seed/dev/trophies.ts (100%) rename {app => apps/web-react/app}/db/seed/dev/users.ts (100%) rename {app => apps/web-react/app}/db/seed/dev/vods.ts (100%) rename {app => apps/web-react/app}/db/seed/factories/ApiTokenFactory.ts (100%) rename {app => apps/web-react/app}/db/seed/factories/ArtFactory.ts (100%) rename {app => apps/web-react/app}/db/seed/factories/AssociationFactory.ts (100%) rename {app => apps/web-react/app}/db/seed/factories/BadgeFactory.ts (100%) rename {app => apps/web-react/app}/db/seed/factories/BuildFactory.ts (100%) rename {app => apps/web-react/app}/db/seed/factories/CalendarEventFactory.ts (100%) rename {app => apps/web-react/app}/db/seed/factories/CalendarEventResultFactory.ts (100%) rename {app => apps/web-react/app}/db/seed/factories/FriendRequestFactory.ts (100%) rename {app => apps/web-react/app}/db/seed/factories/FriendshipFactory.ts (100%) rename {app => apps/web-react/app}/db/seed/factories/GroupMatchContinueVoteFactory.ts (100%) rename {app => apps/web-react/app}/db/seed/factories/ImageFactory.ts (100%) rename {app => apps/web-react/app}/db/seed/factories/LFGPostFactory.ts (100%) rename {app => apps/web-react/app}/db/seed/factories/LiveStreamFactory.ts (100%) rename {app => apps/web-react/app}/db/seed/factories/LogInLinkFactory.ts (100%) rename {app => apps/web-react/app}/db/seed/factories/NotificationFactory.ts (100%) rename {app => apps/web-react/app}/db/seed/factories/PlusSuggestionFactory.ts (100%) rename {app => apps/web-react/app}/db/seed/factories/PlusVoteFactory.ts (100%) rename {app => apps/web-react/app}/db/seed/factories/ResultHighlightFactory.ts (100%) rename {app => apps/web-react/app}/db/seed/factories/SQGroupFactory.ts (100%) rename {app => apps/web-react/app}/db/seed/factories/SQMatchFactory.ts (100%) rename {app => apps/web-react/app}/db/seed/factories/SQReadyCheckFactory.ts (100%) rename {app => apps/web-react/app}/db/seed/factories/SQReportedWeaponFactory.ts (100%) rename {app => apps/web-react/app}/db/seed/factories/SavedCalendarEventFactory.ts (100%) rename {app => apps/web-react/app}/db/seed/factories/ScrimPostFactory.ts (100%) rename {app => apps/web-react/app}/db/seed/factories/SkillFactory.ts (100%) rename {app => apps/web-react/app}/db/seed/factories/SplatoonRotationFactory.ts (100%) rename {app => apps/web-react/app}/db/seed/factories/TeamFactory.ts (100%) rename {app => apps/web-react/app}/db/seed/factories/TournamentFactory.ts (100%) rename {app => apps/web-react/app}/db/seed/factories/TournamentLFGTeamFactory.ts (100%) rename {app => apps/web-react/app}/db/seed/factories/TournamentOrganizationFactory.ts (100%) rename {app => apps/web-react/app}/db/seed/factories/TournamentReportedWeaponFactory.ts (100%) rename {app => apps/web-react/app}/db/seed/factories/TournamentStreamerFactory.ts (100%) rename {app => apps/web-react/app}/db/seed/factories/TournamentTeamFactory.ts (100%) rename {app => apps/web-react/app}/db/seed/factories/TrophyFactory.ts (100%) rename {app => apps/web-react/app}/db/seed/factories/UserFactory.ts (100%) rename {app => apps/web-react/app}/db/seed/factories/UserReportFactory.ts (100%) rename {app => apps/web-react/app}/db/seed/factories/VodFactory.ts (100%) rename {app => apps/web-react/app}/db/seed/factories/XRankPlacementFactory.ts (100%) rename {app => apps/web-react/app}/db/seed/img/alliance-rogue.png (100%) rename {app => apps/web-react/app}/db/seed/img/default.png (100%) rename {app => apps/web-react/app}/db/seed/img/in-the-zone.png (100%) rename {app => apps/web-react/app}/db/seed/img/luti.png (100%) rename {app => apps/web-react/app}/db/seed/img/paddling-pool.png (100%) rename {app => apps/web-react/app}/db/seed/img/picnic.png (100%) rename {app => apps/web-react/app}/db/seed/img/swim-or-sink.png (100%) rename {app => apps/web-react/app}/db/seed/img/the-depths.png (100%) rename {app => apps/web-react/app}/db/seed/index.ts (100%) rename {app => apps/web-react/app}/db/sql.ts (100%) rename {app => apps/web-react/app}/db/tables-json.ts (100%) rename {app => apps/web-react/app}/db/tables.ts (100%) rename {app => apps/web-react/app}/db/wipe.ts (100%) rename {app => apps/web-react/app}/db/write-tracker.ts (100%) rename {app => apps/web-react/app}/entry.client.tsx (100%) rename {app => apps/web-react/app}/entry.server.tsx (100%) rename {app => apps/web-react/app}/features/admin/AdminRepository.server.test.ts (100%) rename {app => apps/web-react/app}/features/admin/AdminRepository.server.ts (100%) rename {app => apps/web-react/app}/features/admin/ExternalStreamRepository.server.ts (100%) rename {app => apps/web-react/app}/features/admin/actions/admin.server.ts (100%) rename {app => apps/web-react/app}/features/admin/actions/admin.streams.server.ts (100%) rename {app => apps/web-react/app}/features/admin/admin-constants.ts (100%) rename {app => apps/web-react/app}/features/admin/admin-schemas.ts (100%) rename {app => apps/web-react/app}/features/admin/admin-search-params.test.ts (100%) rename {app => apps/web-react/app}/features/admin/admin-search-params.ts (100%) rename {app => apps/web-react/app}/features/admin/core/dev-controls.ts (100%) rename {app => apps/web-react/app}/features/admin/core/discord-webhook.server.ts (100%) rename {app => apps/web-react/app}/features/admin/core/plus-tier.server.ts (100%) rename {app => apps/web-react/app}/features/admin/loaders/admin.server.ts (100%) rename {app => apps/web-react/app}/features/admin/loaders/admin.streams.server.ts (100%) rename {app => apps/web-react/app}/features/admin/routes/admin.streams.module.css (100%) rename {app => apps/web-react/app}/features/admin/routes/admin.streams.tsx (100%) rename {app => apps/web-react/app}/features/admin/routes/admin.test.ts (100%) rename {app => apps/web-react/app}/features/admin/routes/admin.tsx (100%) rename {app => apps/web-react/app}/features/admin/routes/generate-images.tsx (100%) rename {app => apps/web-react/app}/features/api-private/core/refresh-caches.server.ts (100%) rename {app => apps/web-react/app}/features/api-private/routes/end-season.ts (100%) rename {app => apps/web-react/app}/features/api-private/routes/patrons.ts (100%) rename {app => apps/web-react/app}/features/api-private/routes/refresh-caches.ts (100%) rename {app => apps/web-react/app}/features/api-private/routes/run-routine.ts (100%) rename {app => apps/web-react/app}/features/api-private/routes/seed.ts (100%) rename {app => apps/web-react/app}/features/api-private/routes/users.ts (100%) rename {app => apps/web-react/app}/features/api-public/api-action-wrapper.server.ts (100%) rename {app => apps/web-react/app}/features/api-public/api-auth-middleware.server.ts (100%) rename {app => apps/web-react/app}/features/api-public/api-cors-middleware.server.ts (100%) rename {app => apps/web-react/app}/features/api-public/api-public-utils.server.ts (100%) rename {app => apps/web-react/app}/features/api-public/routes/api.layout.tsx (100%) rename {app => apps/web-react/app}/features/api-public/routes/calendar.$year.$week.test.ts (100%) rename {app => apps/web-react/app}/features/api-public/routes/calendar.$year.$week.ts (100%) rename {app => apps/web-react/app}/features/api-public/routes/org.$id.ts (100%) rename {app => apps/web-react/app}/features/api-public/routes/sendouq.active-match.$userId.ts (100%) rename {app => apps/web-react/app}/features/api-public/routes/sendouq.match.$matchId.ts (100%) rename {app => apps/web-react/app}/features/api-public/routes/team.$id.ts (100%) rename {app => apps/web-react/app}/features/api-public/routes/tournament-match.$id.ts (100%) rename {app => apps/web-react/app}/features/api-public/routes/tournament.$id.brackets.$bidx.standings.ts (100%) rename {app => apps/web-react/app}/features/api-public/routes/tournament.$id.brackets.$bidx.ts (100%) rename {app => apps/web-react/app}/features/api-public/routes/tournament.$id.casted.ts (100%) rename {app => apps/web-react/app}/features/api-public/routes/tournament.$id.players.ts (100%) rename {app => apps/web-react/app}/features/api-public/routes/tournament.$id.seeds.ts (100%) rename {app => apps/web-react/app}/features/api-public/routes/tournament.$id.starting-brackets.ts (100%) rename {app => apps/web-react/app}/features/api-public/routes/tournament.$id.streams.ts (100%) rename {app => apps/web-react/app}/features/api-public/routes/tournament.$id.teams.$teamId.add-member.ts (100%) rename {app => apps/web-react/app}/features/api-public/routes/tournament.$id.teams.$teamId.remove-member.ts (100%) rename {app => apps/web-react/app}/features/api-public/routes/tournament.$id.teams.$teamId.update-member-ign.ts (100%) rename {app => apps/web-react/app}/features/api-public/routes/tournament.$id.teams.test.ts (100%) rename {app => apps/web-react/app}/features/api-public/routes/tournament.$id.teams.ts (100%) rename {app => apps/web-react/app}/features/api-public/routes/tournament.$id.teams.upsert.test.ts (100%) rename {app => apps/web-react/app}/features/api-public/routes/tournament.$id.teams.upsert.ts (100%) rename {app => apps/web-react/app}/features/api-public/routes/tournament.$id.ts (100%) rename {app => apps/web-react/app}/features/api-public/routes/user.$identifier.ids.ts (100%) rename {app => apps/web-react/app}/features/api-public/routes/user.$identifier.ts (100%) rename {app => apps/web-react/app}/features/api-public/routes/user.$userId.active-match.ts (100%) rename {app => apps/web-react/app}/features/api-public/schema.ts (100%) rename {app => apps/web-react/app}/features/api/ApiRepository.server.test.ts (100%) rename {app => apps/web-react/app}/features/api/ApiRepository.server.ts (100%) rename {app => apps/web-react/app}/features/api/actions/api.server.ts (100%) rename {app => apps/web-react/app}/features/api/api-schemas.ts (100%) rename {app => apps/web-react/app}/features/api/api-types.ts (100%) rename {app => apps/web-react/app}/features/api/core/perms.test.ts (100%) rename {app => apps/web-react/app}/features/api/core/perms.ts (100%) rename {app => apps/web-react/app}/features/api/loaders/api.server.ts (100%) rename {app => apps/web-react/app}/features/api/routes/api.tsx (100%) rename {app => apps/web-react/app}/features/art/ArtRepository.server.test.ts (100%) rename {app => apps/web-react/app}/features/art/ArtRepository.server.ts (100%) rename {app => apps/web-react/app}/features/art/actions/art.new.server.ts (100%) rename {app => apps/web-react/app}/features/art/art-constants.ts (100%) rename {app => apps/web-react/app}/features/art/art-image.server.ts (100%) rename {app => apps/web-react/app}/features/art/art-image.ts (100%) rename {app => apps/web-react/app}/features/art/art-schemas.server.ts (100%) rename {app => apps/web-react/app}/features/art/art-schemas.ts (100%) rename {app => apps/web-react/app}/features/art/art-search-params.test.ts (100%) rename {app => apps/web-react/app}/features/art/art-search-params.ts (100%) rename {app => apps/web-react/app}/features/art/art-types.ts (100%) rename {app => apps/web-react/app}/features/art/art-urls.test.ts (100%) rename {app => apps/web-react/app}/features/art/art-urls.ts (100%) rename {app => apps/web-react/app}/features/art/art-utils.ts (100%) rename {app => apps/web-react/app}/features/art/components/ArtGrid.module.css (100%) rename {app => apps/web-react/app}/features/art/components/ArtGrid.tsx (100%) rename {app => apps/web-react/app}/features/art/components/ArtImageFormField.module.css (100%) rename {app => apps/web-react/app}/features/art/components/ArtImageFormField.tsx (100%) rename {app => apps/web-react/app}/features/art/components/ArtTagsFormField.module.css (100%) rename {app => apps/web-react/app}/features/art/components/ArtTagsFormField.tsx (100%) rename {app => apps/web-react/app}/features/art/components/TagSelect.tsx (100%) rename {app => apps/web-react/app}/features/art/loaders/art.new.server.ts (100%) rename {app => apps/web-react/app}/features/art/loaders/art.server.ts (100%) rename {app => apps/web-react/app}/features/art/routes/art.new.tsx (100%) rename {app => apps/web-react/app}/features/art/routes/art.tsx (100%) rename {app => apps/web-react/app}/features/articles/articles-constants.ts (100%) rename {app => apps/web-react/app}/features/articles/articles-schemas.server.ts (100%) rename {app => apps/web-react/app}/features/articles/core/bySlug.server.ts (100%) rename {app => apps/web-react/app}/features/articles/core/list.server.ts (100%) rename {app => apps/web-react/app}/features/articles/loaders/a.$slug.server.ts (100%) rename {app => apps/web-react/app}/features/articles/loaders/a.server.ts (100%) rename {app => apps/web-react/app}/features/articles/routes/a.$slug.tsx (100%) rename {app => apps/web-react/app}/features/articles/routes/a.module.css (100%) rename {app => apps/web-react/app}/features/articles/routes/a.tsx (100%) rename {app => apps/web-react/app}/features/associations/AssociationRepository.server.ts (100%) rename {app => apps/web-react/app}/features/associations/actions/associations.new.server.ts (100%) rename {app => apps/web-react/app}/features/associations/actions/associations.server.ts (100%) rename {app => apps/web-react/app}/features/associations/associations-constants.ts (100%) rename {app => apps/web-react/app}/features/associations/associations-schemas.ts (100%) rename {app => apps/web-react/app}/features/associations/associations-search-params.test.ts (100%) rename {app => apps/web-react/app}/features/associations/associations-search-params.ts (100%) rename {app => apps/web-react/app}/features/associations/associations-types.ts (100%) rename {app => apps/web-react/app}/features/associations/associations-urls.ts (100%) rename {app => apps/web-react/app}/features/associations/core/Association.test.ts (100%) rename {app => apps/web-react/app}/features/associations/core/Association.ts (100%) rename {app => apps/web-react/app}/features/associations/loaders/associations.server.ts (100%) rename {app => apps/web-react/app}/features/associations/routes/associations.new.tsx (100%) rename {app => apps/web-react/app}/features/associations/routes/associations.tsx (100%) rename {app => apps/web-react/app}/features/auth/LogInLinkRepository.server.test.ts (100%) rename {app => apps/web-react/app}/features/auth/LogInLinkRepository.server.ts (100%) rename {app => apps/web-react/app}/features/auth/core/DiscordStrategy.server.ts (100%) rename {app => apps/web-react/app}/features/auth/core/authenticator.server.ts (100%) rename {app => apps/web-react/app}/features/auth/core/errors.ts (100%) rename {app => apps/web-react/app}/features/auth/core/routes.server.ts (100%) rename {app => apps/web-react/app}/features/auth/core/session.server.ts (100%) rename {app => apps/web-react/app}/features/auth/core/user-context.server.ts (100%) rename {app => apps/web-react/app}/features/auth/core/user-middleware.server.ts (100%) rename {app => apps/web-react/app}/features/auth/core/user.server.ts (100%) rename {app => apps/web-react/app}/features/auth/core/user.ts (100%) rename {app => apps/web-react/app}/features/auth/routes/auth.callback.ts (100%) rename {app => apps/web-react/app}/features/auth/routes/auth.create-link.ts (100%) rename {app => apps/web-react/app}/features/auth/routes/auth.impersonate.stop.ts (100%) rename {app => apps/web-react/app}/features/auth/routes/auth.impersonate.ts (100%) rename {app => apps/web-react/app}/features/auth/routes/auth.login.ts (100%) rename {app => apps/web-react/app}/features/auth/routes/auth.logout.ts (100%) rename {app => apps/web-react/app}/features/auth/routes/auth.ts (100%) rename {app => apps/web-react/app}/features/badges/BadgeRepository.server.test.ts (100%) rename {app => apps/web-react/app}/features/badges/BadgeRepository.server.ts (100%) rename {app => apps/web-react/app}/features/badges/actions/badges.$id.edit.server.ts (100%) rename {app => apps/web-react/app}/features/badges/badges-constants.ts (100%) rename {app => apps/web-react/app}/features/badges/badges-schemas.ts (100%) rename {app => apps/web-react/app}/features/badges/badges-utils.ts (100%) rename {app => apps/web-react/app}/features/badges/badges.module.css (100%) rename {app => apps/web-react/app}/features/badges/components/BadgeDisplay.module.css (100%) rename {app => apps/web-react/app}/features/badges/components/BadgeDisplay.tsx (100%) rename {app => apps/web-react/app}/features/badges/components/BadgesSelector.tsx (100%) rename {app => apps/web-react/app}/features/badges/loaders/badges.$id.server.ts (100%) rename {app => apps/web-react/app}/features/badges/loaders/badges.server.ts (100%) rename {app => apps/web-react/app}/features/badges/routes/badges.$id.edit.tsx (100%) rename {app => apps/web-react/app}/features/badges/routes/badges.$id.tsx (100%) rename {app => apps/web-react/app}/features/badges/routes/badges.tsx (100%) rename {app => apps/web-react/app}/features/ban/core/banned.server.ts (100%) rename {app => apps/web-react/app}/features/ban/core/banned.test.ts (100%) rename {app => apps/web-react/app}/features/ban/loaders/suspended.server.ts (100%) rename {app => apps/web-react/app}/features/ban/routes/suspended.tsx (100%) rename {app => apps/web-react/app}/features/bracket-test/bracket-test.module.css (100%) rename {app => apps/web-react/app}/features/bracket-test/routes/bracket-test.index.tsx (100%) rename {app => apps/web-react/app}/features/bracket-test/routes/bracket-test.tsx (100%) rename {app => apps/web-react/app}/features/build-analyzer/analyzer-constants.ts (100%) rename {app => apps/web-react/app}/features/build-analyzer/analyzer-hooks.ts (100%) rename {app => apps/web-react/app}/features/build-analyzer/analyzer-search-params.test.ts (100%) rename {app => apps/web-react/app}/features/build-analyzer/analyzer-search-params.ts (100%) rename {app => apps/web-react/app}/features/build-analyzer/analyzer-types.ts (100%) rename {app => apps/web-react/app}/features/build-analyzer/analyzer-urls.ts (100%) rename {app => apps/web-react/app}/features/build-analyzer/components/PerInkTankGrid.tsx (100%) rename {app => apps/web-react/app}/features/build-analyzer/core/ability-points.test.ts (100%) rename {app => apps/web-react/app}/features/build-analyzer/core/ability-points.ts (100%) rename {app => apps/web-react/app}/features/build-analyzer/core/abilityChunksCalc.test.ts (100%) rename {app => apps/web-react/app}/features/build-analyzer/core/abilityChunksCalc.ts (100%) rename {app => apps/web-react/app}/features/build-analyzer/core/serializer.ts (100%) rename {app => apps/web-react/app}/features/build-analyzer/core/specialEffects.test.ts (100%) rename {app => apps/web-react/app}/features/build-analyzer/core/specialEffects.ts (100%) rename {app => apps/web-react/app}/features/build-analyzer/core/stats.test.ts (100%) rename {app => apps/web-react/app}/features/build-analyzer/core/stats.ts (100%) rename {app => apps/web-react/app}/features/build-analyzer/core/utils.ts (100%) rename {app => apps/web-react/app}/features/build-analyzer/data/ability-values.ts (100%) rename {app => apps/web-react/app}/features/build-analyzer/data/weapon-params.ts (100%) rename {app => apps/web-react/app}/features/build-analyzer/routes/analyzer.module.css (100%) rename {app => apps/web-react/app}/features/build-analyzer/routes/analyzer.tsx (100%) rename {app => apps/web-react/app}/features/build-stats/build-stats-utils.test.ts (100%) rename {app => apps/web-react/app}/features/build-stats/build-stats-utils.ts (100%) rename {app => apps/web-react/app}/features/build-stats/loaders/builds.$slug.popular.server.ts (100%) rename {app => apps/web-react/app}/features/build-stats/loaders/builds.$slug.stats.server.ts (100%) rename {app => apps/web-react/app}/features/build-stats/routes/builds.$slug.popular.tsx (100%) rename {app => apps/web-react/app}/features/build-stats/routes/builds.$slug.stats.module.css (100%) rename {app => apps/web-react/app}/features/build-stats/routes/builds.$slug.stats.tsx (100%) rename {app => apps/web-react/app}/features/builds/BuildRepository.server.test.ts (100%) rename {app => apps/web-react/app}/features/builds/BuildRepository.server.ts (100%) rename {app => apps/web-react/app}/features/builds/builds-constants.ts (100%) rename {app => apps/web-react/app}/features/builds/builds-schemas.ts (100%) rename {app => apps/web-react/app}/features/builds/builds-search-params.test.ts (100%) rename {app => apps/web-react/app}/features/builds/builds-search-params.ts (100%) rename {app => apps/web-react/app}/features/builds/builds-types.ts (100%) rename {app => apps/web-react/app}/features/builds/core/ability-sorting.server.test.ts (100%) rename {app => apps/web-react/app}/features/builds/core/ability-sorting.server.ts (100%) rename {app => apps/web-react/app}/features/builds/core/filter.server.ts (100%) rename {app => apps/web-react/app}/features/builds/core/filter.test.ts (100%) rename {app => apps/web-react/app}/features/builds/loaders/builds.$slug.server.ts (100%) rename {app => apps/web-react/app}/features/builds/routes/builds.$slug.module.css (100%) rename {app => apps/web-react/app}/features/builds/routes/builds.$slug.tsx (100%) rename {app => apps/web-react/app}/features/builds/routes/builds.module.css (100%) rename {app => apps/web-react/app}/features/builds/routes/builds.tsx (100%) rename {app => apps/web-react/app}/features/calendar/CalendarRepository.server.ts (100%) rename {app => apps/web-react/app}/features/calendar/actions/calendar.$id.report-winners.server.ts (100%) rename {app => apps/web-react/app}/features/calendar/actions/calendar.$id.server.ts (100%) rename {app => apps/web-react/app}/features/calendar/actions/calendar.new.server.ts (100%) rename {app => apps/web-react/app}/features/calendar/actions/calendar.tsx (100%) rename {app => apps/web-react/app}/features/calendar/calendar-constants.ts (100%) rename {app => apps/web-react/app}/features/calendar/calendar-event.module.css (100%) rename {app => apps/web-react/app}/features/calendar/calendar-hooks.ts (100%) rename {app => apps/web-react/app}/features/calendar/calendar-new-schemas.server.ts (100%) rename {app => apps/web-react/app}/features/calendar/calendar-new-schemas.ts (100%) rename {app => apps/web-react/app}/features/calendar/calendar-new.module.css (100%) rename {app => apps/web-react/app}/features/calendar/calendar-progression-form.test.ts (100%) rename {app => apps/web-react/app}/features/calendar/calendar-progression-form.ts (100%) rename {app => apps/web-react/app}/features/calendar/calendar-report-winners-schemas.ts (100%) rename {app => apps/web-react/app}/features/calendar/calendar-schemas.ts (100%) rename {app => apps/web-react/app}/features/calendar/calendar-search-params.test.ts (100%) rename {app => apps/web-react/app}/features/calendar/calendar-search-params.ts (100%) rename {app => apps/web-react/app}/features/calendar/calendar-types.ts (100%) rename {app => apps/web-react/app}/features/calendar/calendar-urls.ts (100%) rename {app => apps/web-react/app}/features/calendar/calendar-utils.test.ts (100%) rename {app => apps/web-react/app}/features/calendar/calendar-utils.ts (100%) rename {app => apps/web-react/app}/features/calendar/components/BracketProgressionFormFields.module.css (100%) rename {app => apps/web-react/app}/features/calendar/components/BracketProgressionFormFields.tsx (100%) rename {app => apps/web-react/app}/features/calendar/components/FiltersBar.tsx (100%) rename {app => apps/web-react/app}/features/calendar/components/Tags.module.css (100%) rename {app => apps/web-react/app}/features/calendar/components/Tags.tsx (100%) rename {app => apps/web-react/app}/features/calendar/components/TournamentCard.module.css (100%) rename {app => apps/web-react/app}/features/calendar/components/TournamentCard.tsx (100%) rename {app => apps/web-react/app}/features/calendar/core/CalendarEvent.test.ts (100%) rename {app => apps/web-react/app}/features/calendar/core/CalendarEvent.ts (100%) rename {app => apps/web-react/app}/features/calendar/core/ICal.server.ts (100%) rename {app => apps/web-react/app}/features/calendar/loaders/calendar.$id.report-winners.server.ts (100%) rename {app => apps/web-react/app}/features/calendar/loaders/calendar.$id.server.ts (100%) rename {app => apps/web-react/app}/features/calendar/loaders/calendar.new.server.ts (100%) rename {app => apps/web-react/app}/features/calendar/loaders/calendar.server.test.ts (100%) rename {app => apps/web-react/app}/features/calendar/loaders/calendar.server.ts (100%) rename {app => apps/web-react/app}/features/calendar/loaders/calendar[.]ics.server.ts (100%) rename {app => apps/web-react/app}/features/calendar/loaders/events.server.ts (100%) rename {app => apps/web-react/app}/features/calendar/routes/calendar.$id.report-winners.tsx (100%) rename {app => apps/web-react/app}/features/calendar/routes/calendar.$id.test.ts (100%) rename {app => apps/web-react/app}/features/calendar/routes/calendar.$id.tsx (100%) rename {app => apps/web-react/app}/features/calendar/routes/calendar.ics.tsx (100%) rename {app => apps/web-react/app}/features/calendar/routes/calendar.module.css (100%) rename {app => apps/web-react/app}/features/calendar/routes/calendar.new.tsx (100%) rename {app => apps/web-react/app}/features/calendar/routes/calendar.tsx (100%) rename {app => apps/web-react/app}/features/calendar/routes/events.module.css (100%) rename {app => apps/web-react/app}/features/calendar/routes/events.tsx (100%) rename {app => apps/web-react/app}/features/chat/ChatProvider.tsx (100%) rename {app => apps/web-react/app}/features/chat/ChatSystemMessage.server.ts (100%) rename {app => apps/web-react/app}/features/chat/chat-constants.test.ts (100%) rename {app => apps/web-react/app}/features/chat/chat-constants.ts (100%) rename {app => apps/web-react/app}/features/chat/chat-hooks.browser.test.tsx (100%) rename {app => apps/web-react/app}/features/chat/chat-hooks.ts (100%) rename {app => apps/web-react/app}/features/chat/chat-last-read.test.ts (100%) rename {app => apps/web-react/app}/features/chat/chat-last-read.ts (100%) rename {app => apps/web-react/app}/features/chat/chat-provider-types.ts (100%) rename {app => apps/web-react/app}/features/chat/chat-search-params.test.ts (100%) rename {app => apps/web-react/app}/features/chat/chat-search-params.ts (100%) rename {app => apps/web-react/app}/features/chat/chat-types.ts (100%) rename {app => apps/web-react/app}/features/chat/chat-utils.test.ts (100%) rename {app => apps/web-react/app}/features/chat/chat-utils.ts (100%) rename {app => apps/web-react/app}/features/chat/components/Chat.browser.test.tsx (100%) rename {app => apps/web-react/app}/features/chat/components/Chat.module.css (100%) rename {app => apps/web-react/app}/features/chat/components/Chat.tsx (100%) rename {app => apps/web-react/app}/features/chat/revalidate-broadcast-throttle.test.ts (100%) rename {app => apps/web-react/app}/features/chat/revalidate-broadcast-throttle.ts (100%) rename {app => apps/web-react/app}/features/chat/revalidation-scope.test.ts (100%) rename {app => apps/web-react/app}/features/chat/revalidation-scope.ts (100%) rename {app => apps/web-react/app}/features/chat/routes/api.chat-users.ts (100%) rename {app => apps/web-react/app}/features/chat/useChatContext.ts (100%) rename {app => apps/web-react/app}/features/comp-analyzer/comp-analyzer-constants.ts (100%) rename {app => apps/web-react/app}/features/comp-analyzer/comp-analyzer-hooks.ts (100%) rename {app => apps/web-react/app}/features/comp-analyzer/comp-analyzer-search-params.test.ts (100%) rename {app => apps/web-react/app}/features/comp-analyzer/comp-analyzer-search-params.ts (100%) rename {app => apps/web-react/app}/features/comp-analyzer/comp-analyzer-types.ts (100%) rename {app => apps/web-react/app}/features/comp-analyzer/components/DamageComboBar.module.css (100%) rename {app => apps/web-react/app}/features/comp-analyzer/components/DamageComboBar.tsx (100%) rename {app => apps/web-react/app}/features/comp-analyzer/components/RangeVisualization.module.css (100%) rename {app => apps/web-react/app}/features/comp-analyzer/components/RangeVisualization.tsx (100%) rename {app => apps/web-react/app}/features/comp-analyzer/components/SelectedWeapons.browser.test.tsx (100%) rename {app => apps/web-react/app}/features/comp-analyzer/components/SelectedWeapons.module.css (100%) rename {app => apps/web-react/app}/features/comp-analyzer/components/SelectedWeapons.tsx (100%) rename {app => apps/web-react/app}/features/comp-analyzer/components/SpecialRangeVisualization.module.css (100%) rename {app => apps/web-react/app}/features/comp-analyzer/components/SpecialRangeVisualization.tsx (100%) rename {app => apps/web-react/app}/features/comp-analyzer/components/WeaponCategories.module.css (100%) rename {app => apps/web-react/app}/features/comp-analyzer/components/WeaponCategories.tsx (100%) rename {app => apps/web-react/app}/features/comp-analyzer/components/WeaponGrid.browser.test.tsx (100%) rename {app => apps/web-react/app}/features/comp-analyzer/components/WeaponGrid.module.css (100%) rename {app => apps/web-react/app}/features/comp-analyzer/components/WeaponGrid.tsx (100%) rename {app => apps/web-react/app}/features/comp-analyzer/core/damage-combinations.test.ts (100%) rename {app => apps/web-react/app}/features/comp-analyzer/core/damage-combinations.ts (100%) rename {app => apps/web-react/app}/features/comp-analyzer/core/special-weapon-range.test.ts (100%) rename {app => apps/web-react/app}/features/comp-analyzer/core/special-weapon-range.ts (100%) rename {app => apps/web-react/app}/features/comp-analyzer/core/weapon-range.test.ts (100%) rename {app => apps/web-react/app}/features/comp-analyzer/core/weapon-range.ts (100%) rename {app => apps/web-react/app}/features/comp-analyzer/routes/comp-analyzer.all-ranges.tsx (100%) rename {app => apps/web-react/app}/features/comp-analyzer/routes/comp-analyzer.tsx (100%) rename {app => apps/web-react/app}/features/components-showcase/components-showcase.module.css (100%) rename {app => apps/web-react/app}/features/components-showcase/example-trophy-model.ts (100%) rename {app => apps/web-react/app}/features/components-showcase/form-examples-schema.ts (100%) rename {app => apps/web-react/app}/features/components-showcase/routes/components.tsx (100%) rename {app => apps/web-react/app}/features/core/streams/streams.server.ts (100%) rename {app => apps/web-react/app}/features/friends/FriendRepository.server.test.ts (100%) rename {app => apps/web-react/app}/features/friends/FriendRepository.server.ts (100%) rename {app => apps/web-react/app}/features/friends/actions/friends.server.ts (100%) rename {app => apps/web-react/app}/features/friends/components/FriendMenu.tsx (100%) rename {app => apps/web-react/app}/features/friends/friends-constants.ts (100%) rename {app => apps/web-react/app}/features/friends/friends-schemas.server.ts (100%) rename {app => apps/web-react/app}/features/friends/friends-schemas.ts (100%) rename {app => apps/web-react/app}/features/friends/friends-search-params.test.ts (100%) rename {app => apps/web-react/app}/features/friends/friends-search-params.ts (100%) rename {app => apps/web-react/app}/features/friends/friends-utils.server.ts (100%) rename {app => apps/web-react/app}/features/friends/loaders/friends.server.ts (100%) rename {app => apps/web-react/app}/features/friends/routes/friends.module.css (100%) rename {app => apps/web-react/app}/features/friends/routes/friends.tsx (100%) rename {app => apps/web-react/app}/features/front-page/components/PWAInstallBanner.module.css (100%) rename {app => apps/web-react/app}/features/front-page/components/PWAInstallBanner.tsx (100%) rename {app => apps/web-react/app}/features/front-page/components/SplatoonRotations.module.css (100%) rename {app => apps/web-react/app}/features/front-page/components/SplatoonRotations.tsx (100%) rename {app => apps/web-react/app}/features/front-page/core/Changelog.server.ts (100%) rename {app => apps/web-react/app}/features/front-page/core/ShowcaseTournaments.server.ts (100%) rename {app => apps/web-react/app}/features/front-page/loaders/index.server.ts (100%) rename {app => apps/web-react/app}/features/front-page/routes/index.tsx (100%) rename {app => apps/web-react/app}/features/front-page/routes/patrons-list.ts (100%) rename {app => apps/web-react/app}/features/img-export/components/BuildGraphic.module.css (100%) rename {app => apps/web-react/app}/features/img-export/components/BuildGraphic.tsx (100%) rename {app => apps/web-react/app}/features/img-export/components/Graphic.module.css (100%) rename {app => apps/web-react/app}/features/img-export/components/Graphic.tsx (100%) rename {app => apps/web-react/app}/features/img-export/components/ImageExportDialog.module.css (100%) rename {app => apps/web-react/app}/features/img-export/components/ImageExportDialog.tsx (100%) rename {app => apps/web-react/app}/features/img-export/components/SeasonSummaryGraphic.module.css (100%) rename {app => apps/web-react/app}/features/img-export/components/SeasonSummaryGraphic.tsx (100%) rename {app => apps/web-react/app}/features/img-export/components/TournamentResultsGraphic.module.css (100%) rename {app => apps/web-react/app}/features/img-export/components/TournamentResultsGraphic.tsx (100%) rename {app => apps/web-react/app}/features/img-export/components/TournamentRunGraphic.module.css (100%) rename {app => apps/web-react/app}/features/img-export/components/TournamentRunGraphic.tsx (100%) rename {app => apps/web-react/app}/features/img-export/core/RunComps.test.ts (100%) rename {app => apps/web-react/app}/features/img-export/core/RunComps.ts (100%) rename {app => apps/web-react/app}/features/img-export/core/SeasonSummary.test.ts (100%) rename {app => apps/web-react/app}/features/img-export/core/SeasonSummary.ts (100%) rename {app => apps/web-react/app}/features/img-upload/ImageRepository.server.test.ts (100%) rename {app => apps/web-react/app}/features/img-upload/ImageRepository.server.ts (100%) rename {app => apps/web-react/app}/features/img-upload/actions/upload.admin.server.ts (100%) rename {app => apps/web-react/app}/features/img-upload/image-bytes.server.ts (100%) rename {app => apps/web-react/app}/features/img-upload/image-field.server.ts (100%) rename {app => apps/web-react/app}/features/img-upload/loaders/upload.admin.server.ts (100%) rename {app => apps/web-react/app}/features/img-upload/routes/upload.admin.tsx (100%) rename {app => apps/web-react/app}/features/img-upload/s3.server.ts (100%) rename {app => apps/web-react/app}/features/img-upload/upload-constants.ts (100%) rename {app => apps/web-react/app}/features/img-upload/upload-schemas.ts (100%) rename {app => apps/web-react/app}/features/info/routes/contributions.tsx (100%) rename {app => apps/web-react/app}/features/info/routes/faq.module.css (100%) rename {app => apps/web-react/app}/features/info/routes/faq.tsx (100%) rename {app => apps/web-react/app}/features/info/routes/support.module.css (100%) rename {app => apps/web-react/app}/features/info/routes/support.tsx (100%) rename {app => apps/web-react/app}/features/info/routes/welcome.module.css (100%) rename {app => apps/web-react/app}/features/info/routes/welcome.tsx (100%) rename {app => apps/web-react/app}/features/layout/LayoutDataProvider.tsx (100%) rename {app => apps/web-react/app}/features/layout/core/layout.server.ts (100%) rename {app => apps/web-react/app}/features/layout/core/sidenav-session.server.ts (100%) rename {app => apps/web-react/app}/features/layout/routes/api.layout.ts (100%) rename {app => apps/web-react/app}/features/layout/routes/sidenav.ts (100%) rename {app => apps/web-react/app}/features/leaderboards/LeaderboardRepository.server.test.ts (100%) rename {app => apps/web-react/app}/features/leaderboards/LeaderboardRepository.server.ts (100%) rename {app => apps/web-react/app}/features/leaderboards/actions/leaderboards.server.ts (100%) rename {app => apps/web-react/app}/features/leaderboards/components/TopTenPlayer.module.css (100%) rename {app => apps/web-react/app}/features/leaderboards/components/TopTenPlayer.tsx (100%) rename {app => apps/web-react/app}/features/leaderboards/core/leaderboards.server.test.ts (100%) rename {app => apps/web-react/app}/features/leaderboards/core/leaderboards.server.ts (100%) rename {app => apps/web-react/app}/features/leaderboards/leaderboards-constants.ts (100%) rename {app => apps/web-react/app}/features/leaderboards/leaderboards-schemas.ts (100%) rename {app => apps/web-react/app}/features/leaderboards/leaderboards-search-params.test.ts (100%) rename {app => apps/web-react/app}/features/leaderboards/leaderboards-search-params.ts (100%) rename {app => apps/web-react/app}/features/leaderboards/leaderboards-urls.test.ts (100%) rename {app => apps/web-react/app}/features/leaderboards/leaderboards-urls.ts (100%) rename {app => apps/web-react/app}/features/leaderboards/leaderboards-utils.ts (100%) rename {app => apps/web-react/app}/features/leaderboards/loaders/leaderboards.server.ts (100%) rename {app => apps/web-react/app}/features/leaderboards/routes/leaderboards.browser.test.tsx (100%) rename {app => apps/web-react/app}/features/leaderboards/routes/leaderboards.module.css (100%) rename {app => apps/web-react/app}/features/leaderboards/routes/leaderboards.tsx (100%) rename {app => apps/web-react/app}/features/leaderboards/top-ten.json (100%) rename {app => apps/web-react/app}/features/lfg/LFGRepository.server.test.ts (100%) rename {app => apps/web-react/app}/features/lfg/LFGRepository.server.ts (100%) rename {app => apps/web-react/app}/features/lfg/actions/lfg.new.server.ts (100%) rename {app => apps/web-react/app}/features/lfg/actions/lfg.server.ts (100%) rename {app => apps/web-react/app}/features/lfg/components/LFGPost.module.css (100%) rename {app => apps/web-react/app}/features/lfg/components/LFGPost.tsx (100%) rename {app => apps/web-react/app}/features/lfg/core/filtering.test.ts (100%) rename {app => apps/web-react/app}/features/lfg/core/filtering.ts (100%) rename {app => apps/web-react/app}/features/lfg/core/timezone.test.ts (100%) rename {app => apps/web-react/app}/features/lfg/core/timezone.ts (100%) rename {app => apps/web-react/app}/features/lfg/lfg-constants.ts (100%) rename {app => apps/web-react/app}/features/lfg/lfg-schemas.ts (100%) rename {app => apps/web-react/app}/features/lfg/lfg-search-params.test.ts (100%) rename {app => apps/web-react/app}/features/lfg/lfg-search-params.ts (100%) rename {app => apps/web-react/app}/features/lfg/lfg-types.ts (100%) rename {app => apps/web-react/app}/features/lfg/lfg-urls.ts (100%) rename {app => apps/web-react/app}/features/lfg/loaders/lfg.new.server.ts (100%) rename {app => apps/web-react/app}/features/lfg/loaders/lfg.server.test.ts (100%) rename {app => apps/web-react/app}/features/lfg/loaders/lfg.server.ts (100%) rename {app => apps/web-react/app}/features/lfg/routes/lfg.module.css (100%) rename {app => apps/web-react/app}/features/lfg/routes/lfg.new.tsx (100%) rename {app => apps/web-react/app}/features/lfg/routes/lfg.tsx (100%) rename {app => apps/web-react/app}/features/links/links.json (100%) rename {app => apps/web-react/app}/features/links/routes/links.module.css (100%) rename {app => apps/web-react/app}/features/links/routes/links.tsx (100%) rename {app => apps/web-react/app}/features/live-streams/LiveStreamRepository.server.ts (100%) rename {app => apps/web-react/app}/features/map-list-generator/core/MapList.test.ts (100%) rename {app => apps/web-react/app}/features/map-list-generator/core/MapList.ts (100%) rename {app => apps/web-react/app}/features/map-list-generator/core/map-pool-serializer/serializer.test.ts (100%) rename {app => apps/web-react/app}/features/map-list-generator/core/map-pool-serializer/serializer.ts (100%) rename {app => apps/web-react/app}/features/map-list-generator/core/map-pool-serializer/types.ts (100%) rename {app => apps/web-react/app}/features/map-list-generator/core/map-pool.ts (100%) rename {app => apps/web-react/app}/features/map-list-generator/map-list-generator-search-params.test.ts (100%) rename {app => apps/web-react/app}/features/map-list-generator/map-list-generator-search-params.ts (100%) rename {app => apps/web-react/app}/features/map-list-generator/map-list-generator-urls.ts (100%) rename {app => apps/web-react/app}/features/map-list-generator/routes/maps.module.css (100%) rename {app => apps/web-react/app}/features/map-list-generator/routes/maps.tsx (100%) rename {app => apps/web-react/app}/features/map-planner/components/Planner.module.css (100%) rename {app => apps/web-react/app}/features/map-planner/components/Planner.tsx (100%) rename {app => apps/web-react/app}/features/map-planner/plans-global.css (100%) rename {app => apps/web-react/app}/features/map-planner/plans-types.ts (100%) rename {app => apps/web-react/app}/features/map-planner/routes/plans.tsx (100%) rename {app => apps/web-react/app}/features/match-page-test/routes/match-page-test.tsx (100%) rename {app => apps/web-react/app}/features/match-profile/MatchProfileRepository.server.test.ts (100%) rename {app => apps/web-react/app}/features/match-profile/MatchProfileRepository.server.ts (100%) rename {app => apps/web-react/app}/features/match-profile/banned-maps.ts (100%) rename {app => apps/web-react/app}/features/match-profile/match-profile-constants.ts (100%) rename {app => apps/web-react/app}/features/match-profile/routes/q.settings.tsx (100%) rename {app => apps/web-react/app}/features/mmr/SkillRepository.server.ts (100%) rename {app => apps/web-react/app}/features/mmr/components/SeasonSelect.tsx (100%) rename {app => apps/web-react/app}/features/mmr/core/Seasons.test.ts (100%) rename {app => apps/web-react/app}/features/mmr/core/Seasons.ts (100%) rename {app => apps/web-react/app}/features/mmr/mmr-constants.ts (100%) rename {app => apps/web-react/app}/features/mmr/mmr-utils.server.ts (100%) rename {app => apps/web-react/app}/features/mmr/mmr-utils.ts (100%) rename {app => apps/web-react/app}/features/mmr/tiered.server.ts (100%) rename {app => apps/web-react/app}/features/notifications/NotificationRepository.server.test.ts (100%) rename {app => apps/web-react/app}/features/notifications/NotificationRepository.server.ts (100%) rename {app => apps/web-react/app}/features/notifications/NotificationsProvider.tsx (100%) rename {app => apps/web-react/app}/features/notifications/components/NotificationList.module.css (100%) rename {app => apps/web-react/app}/features/notifications/components/NotificationList.tsx (100%) rename {app => apps/web-react/app}/features/notifications/core/notify.server.test.ts (100%) rename {app => apps/web-react/app}/features/notifications/core/notify.server.ts (100%) rename {app => apps/web-react/app}/features/notifications/core/pushSubscription.ts (100%) rename {app => apps/web-react/app}/features/notifications/core/resolve.server.ts (100%) rename {app => apps/web-react/app}/features/notifications/core/webPush.server.ts (100%) rename {app => apps/web-react/app}/features/notifications/loaders/notifications.server.ts (100%) rename {app => apps/web-react/app}/features/notifications/notifications-contants.ts (100%) rename {app => apps/web-react/app}/features/notifications/notifications-hooks.browser.test.tsx (100%) rename {app => apps/web-react/app}/features/notifications/notifications-hooks.ts (100%) rename {app => apps/web-react/app}/features/notifications/notifications-schemas.ts (100%) rename {app => apps/web-react/app}/features/notifications/notifications-types.ts (100%) rename {app => apps/web-react/app}/features/notifications/notifications-utils.ts (100%) rename {app => apps/web-react/app}/features/notifications/routes/api.notifications.ts (100%) rename {app => apps/web-react/app}/features/notifications/routes/notifications.module.css (100%) rename {app => apps/web-react/app}/features/notifications/routes/notifications.seen.ts (100%) rename {app => apps/web-react/app}/features/notifications/routes/notifications.subscribe.ts (100%) rename {app => apps/web-react/app}/features/notifications/routes/notifications.tsx (100%) rename {app => apps/web-react/app}/features/object-damage-calculator/calculator-constants.ts (100%) rename {app => apps/web-react/app}/features/object-damage-calculator/calculator-hooks.ts (100%) rename {app => apps/web-react/app}/features/object-damage-calculator/calculator-search-params.test.ts (100%) rename {app => apps/web-react/app}/features/object-damage-calculator/calculator-search-params.ts (100%) rename {app => apps/web-react/app}/features/object-damage-calculator/calculator-types.ts (100%) rename {app => apps/web-react/app}/features/object-damage-calculator/calculator-urls.ts (100%) rename {app => apps/web-react/app}/features/object-damage-calculator/core/objectDamage.test.ts (100%) rename {app => apps/web-react/app}/features/object-damage-calculator/core/objectDamage.ts (100%) rename {app => apps/web-react/app}/features/object-damage-calculator/core/objectHitPoints.ts (100%) rename {app => apps/web-react/app}/features/object-damage-calculator/data/object-dmg.json (100%) rename {app => apps/web-react/app}/features/object-damage-calculator/routes/object-damage-calculator.module.css (100%) rename {app => apps/web-react/app}/features/object-damage-calculator/routes/object-damage-calculator.tsx (100%) rename {app => apps/web-react/app}/features/params/components/ParamComparisonDialog.module.css (100%) rename {app => apps/web-react/app}/features/params/components/ParamComparisonDialog.tsx (100%) rename {app => apps/web-react/app}/features/params/components/WeaponKits.module.css (100%) rename {app => apps/web-react/app}/features/params/components/WeaponKits.tsx (100%) rename {app => apps/web-react/app}/features/params/components/WeaponParamsTable.module.css (100%) rename {app => apps/web-react/app}/features/params/components/WeaponParamsTable.tsx (100%) rename {app => apps/web-react/app}/features/params/components/WeaponParamsView.module.css (100%) rename {app => apps/web-react/app}/features/params/components/WeaponParamsView.tsx (100%) rename {app => apps/web-react/app}/features/params/components/WeaponPatchHistory.module.css (100%) rename {app => apps/web-react/app}/features/params/components/WeaponPatchHistory.tsx (100%) rename {app => apps/web-react/app}/features/params/core/WeaponParams.test.ts (100%) rename {app => apps/web-react/app}/features/params/core/WeaponParams.ts (100%) rename {app => apps/web-react/app}/features/params/core/param-directions.ts (100%) rename {app => apps/web-react/app}/features/params/core/param-explanations.ts (100%) rename {app => apps/web-react/app}/features/params/data/all-version-special-params.json (100%) rename {app => apps/web-react/app}/features/params/data/all-version-sub-params.json (100%) rename {app => apps/web-react/app}/features/params/data/all-version-weapon-params.json (100%) rename {app => apps/web-react/app}/features/params/data/damage-rate-history.json (100%) rename {app => apps/web-react/app}/features/params/loaders/params.$slug.server.ts (100%) rename {app => apps/web-react/app}/features/params/params-search-params.test.ts (100%) rename {app => apps/web-react/app}/features/params/params-search-params.ts (100%) rename {app => apps/web-react/app}/features/params/routes/params.$slug.tsx (100%) rename {app => apps/web-react/app}/features/params/weapon-params-constants.ts (100%) rename {app => apps/web-react/app}/features/params/weapon-params-types.ts (100%) rename {app => apps/web-react/app}/features/plus-suggestions/PlusSuggestionRepository.server.ts (100%) rename {app => apps/web-react/app}/features/plus-suggestions/actions/plus.suggestions.comment.$tier.$userId.server.ts (100%) rename {app => apps/web-react/app}/features/plus-suggestions/actions/plus.suggestions.new.server.ts (100%) rename {app => apps/web-react/app}/features/plus-suggestions/actions/plus.suggestions.server.ts (100%) rename {app => apps/web-react/app}/features/plus-suggestions/loaders/plus.suggestions.server.ts (100%) rename {app => apps/web-react/app}/features/plus-suggestions/plus-suggestions-constants.ts (100%) rename {app => apps/web-react/app}/features/plus-suggestions/plus-suggestions-schemas.server.ts (100%) rename {app => apps/web-react/app}/features/plus-suggestions/plus-suggestions-schemas.ts (100%) rename {app => apps/web-react/app}/features/plus-suggestions/plus-suggestions-search-params.test.ts (100%) rename {app => apps/web-react/app}/features/plus-suggestions/plus-suggestions-search-params.ts (100%) rename {app => apps/web-react/app}/features/plus-suggestions/plus-suggestions-urls.ts (100%) rename {app => apps/web-react/app}/features/plus-suggestions/plus-suggestions-utils.ts (100%) rename {app => apps/web-react/app}/features/plus-suggestions/plus.module.css (100%) rename {app => apps/web-react/app}/features/plus-suggestions/routes/plus.index.ts (100%) rename {app => apps/web-react/app}/features/plus-suggestions/routes/plus.suggestions.browser.test.tsx (100%) rename {app => apps/web-react/app}/features/plus-suggestions/routes/plus.suggestions.comment.$tier.$userId.tsx (100%) rename {app => apps/web-react/app}/features/plus-suggestions/routes/plus.suggestions.new.tsx (100%) rename {app => apps/web-react/app}/features/plus-suggestions/routes/plus.suggestions.tsx (100%) rename {app => apps/web-react/app}/features/plus-suggestions/routes/plus.tsx (100%) rename {app => apps/web-react/app}/features/plus-voting/PlusVotingRepository.server.ts (100%) rename {app => apps/web-react/app}/features/plus-voting/actions/plus.voting.server.ts (100%) rename {app => apps/web-react/app}/features/plus-voting/core/PlusVoting.test.ts (100%) rename {app => apps/web-react/app}/features/plus-voting/core/PlusVoting.ts (100%) rename {app => apps/web-react/app}/features/plus-voting/core/index.ts (100%) rename {app => apps/web-react/app}/features/plus-voting/core/types.ts (100%) rename {app => apps/web-react/app}/features/plus-voting/core/usePlusVoting.ts (100%) rename {app => apps/web-react/app}/features/plus-voting/core/voting-time.ts (100%) rename {app => apps/web-react/app}/features/plus-voting/loaders/plus.voting.results.server.ts (100%) rename {app => apps/web-react/app}/features/plus-voting/loaders/plus.voting.server.ts (100%) rename {app => apps/web-react/app}/features/plus-voting/plus-voting-constants.ts (100%) rename {app => apps/web-react/app}/features/plus-voting/plus-voting-results.module.css (100%) rename {app => apps/web-react/app}/features/plus-voting/plus-voting-schemas.ts (100%) rename {app => apps/web-react/app}/features/plus-voting/routes/plus.list.ts (100%) rename {app => apps/web-react/app}/features/plus-voting/routes/plus.voting.results.tsx (100%) rename {app => apps/web-react/app}/features/plus-voting/routes/plus.voting.tsx (100%) rename {app => apps/web-react/app}/features/scanner-ingest/ScannerIngestRepository.server.test.ts (100%) rename {app => apps/web-react/app}/features/scanner-ingest/ScannerIngestRepository.server.ts (100%) rename {app => apps/web-react/app}/features/scanner-ingest/actions/scanner-ingest.server.ts (100%) rename {app => apps/web-react/app}/features/scanner-ingest/core/Matches.test.ts (100%) rename {app => apps/web-react/app}/features/scanner-ingest/core/Matches.ts (100%) rename {app => apps/web-react/app}/features/scanner-ingest/core/Scoreboards.test.ts (100%) rename {app => apps/web-react/app}/features/scanner-ingest/core/Scoreboards.ts (100%) rename {app => apps/web-react/app}/features/scanner-ingest/core/VodMatches.test.ts (100%) rename {app => apps/web-react/app}/features/scanner-ingest/core/VodMatches.ts (100%) rename {app => apps/web-react/app}/features/scanner-ingest/core/tests/fixtures.ts (100%) rename {app => apps/web-react/app}/features/scanner-ingest/routes/scanner-ingest.ts (100%) rename {app => apps/web-react/app}/features/scanner-ingest/scanner-ingest-schemas.ts (100%) rename {app => apps/web-react/app}/features/scanner-ingest/scanner-ingest-vod-schemas.ts (100%) rename {app => apps/web-react/app}/features/scanner-ingest/tests/harness.ts (100%) rename {app => apps/web-react/app}/features/scanner-ingest/tests/ingest-scenarios.test.ts (100%) rename {app => apps/web-react/app}/features/scanner/README.md (100%) rename {app => apps/web-react/app}/features/scanner/capture/sampler.ts (100%) rename {app => apps/web-react/app}/features/scanner/capture/ticker.worker.ts (100%) rename {app => apps/web-react/app}/features/scanner/capture/vod-frames.ts (100%) rename {app => apps/web-react/app}/features/scanner/components/AbilityGrid.module.css (100%) rename {app => apps/web-react/app}/features/scanner/components/AbilityGrid.tsx (100%) rename {app => apps/web-react/app}/features/scanner/components/DeathCard.module.css (100%) rename {app => apps/web-react/app}/features/scanner/components/DeathCard.tsx (100%) rename {app => apps/web-react/app}/features/scanner/components/EventCard.module.css (100%) rename {app => apps/web-react/app}/features/scanner/components/EventCard.tsx (100%) rename {app => apps/web-react/app}/features/scanner/components/EventTypeIcon.tsx (100%) rename {app => apps/web-react/app}/features/scanner/components/EventsSummary.module.css (100%) rename {app => apps/web-react/app}/features/scanner/components/EventsSummary.tsx (100%) rename {app => apps/web-react/app}/features/scanner/components/FrameThumb.module.css (100%) rename {app => apps/web-react/app}/features/scanner/components/FrameThumb.tsx (100%) rename {app => apps/web-react/app}/features/scanner/components/LivePage.module.css (100%) rename {app => apps/web-react/app}/features/scanner/components/LivePage.tsx (100%) rename {app => apps/web-react/app}/features/scanner/components/MapStartCard.tsx (100%) rename {app => apps/web-react/app}/features/scanner/components/MatchCard.module.css (100%) rename {app => apps/web-react/app}/features/scanner/components/MatchCard.tsx (100%) rename {app => apps/web-react/app}/features/scanner/components/MatchLobbyTabs.module.css (100%) rename {app => apps/web-react/app}/features/scanner/components/MatchLobbyTabs.tsx (100%) rename {app => apps/web-react/app}/features/scanner/components/MetaChips.module.css (100%) rename {app => apps/web-react/app}/features/scanner/components/MetaChips.tsx (100%) rename {app => apps/web-react/app}/features/scanner/components/MinimapCard.module.css (100%) rename {app => apps/web-react/app}/features/scanner/components/MinimapCard.tsx (100%) rename {app => apps/web-react/app}/features/scanner/components/ObjectiveCard.tsx (100%) rename {app => apps/web-react/app}/features/scanner/components/PlayerStatusCard.tsx (100%) rename {app => apps/web-react/app}/features/scanner/components/ScannerApp.module.css (100%) rename {app => apps/web-react/app}/features/scanner/components/ScannerApp.tsx (100%) rename {app => apps/web-react/app}/features/scanner/components/ScoreboardCard.tsx (100%) rename {app => apps/web-react/app}/features/scanner/components/ScoreboardOwnCard.tsx (100%) rename {app => apps/web-react/app}/features/scanner/components/ScreenshotPage.module.css (100%) rename {app => apps/web-react/app}/features/scanner/components/ScreenshotPage.tsx (100%) rename {app => apps/web-react/app}/features/scanner/components/StripWeaponsCard.tsx (100%) rename {app => apps/web-react/app}/features/scanner/components/VodPage.module.css (100%) rename {app => apps/web-react/app}/features/scanner/components/VodPage.tsx (100%) rename {app => apps/web-react/app}/features/scanner/components/dedupe-events.ts (100%) rename {app => apps/web-react/app}/features/scanner/components/events-csv.ts (100%) rename {app => apps/web-react/app}/features/scanner/components/fixture-export.ts (100%) rename {app => apps/web-react/app}/features/scanner/components/format.ts (100%) rename {app => apps/web-react/app}/features/scanner/components/labels.ts (100%) rename {app => apps/web-react/app}/features/scanner/components/player-status-view.ts (100%) rename {app => apps/web-react/app}/features/scanner/components/sendou-ingest.ts (100%) rename {app => apps/web-react/app}/features/scanner/components/sendou-upload.ts (100%) rename {app => apps/web-react/app}/features/scanner/components/thumbnail.ts (100%) rename {app => apps/web-react/app}/features/scanner/core/ability-harvest.ts (100%) rename {app => apps/web-react/app}/features/scanner/core/canonical.ts (100%) rename {app => apps/web-react/app}/features/scanner/core/cv.ts (100%) rename {app => apps/web-react/app}/features/scanner/core/detectors/death/abilities.ts (100%) rename {app => apps/web-react/app}/features/scanner/core/detectors/death/index.ts (100%) rename {app => apps/web-react/app}/features/scanner/core/detectors/death/localized-messages.ts (100%) rename {app => apps/web-react/app}/features/scanner/core/detectors/death/rois.ts (100%) rename {app => apps/web-react/app}/features/scanner/core/detectors/death/weapon-names.ts (100%) rename {app => apps/web-react/app}/features/scanner/core/detectors/map-start/index.ts (100%) rename {app => apps/web-react/app}/features/scanner/core/detectors/map-start/rois.ts (100%) rename {app => apps/web-react/app}/features/scanner/core/detectors/minimap/abilities.ts (100%) rename {app => apps/web-react/app}/features/scanner/core/detectors/minimap/index.ts (100%) rename {app => apps/web-react/app}/features/scanner/core/detectors/minimap/rois.ts (100%) rename {app => apps/web-react/app}/features/scanner/core/detectors/minimap/stage.ts (100%) rename {app => apps/web-react/app}/features/scanner/core/detectors/objective/index.ts (100%) rename {app => apps/web-react/app}/features/scanner/core/detectors/objective/player-status.ts (100%) rename {app => apps/web-react/app}/features/scanner/core/detectors/objective/rois.ts (100%) rename {app => apps/web-react/app}/features/scanner/core/detectors/objective/strip-weapons.ts (100%) rename {app => apps/web-react/app}/features/scanner/core/detectors/registry.ts (100%) rename {app => apps/web-react/app}/features/scanner/core/detectors/scheduler.ts (100%) rename {app => apps/web-react/app}/features/scanner/core/detectors/scoreboard-battle-log-replay/code.ts (100%) rename {app => apps/web-react/app}/features/scanner/core/detectors/scoreboard-battle-log-replay/header.ts (100%) rename {app => apps/web-react/app}/features/scanner/core/detectors/scoreboard-battle-log-replay/index.ts (100%) rename {app => apps/web-react/app}/features/scanner/core/detectors/scoreboard-battle-log-replay/rois.ts (100%) rename {app => apps/web-react/app}/features/scanner/core/detectors/scoreboard-battle-log/index.ts (100%) rename {app => apps/web-react/app}/features/scanner/core/detectors/scoreboard-battle-log/rois.ts (100%) rename {app => apps/web-react/app}/features/scanner/core/detectors/scoreboard-own/abilities.ts (100%) rename {app => apps/web-react/app}/features/scanner/core/detectors/scoreboard-own/index.ts (100%) rename {app => apps/web-react/app}/features/scanner/core/detectors/scoreboard-own/rois.ts (100%) rename {app => apps/web-react/app}/features/scanner/core/detectors/scoreboard/banner.ts (100%) rename {app => apps/web-react/app}/features/scanner/core/detectors/scoreboard/digits.ts (100%) rename {app => apps/web-react/app}/features/scanner/core/detectors/scoreboard/header.ts (100%) rename {app => apps/web-react/app}/features/scanner/core/detectors/scoreboard/index.ts (100%) rename {app => apps/web-react/app}/features/scanner/core/detectors/scoreboard/kits.ts (100%) rename {app => apps/web-react/app}/features/scanner/core/detectors/scoreboard/names.ts (100%) rename {app => apps/web-react/app}/features/scanner/core/detectors/scoreboard/pov.ts (100%) rename {app => apps/web-react/app}/features/scanner/core/detectors/scoreboard/rois.ts (100%) rename {app => apps/web-react/app}/features/scanner/core/detectors/scoreboard/row.ts (100%) rename {app => apps/web-react/app}/features/scanner/core/detectors/scoreboard/specials.ts (100%) rename {app => apps/web-react/app}/features/scanner/core/detectors/scoreboard/weapons.ts (100%) rename {app => apps/web-react/app}/features/scanner/core/detectors/telemetry.ts (100%) rename {app => apps/web-react/app}/features/scanner/core/detectors/types.ts (100%) rename {app => apps/web-react/app}/features/scanner/core/glyphs.ts (100%) rename {app => apps/web-react/app}/features/scanner/core/image.ts (100%) rename {app => apps/web-react/app}/features/scanner/core/ink-color.ts (100%) rename {app => apps/web-react/app}/features/scanner/core/localized-entries.ts (100%) rename {app => apps/web-react/app}/features/scanner/core/localized.ts (100%) rename {app => apps/web-react/app}/features/scanner/core/match-builder.ts (100%) rename {app => apps/web-react/app}/features/scanner/core/match-sets.ts (100%) rename {app => apps/web-react/app}/features/scanner/core/replay-time.ts (100%) rename {app => apps/web-react/app}/features/scanner/core/resources.ts (100%) rename {app => apps/web-react/app}/features/scanner/core/scanner-match.ts (100%) rename {app => apps/web-react/app}/features/scanner/core/slot-row-assignment.ts (100%) rename {app => apps/web-react/app}/features/scanner/core/text.ts (100%) rename {app => apps/web-react/app}/features/scanner/core/timeline/index.ts (100%) rename {app => apps/web-react/app}/features/scanner/core/timeline/same-scoreboard.ts (100%) rename {app => apps/web-react/app}/features/scanner/node/assets-dir.ts (100%) rename {app => apps/web-react/app}/features/scanner/node/fixtures.ts (100%) rename {app => apps/web-react/app}/features/scanner/node/image-io.ts (100%) rename {app => apps/web-react/app}/features/scanner/node/resources.ts (100%) rename {app => apps/web-react/app}/features/scanner/routes/scanner.tsx (100%) rename {app => apps/web-react/app}/features/scanner/scanner-schemas.ts (100%) rename {app => apps/web-react/app}/features/scanner/scanner-search-params.test.ts (100%) rename {app => apps/web-react/app}/features/scanner/scanner-search-params.ts (100%) rename {app => apps/web-react/app}/features/scanner/scanner-types.ts (100%) rename {app => apps/web-react/app}/features/scanner/scanner.module.css (100%) rename {app => apps/web-react/app}/features/scanner/store/db.ts (100%) rename {app => apps/web-react/app}/features/scanner/store/events.ts (100%) rename {app => apps/web-react/app}/features/scanner/store/inspect.ts (100%) rename {app => apps/web-react/app}/features/scanner/store/vods.browser.test.ts (100%) rename {app => apps/web-react/app}/features/scanner/store/vods.ts (100%) rename {app => apps/web-react/app}/features/scanner/tests/ability-harvest.test.ts (100%) rename {app => apps/web-react/app}/features/scanner/tests/banner.test.ts (100%) rename {app => apps/web-react/app}/features/scanner/tests/death.1.test.ts (100%) rename {app => apps/web-react/app}/features/scanner/tests/death.2.test.ts (100%) rename {app => apps/web-react/app}/features/scanner/tests/death.3.test.ts (100%) rename {app => apps/web-react/app}/features/scanner/tests/fixtures/death/classic-squiffer-jp/expected.json (100%) rename {app => apps/web-react/app}/features/scanner/tests/fixtures/death/classic-squiffer-jp/frame.png (100%) rename {app => apps/web-react/app}/features/scanner/tests/fixtures/death/colorful-splashtag/expected.json (100%) rename {app => apps/web-react/app}/features/scanner/tests/fixtures/death/colorful-splashtag/frame.png (100%) rename {app => apps/web-react/app}/features/scanner/tests/fixtures/death/e-liter-4k-jp-720p/expected.json (100%) rename {app => apps/web-react/app}/features/scanner/tests/fixtures/death/e-liter-4k-jp-720p/frame.png (100%) rename {app => apps/web-react/app}/features/scanner/tests/fixtures/death/fxg-supaatan-slosher/expected.json (100%) rename {app => apps/web-react/app}/features/scanner/tests/fixtures/death/fxg-supaatan-slosher/frame.png (100%) rename {app => apps/web-react/app}/features/scanner/tests/fixtures/death/german-booyah-bomb/expected.json (100%) rename {app => apps/web-react/app}/features/scanner/tests/fixtures/death/german-booyah-bomb/frame.png (100%) rename {app => apps/web-react/app}/features/scanner/tests/fixtures/death/headphones/expected.json (100%) rename {app => apps/web-react/app}/features/scanner/tests/fixtures/death/headphones/frame.png (100%) rename {app => apps/web-react/app}/features/scanner/tests/fixtures/death/pink-text-special/expected.json (100%) rename {app => apps/web-react/app}/features/scanner/tests/fixtures/death/pink-text-special/frame.png (100%) rename {app => apps/web-react/app}/features/scanner/tests/fixtures/death/rapid-blaster-deco-heavy-kez/expected.json (100%) rename {app => apps/web-react/app}/features/scanner/tests/fixtures/death/rapid-blaster-deco-heavy-kez/frame.jpg (100%) rename {app => apps/web-react/app}/features/scanner/tests/fixtures/death/splattershot-tezuka/expected.json (100%) rename {app => apps/web-react/app}/features/scanner/tests/fixtures/death/splattershot-tezuka/frame.jpg (100%) rename {app => apps/web-react/app}/features/scanner/tests/fixtures/death/ultra-stamp-jp-720p/expected.json (100%) rename {app => apps/web-react/app}/features/scanner/tests/fixtures/death/ultra-stamp-jp-720p/frame.png (100%) rename {app => apps/web-react/app}/features/scanner/tests/fixtures/death/wipeout-52-gal/expected.json (100%) rename {app => apps/web-react/app}/features/scanner/tests/fixtures/death/wipeout-52-gal/frame.png (100%) rename {app => apps/web-react/app}/features/scanner/tests/fixtures/death/z-f-splatterscope-vod/expected.json (100%) rename {app => apps/web-react/app}/features/scanner/tests/fixtures/death/z-f-splatterscope-vod/frame.png (100%) rename {app => apps/web-react/app}/features/scanner/tests/fixtures/map-start/german-splat-zones-robo-rom-en/expected.json (100%) rename {app => apps/web-react/app}/features/scanner/tests/fixtures/map-start/german-splat-zones-robo-rom-en/frame.png (100%) rename {app => apps/web-react/app}/features/scanner/tests/fixtures/map-start/splat-zones-mahi/expected.json (100%) rename {app => apps/web-react/app}/features/scanner/tests/fixtures/map-start/splat-zones-mahi/frame.png (100%) rename {app => apps/web-react/app}/features/scanner/tests/fixtures/map-start/splat-zones-undertow-spillway/expected.json (100%) rename {app => apps/web-react/app}/features/scanner/tests/fixtures/map-start/splat-zones-undertow-spillway/frame.png (100%) rename {app => apps/web-react/app}/features/scanner/tests/fixtures/minimap/pov-umami-map-open-phantom-splats/expected.json (100%) rename {app => apps/web-react/app}/features/scanner/tests/fixtures/minimap/pov-umami-map-open-phantom-splats/frame.png (100%) rename {app => apps/web-react/app}/features/scanner/tests/fixtures/minimap/snix-special-ready/expected.json (100%) rename {app => apps/web-react/app}/features/scanner/tests/fixtures/minimap/snix-special-ready/frame.png (100%) rename {app => apps/web-react/app}/features/scanner/tests/fixtures/minimap/spectator-area-cup-round1/expected.json (100%) rename {app => apps/web-react/app}/features/scanner/tests/fixtures/minimap/spectator-area-cup-round1/frame.jpg (100%) rename {app => apps/web-react/app}/features/scanner/tests/fixtures/minimap/spectator-area-cup-winners-qf/expected.json (100%) rename {app => apps/web-react/app}/features/scanner/tests/fixtures/minimap/spectator-area-cup-winners-qf/frame.png (100%) rename {app => apps/web-react/app}/features/scanner/tests/fixtures/minimap/spectator-pxg/expected.json (100%) rename {app => apps/web-react/app}/features/scanner/tests/fixtures/minimap/spectator-pxg/frame.png (100%) rename {app => apps/web-react/app}/features/scanner/tests/fixtures/minimap/spectator-sws26-swiss/expected.json (100%) rename {app => apps/web-react/app}/features/scanner/tests/fixtures/minimap/spectator-sws26-swiss/frame.png (100%) rename {app => apps/web-react/app}/features/scanner/tests/fixtures/minimap/stonks-cross-both-teams/expected.json (100%) rename {app => apps/web-react/app}/features/scanner/tests/fixtures/minimap/stonks-cross-both-teams/frame.jpg (100%) rename {app => apps/web-react/app}/features/scanner/tests/fixtures/objective/splat-zones-barnacle-dime-bright-plate/expected.json (100%) rename {app => apps/web-react/app}/features/scanner/tests/fixtures/objective/splat-zones-barnacle-dime-bright-plate/frame.png (100%) rename {app => apps/web-react/app}/features/scanner/tests/fixtures/objective/splat-zones-barnacle-dime-double-penalty/expected.json (100%) rename {app => apps/web-react/app}/features/scanner/tests/fixtures/objective/splat-zones-barnacle-dime-double-penalty/frame.png (100%) rename {app => apps/web-react/app}/features/scanner/tests/fixtures/objective/splat-zones-barnacle-dime-penalty/expected.json (100%) rename {app => apps/web-react/app}/features/scanner/tests/fixtures/objective/splat-zones-barnacle-dime-penalty/frame.png (100%) rename {app => apps/web-react/app}/features/scanner/tests/fixtures/objective/splat-zones-barnacle-dime-start/expected.json (100%) rename {app => apps/web-react/app}/features/scanner/tests/fixtures/objective/splat-zones-barnacle-dime-start/frame.png (100%) rename {app => apps/web-react/app}/features/scanner/tests/fixtures/objective/splat-zones-cast-lime-control-blur-left/expected.json (100%) rename {app => apps/web-react/app}/features/scanner/tests/fixtures/objective/splat-zones-cast-lime-control-blur-left/frame.png (100%) rename {app => apps/web-react/app}/features/scanner/tests/fixtures/objective/splat-zones-cast-lime-control-blur-right/expected.json (100%) rename {app => apps/web-react/app}/features/scanner/tests/fixtures/objective/splat-zones-cast-lime-control-blur-right/frame.png (100%) rename {app => apps/web-react/app}/features/scanner/tests/fixtures/objective/splat-zones-cast-overhead-purple-right/expected.json (100%) rename {app => apps/web-react/app}/features/scanner/tests/fixtures/objective/splat-zones-cast-overhead-purple-right/frame.png (100%) rename {app => apps/web-react/app}/features/scanner/tests/fixtures/objective/splat-zones-cast-specced-purple-left/expected.json (100%) rename {app => apps/web-react/app}/features/scanner/tests/fixtures/objective/splat-zones-cast-specced-purple-left/frame.png (100%) rename {app => apps/web-react/app}/features/scanner/tests/fixtures/objective/splat-zones-mako-mart/expected.json (100%) rename {app => apps/web-react/app}/features/scanner/tests/fixtures/objective/splat-zones-mako-mart/frame.png (100%) rename {app => apps/web-react/app}/features/scanner/tests/fixtures/player-status/cast-areacup-badgeless-all-alive/expected.json (100%) rename {app => apps/web-react/app}/features/scanner/tests/fixtures/player-status/cast-areacup-badgeless-all-alive/frame.png (100%) rename {app => apps/web-react/app}/features/scanner/tests/fixtures/player-status/cast-areacup-false-splat-on-alive-outer-slot/expected.json (100%) rename {app => apps/web-react/app}/features/scanner/tests/fixtures/player-status/cast-areacup-false-splat-on-alive-outer-slot/frame.png (100%) rename {app => apps/web-react/app}/features/scanner/tests/fixtures/player-status/cast-areacup-gauge-overlay-outer-splat-dark/expected.json (100%) rename {app => apps/web-react/app}/features/scanner/tests/fixtures/player-status/cast-areacup-gauge-overlay-outer-splat-dark/frame.png (100%) rename {app => apps/web-react/app}/features/scanner/tests/fixtures/player-status/cast-areacup-gauge-overlay-outer-splat-sky/expected.json (100%) rename {app => apps/web-react/app}/features/scanner/tests/fixtures/player-status/cast-areacup-gauge-overlay-outer-splat-sky/frame.png (100%) rename {app => apps/web-react/app}/features/scanner/tests/fixtures/player-status/cast-areacup-gauge-overlay-ready-wash/expected.json (100%) rename {app => apps/web-react/app}/features/scanner/tests/fixtures/player-status/cast-areacup-gauge-overlay-ready-wash/frame.png (100%) rename {app => apps/web-react/app}/features/scanner/tests/fixtures/player-status/cast-areacup-mirror-gauge-overlay-false-star-after-respawn/expected.json (100%) rename {app => apps/web-react/app}/features/scanner/tests/fixtures/player-status/cast-areacup-mirror-gauge-overlay-false-star-after-respawn/frame.png (100%) rename {app => apps/web-react/app}/features/scanner/tests/fixtures/player-status/cast-areacup-mirror-gauge-overlay-ready-spent/expected.json (100%) rename {app => apps/web-react/app}/features/scanner/tests/fixtures/player-status/cast-areacup-mirror-gauge-overlay-ready-spent/frame.png (100%) rename {app => apps/web-react/app}/features/scanner/tests/fixtures/player-status/cast-areacup-mirror-overhead-splat-each-side/expected.json (100%) rename {app => apps/web-react/app}/features/scanner/tests/fixtures/player-status/cast-areacup-mirror-overhead-splat-each-side/frame.png (100%) rename {app => apps/web-react/app}/features/scanner/tests/fixtures/player-status/cast-areacup-overhead-lead-banner-alive/expected.json (100%) rename {app => apps/web-react/app}/features/scanner/tests/fixtures/player-status/cast-areacup-overhead-lead-banner-alive/frame.png (100%) rename {app => apps/web-react/app}/features/scanner/tests/fixtures/player-status/cast-areacup-overhead-pale-backdrop-alive/expected.json (100%) rename {app => apps/web-react/app}/features/scanner/tests/fixtures/player-status/cast-areacup-overhead-pale-backdrop-alive/frame.png (100%) rename {app => apps/web-react/app}/features/scanner/tests/fixtures/player-status/cast-areacup-overhead-ready-wash/expected.json (100%) rename {app => apps/web-react/app}/features/scanner/tests/fixtures/player-status/cast-areacup-overhead-ready-wash/frame.png (100%) rename {app => apps/web-react/app}/features/scanner/tests/fixtures/player-status/cast-areacup-overhead-wash-read-as-pov/expected.json (100%) rename {app => apps/web-react/app}/features/scanner/tests/fixtures/player-status/cast-areacup-overhead-wash-read-as-pov/frame.png (100%) rename {app => apps/web-react/app}/features/scanner/tests/fixtures/player-status/cast-areacup-ready-trough-two-dead/expected.json (100%) rename {app => apps/web-react/app}/features/scanner/tests/fixtures/player-status/cast-areacup-ready-trough-two-dead/frame.png (100%) rename {app => apps/web-react/app}/features/scanner/tests/fixtures/player-status/cast-areacup-splat-on-inked-backdrop/expected.json (100%) rename {app => apps/web-react/app}/features/scanner/tests/fixtures/player-status/cast-areacup-splat-on-inked-backdrop/frame.png (100%) rename {app => apps/web-react/app}/features/scanner/tests/fixtures/player-status/cast-sws26-three-dead-one-special/expected.json (100%) rename {app => apps/web-react/app}/features/scanner/tests/fixtures/player-status/cast-sws26-three-dead-one-special/frame.png (100%) rename {app => apps/web-react/app}/features/scanner/tests/fixtures/player-status/cast-triton-false-star-at-match-start/expected.json (100%) rename {app => apps/web-react/app}/features/scanner/tests/fixtures/player-status/cast-triton-false-star-at-match-start/frame.png (100%) rename {app => apps/web-react/app}/features/scanner/tests/fixtures/player-status/cast-triton-layout-flip-pov-misreads-right-team/expected.json (100%) rename {app => apps/web-react/app}/features/scanner/tests/fixtures/player-status/cast-triton-layout-flip-pov-misreads-right-team/frame.png (100%) rename {app => apps/web-react/app}/features/scanner/tests/fixtures/player-status/cast-triton-phantom-splat-on-alive-slot/expected.json (100%) rename {app => apps/web-react/app}/features/scanner/tests/fixtures/player-status/cast-triton-phantom-splat-on-alive-slot/frame.png (100%) rename {app => apps/web-react/app}/features/scanner/tests/fixtures/player-status/pov-umami-phantom-star-right-slot0/expected.json (100%) rename {app => apps/web-react/app}/features/scanner/tests/fixtures/player-status/pov-umami-phantom-star-right-slot0/frame.png (100%) rename {app => apps/web-react/app}/features/scanner/tests/fixtures/player-status/pov-umami-three-splats-cast-geometry/expected.json (100%) rename {app => apps/web-react/app}/features/scanner/tests/fixtures/player-status/pov-umami-three-splats-cast-geometry/frame.png (100%) rename {app => apps/web-react/app}/features/scanner/tests/fixtures/player-status/pov-wahoo-world-special-dead/expected.json (100%) rename {app => apps/web-react/app}/features/scanner/tests/fixtures/player-status/pov-wahoo-world-special-dead/frame.png (100%) rename {app => apps/web-react/app}/features/scanner/tests/fixtures/scoreboard-battle-log-replay/anarchy-open-rainmaker-knockout-museum/expected.json (100%) rename {app => apps/web-react/app}/features/scanner/tests/fixtures/scoreboard-battle-log-replay/anarchy-open-rainmaker-knockout-museum/frame.png (100%) rename {app => apps/web-react/app}/features/scanner/tests/fixtures/scoreboard-battle-log-replay/french-eeltail-alley/expected.json (100%) rename {app => apps/web-react/app}/features/scanner/tests/fixtures/scoreboard-battle-log-replay/french-eeltail-alley/frame.png (100%) rename {app => apps/web-react/app}/features/scanner/tests/fixtures/scoreboard-battle-log-replay/low-res-2/expected.json (100%) rename {app => apps/web-react/app}/features/scanner/tests/fixtures/scoreboard-battle-log-replay/low-res-2/frame.png (100%) rename {app => apps/web-react/app}/features/scanner/tests/fixtures/scoreboard-battle-log-replay/low-res/expected.json (100%) rename {app => apps/web-react/app}/features/scanner/tests/fixtures/scoreboard-battle-log-replay/low-res/frame.png (100%) rename {app => apps/web-react/app}/features/scanner/tests/fixtures/scoreboard-battle-log-replay/private-battle-crableg-capital/expected.json (100%) rename {app => apps/web-react/app}/features/scanner/tests/fixtures/scoreboard-battle-log-replay/private-battle-crableg-capital/frame.png (100%) rename {app => apps/web-react/app}/features/scanner/tests/fixtures/scoreboard-battle-log-replay/private-battle-makomart/expected.json (100%) rename {app => apps/web-react/app}/features/scanner/tests/fixtures/scoreboard-battle-log-replay/private-battle-makomart/frame.png (100%) rename {app => apps/web-react/app}/features/scanner/tests/fixtures/scoreboard-battle-log-replay/private-battle-splat-zones-hagglefish/expected.json (100%) rename {app => apps/web-react/app}/features/scanner/tests/fixtures/scoreboard-battle-log-replay/private-battle-splat-zones-hagglefish/frame.jpeg (100%) rename {app => apps/web-react/app}/features/scanner/tests/fixtures/scoreboard-battle-log-replay/private-battle-splat-zones-marlin/expected.json (100%) rename {app => apps/web-react/app}/features/scanner/tests/fixtures/scoreboard-battle-log-replay/private-battle-splat-zones-marlin/frame.png (100%) rename {app => apps/web-react/app}/features/scanner/tests/fixtures/scoreboard-battle-log-replay/x-battle-rainmaker-brinewater-1404/expected.json (100%) rename {app => apps/web-react/app}/features/scanner/tests/fixtures/scoreboard-battle-log-replay/x-battle-rainmaker-brinewater-1404/frame.png (100%) rename {app => apps/web-react/app}/features/scanner/tests/fixtures/scoreboard-battle-log-replay/x-battle-rainmaker-brinewater-1411/expected.json (100%) rename {app => apps/web-react/app}/features/scanner/tests/fixtures/scoreboard-battle-log-replay/x-battle-rainmaker-brinewater-1411/frame.png (100%) rename {app => apps/web-react/app}/features/scanner/tests/fixtures/scoreboard-battle-log-replay/x-battle-rainmaker-brinewater-1416/expected.json (100%) rename {app => apps/web-react/app}/features/scanner/tests/fixtures/scoreboard-battle-log-replay/x-battle-rainmaker-brinewater-1416/frame.png (100%) rename {app => apps/web-react/app}/features/scanner/tests/fixtures/scoreboard-battle-log-replay/x-battle-rainmaker-brinewater-1422/expected.json (100%) rename {app => apps/web-react/app}/features/scanner/tests/fixtures/scoreboard-battle-log-replay/x-battle-rainmaker-brinewater-1422/frame.png (100%) rename {app => apps/web-react/app}/features/scanner/tests/fixtures/scoreboard-battle-log-replay/x-battle-rainmaker-urchin-1434/expected.json (100%) rename {app => apps/web-react/app}/features/scanner/tests/fixtures/scoreboard-battle-log-replay/x-battle-rainmaker-urchin-1434/frame.png (100%) rename {app => apps/web-react/app}/features/scanner/tests/fixtures/scoreboard-battle-log/private-battle-rainmaker-lemuria-hub/expected.json (100%) rename {app => apps/web-react/app}/features/scanner/tests/fixtures/scoreboard-battle-log/private-battle-rainmaker-lemuria-hub/frame.png (100%) rename {app => apps/web-react/app}/features/scanner/tests/fixtures/scoreboard-battle-log/private-battle-splat-zones-makomart/expected.json (100%) rename {app => apps/web-react/app}/features/scanner/tests/fixtures/scoreboard-battle-log/private-battle-splat-zones-makomart/frame.png (100%) rename {app => apps/web-react/app}/features/scanner/tests/fixtures/scoreboard-battle-log/private-battle-splat-zones-robo-rom-en/expected.json (100%) rename {app => apps/web-react/app}/features/scanner/tests/fixtures/scoreboard-battle-log/private-battle-splat-zones-robo-rom-en/frame.png (100%) rename {app => apps/web-react/app}/features/scanner/tests/fixtures/scoreboard-battle-log/private-battle-splat-zones-wahoo-world/expected.json (100%) rename {app => apps/web-react/app}/features/scanner/tests/fixtures/scoreboard-battle-log/private-battle-splat-zones-wahoo-world/frame.png (100%) rename {app => apps/web-react/app}/features/scanner/tests/fixtures/scoreboard-battle-log/x-battle-clam-blitz-lemuria/expected.json (100%) rename {app => apps/web-react/app}/features/scanner/tests/fixtures/scoreboard-battle-log/x-battle-clam-blitz-lemuria/frame.png (100%) rename {app => apps/web-react/app}/features/scanner/tests/fixtures/scoreboard-own/order-slosher-replica/expected.json (100%) rename {app => apps/web-react/app}/features/scanner/tests/fixtures/scoreboard-own/order-slosher-replica/frame.png (100%) rename {app => apps/web-react/app}/features/scanner/tests/fixtures/scoreboard-own/private-battle-splat-zones-museum/expected.json (100%) rename {app => apps/web-react/app}/features/scanner/tests/fixtures/scoreboard-own/private-battle-splat-zones-museum/frame.png (100%) rename {app => apps/web-react/app}/features/scanner/tests/fixtures/scoreboard/german-private-battle-clam-blitz/expected.json (100%) rename {app => apps/web-react/app}/features/scanner/tests/fixtures/scoreboard/german-private-battle-clam-blitz/frame.png (100%) rename {app => apps/web-react/app}/features/scanner/tests/fixtures/scoreboard/private-battle-splat-zones-ko-hagglefish/expected.json (100%) rename {app => apps/web-react/app}/features/scanner/tests/fixtures/scoreboard/private-battle-splat-zones-ko-hagglefish/frame.png (100%) rename {app => apps/web-react/app}/features/scanner/tests/fixtures/scoreboard/private-battle-splat-zones-ko-kera-2/expected.json (100%) rename {app => apps/web-react/app}/features/scanner/tests/fixtures/scoreboard/private-battle-splat-zones-ko-kera-2/frame.png (100%) rename {app => apps/web-react/app}/features/scanner/tests/fixtures/scoreboard/private-battle-splat-zones-ko-kera/expected.json (100%) rename {app => apps/web-react/app}/features/scanner/tests/fixtures/scoreboard/private-battle-splat-zones-ko-kera/frame.png (100%) rename {app => apps/web-react/app}/features/scanner/tests/fixtures/scoreboard/private-battle-splat-zones-umami/expected.json (100%) rename {app => apps/web-react/app}/features/scanner/tests/fixtures/scoreboard/private-battle-splat-zones-umami/frame.png (100%) rename {app => apps/web-react/app}/features/scanner/tests/fixtures/scoreboard/private-battle-triton-cup-154-sendou/expected.json (100%) rename {app => apps/web-react/app}/features/scanner/tests/fixtures/scoreboard/private-battle-triton-cup-154-sendou/frame.png (100%) rename {app => apps/web-react/app}/features/scanner/tests/fixtures/scoreboard/robot/expected.json (100%) rename {app => apps/web-react/app}/features/scanner/tests/fixtures/scoreboard/robot/frame.png (100%) rename {app => apps/web-react/app}/features/scanner/tests/fixtures/scoreboard/special-symbols/expected.json (100%) rename {app => apps/web-react/app}/features/scanner/tests/fixtures/scoreboard/special-symbols/frame.png (100%) rename {app => apps/web-react/app}/features/scanner/tests/fixtures/scoreboard/splash-sploosh/expected.json (100%) rename {app => apps/web-react/app}/features/scanner/tests/fixtures/scoreboard/splash-sploosh/frame.png (100%) rename {app => apps/web-react/app}/features/scanner/tests/fixtures/scoreboard/xbattle-splat-zones-ko-capture/expected.json (100%) rename {app => apps/web-react/app}/features/scanner/tests/fixtures/scoreboard/xbattle-splat-zones-ko-capture/frame.png (100%) rename {app => apps/web-react/app}/features/scanner/tests/fixtures/scoreboard/xbattle-splat-zones-ko/expected.json (100%) rename {app => apps/web-react/app}/features/scanner/tests/fixtures/scoreboard/xbattle-splat-zones-ko/frame.jpg (100%) rename {app => apps/web-react/app}/features/scanner/tests/fixtures/strip-weapons/triton-mahi-allalive-4m33/expected.json (100%) rename {app => apps/web-react/app}/features/scanner/tests/fixtures/strip-weapons/triton-mahi-allalive-4m33/frame.png (100%) rename {app => apps/web-react/app}/features/scanner/tests/fixtures/strip-weapons/triton-mahi-allalive-4m59/expected.json (100%) rename {app => apps/web-react/app}/features/scanner/tests/fixtures/strip-weapons/triton-mahi-allalive-4m59/frame.png (100%) rename {app => apps/web-react/app}/features/scanner/tests/fixtures/strip-weapons/triton-mahi-twodead-4m17/expected.json (100%) rename {app => apps/web-react/app}/features/scanner/tests/fixtures/strip-weapons/triton-mahi-twodead-4m17/frame.png (100%) rename {app => apps/web-react/app}/features/scanner/tests/logic/dedupe-events.test.ts (100%) rename {app => apps/web-react/app}/features/scanner/tests/logic/match-builder.test.ts (100%) rename {app => apps/web-react/app}/features/scanner/tests/logic/match-sets.test.ts (100%) rename {app => apps/web-react/app}/features/scanner/tests/logic/scheduler.test.ts (100%) rename {app => apps/web-react/app}/features/scanner/tests/map-start.test.ts (100%) rename {app => apps/web-react/app}/features/scanner/tests/minimap.test.ts (100%) rename {app => apps/web-react/app}/features/scanner/tests/node-test-compat.ts (100%) rename {app => apps/web-react/app}/features/scanner/tests/objective.test.ts (100%) rename {app => apps/web-react/app}/features/scanner/tests/opencv-smoke.test.ts (100%) rename {app => apps/web-react/app}/features/scanner/tests/player-status.test.ts (100%) rename {app => apps/web-react/app}/features/scanner/tests/replay-time.test.ts (100%) rename {app => apps/web-react/app}/features/scanner/tests/scoreboard-battle-log-replay.1.test.ts (100%) rename {app => apps/web-react/app}/features/scanner/tests/scoreboard-battle-log-replay.2.test.ts (100%) rename {app => apps/web-react/app}/features/scanner/tests/scoreboard-battle-log.test.ts (100%) rename {app => apps/web-react/app}/features/scanner/tests/scoreboard-own.test.ts (100%) rename {app => apps/web-react/app}/features/scanner/tests/scoreboard.test.ts (100%) rename {app => apps/web-react/app}/features/scanner/tests/sendou-upload.test.ts (100%) rename {app => apps/web-react/app}/features/scanner/tests/strip-weapons.test.ts (100%) rename {app => apps/web-react/app}/features/scanner/tests/suites/death.ts (100%) rename {app => apps/web-react/app}/features/scanner/tests/suites/scoreboard-battle-log-replay.ts (100%) rename {app => apps/web-react/app}/features/scanner/tests/timeline.test.ts (100%) rename {app => apps/web-react/app}/features/scanner/worker/analyzer.worker.ts (100%) rename {app => apps/web-react/app}/features/scanner/worker/client.ts (100%) rename {app => apps/web-react/app}/features/scanner/worker/protocol.ts (100%) rename {app => apps/web-react/app}/features/scanner/worker/resources.ts (100%) rename {app => apps/web-react/app}/features/scrims/ScrimMapListRepository.server.ts (100%) rename {app => apps/web-react/app}/features/scrims/ScrimMapRepository.server.ts (100%) rename {app => apps/web-react/app}/features/scrims/ScrimPickupRosterRepository.server.test.ts (100%) rename {app => apps/web-react/app}/features/scrims/ScrimPickupRosterRepository.server.ts (100%) rename {app => apps/web-react/app}/features/scrims/ScrimPostRepository.server.test.ts (100%) rename {app => apps/web-react/app}/features/scrims/ScrimPostRepository.server.ts (100%) rename {app => apps/web-react/app}/features/scrims/actions/scrims.$id.server.ts (100%) rename {app => apps/web-react/app}/features/scrims/actions/scrims.new.server.ts (100%) rename {app => apps/web-react/app}/features/scrims/actions/scrims.request.server.test.ts (100%) rename {app => apps/web-react/app}/features/scrims/actions/scrims.server.ts (100%) rename {app => apps/web-react/app}/features/scrims/components/PickMapDialog.tsx (100%) rename {app => apps/web-react/app}/features/scrims/components/ScrimCard.module.css (100%) rename {app => apps/web-react/app}/features/scrims/components/ScrimCard.tsx (100%) rename {app => apps/web-react/app}/features/scrims/components/ScrimMapListForm.tsx (100%) rename {app => apps/web-react/app}/features/scrims/components/ScrimMapListManager.module.css (100%) rename {app => apps/web-react/app}/features/scrims/components/ScrimMapListManager.tsx (100%) rename {app => apps/web-react/app}/features/scrims/components/ScrimMatchActionTab.module.css (100%) rename {app => apps/web-react/app}/features/scrims/components/ScrimMatchActionTab.tsx (100%) rename {app => apps/web-react/app}/features/scrims/components/ScrimMatchBanner.tsx (100%) rename {app => apps/web-react/app}/features/scrims/components/ScrimMatchHeader.tsx (100%) rename {app => apps/web-react/app}/features/scrims/components/ScrimMatchStatsTab.module.css (100%) rename {app => apps/web-react/app}/features/scrims/components/ScrimMatchStatsTab.tsx (100%) rename {app => apps/web-react/app}/features/scrims/components/ScrimMatchTabs.tsx (100%) rename {app => apps/web-react/app}/features/scrims/components/ScrimRequestModal.tsx (100%) rename {app => apps/web-react/app}/features/scrims/components/WithFormField.module.css (100%) rename {app => apps/web-react/app}/features/scrims/components/WithFormField.tsx (100%) rename {app => apps/web-react/app}/features/scrims/core/Scrim.test.ts (100%) rename {app => apps/web-react/app}/features/scrims/core/Scrim.ts (100%) rename {app => apps/web-react/app}/features/scrims/core/ScrimMapByMap.test.ts (100%) rename {app => apps/web-react/app}/features/scrims/core/ScrimMapByMap.ts (100%) rename {app => apps/web-react/app}/features/scrims/loaders/scrims.$id.server.ts (100%) rename {app => apps/web-react/app}/features/scrims/loaders/scrims.new.server.ts (100%) rename {app => apps/web-react/app}/features/scrims/loaders/scrims.server.ts (100%) rename {app => apps/web-react/app}/features/scrims/routes/scrims.$id.tsx (100%) rename {app => apps/web-react/app}/features/scrims/routes/scrims.module.css (100%) rename {app => apps/web-react/app}/features/scrims/routes/scrims.new.module.css (100%) rename {app => apps/web-react/app}/features/scrims/routes/scrims.new.test.ts (100%) rename {app => apps/web-react/app}/features/scrims/routes/scrims.new.tsx (100%) rename {app => apps/web-react/app}/features/scrims/routes/scrims.test.ts (100%) rename {app => apps/web-react/app}/features/scrims/routes/scrims.tsx (100%) rename {app => apps/web-react/app}/features/scrims/scrims-constants.ts (100%) rename {app => apps/web-react/app}/features/scrims/scrims-schemas.test.ts (100%) rename {app => apps/web-react/app}/features/scrims/scrims-schemas.ts (100%) rename {app => apps/web-react/app}/features/scrims/scrims-search-params.test.ts (100%) rename {app => apps/web-react/app}/features/scrims/scrims-search-params.ts (100%) rename {app => apps/web-react/app}/features/scrims/scrims-types.ts (100%) rename {app => apps/web-react/app}/features/scrims/scrims-utils.test.ts (100%) rename {app => apps/web-react/app}/features/scrims/scrims-utils.ts (100%) rename {app => apps/web-react/app}/features/search/routes/search.ts (100%) rename {app => apps/web-react/app}/features/search/search-search-params.test.ts (100%) rename {app => apps/web-react/app}/features/search/search-search-params.ts (100%) rename {app => apps/web-react/app}/features/search/search-types.ts (100%) rename {app => apps/web-react/app}/features/sendouq-match/GroupMatchContinueVoteRepository.server.test.ts (100%) rename {app => apps/web-react/app}/features/sendouq-match/GroupMatchContinueVoteRepository.server.ts (100%) rename {app => apps/web-react/app}/features/sendouq-match/MatchSkillRepository.server.ts (100%) rename {app => apps/web-react/app}/features/sendouq-match/PlayerStatRepository.server.ts (100%) rename {app => apps/web-react/app}/features/sendouq-match/ReportedWeaponRepository.server.ts (100%) rename {app => apps/web-react/app}/features/sendouq-match/SQMatchRepository.server.test.ts (100%) rename {app => apps/web-react/app}/features/sendouq-match/SQMatchRepository.server.ts (100%) rename {app => apps/web-react/app}/features/sendouq-match/actions/q.match.$id.server.ts (100%) rename {app => apps/web-react/app}/features/sendouq-match/components/RejoinSections.tsx (100%) rename {app => apps/web-react/app}/features/sendouq-match/components/RematchVotePanel.module.css (100%) rename {app => apps/web-react/app}/features/sendouq-match/components/RematchVotePanel.tsx (100%) rename {app => apps/web-react/app}/features/sendouq-match/components/SendouQMatchActionTab.module.css (100%) rename {app => apps/web-react/app}/features/sendouq-match/components/SendouQMatchActionTab.tsx (100%) rename {app => apps/web-react/app}/features/sendouq-match/components/SendouQMatchBanner.tsx (100%) rename {app => apps/web-react/app}/features/sendouq-match/components/SendouQMatchHeader.tsx (100%) rename {app => apps/web-react/app}/features/sendouq-match/components/SendouQMatchTabs.tsx (100%) rename {app => apps/web-react/app}/features/sendouq-match/core/RejoinVote.test.ts (100%) rename {app => apps/web-react/app}/features/sendouq-match/core/RejoinVote.ts (100%) rename {app => apps/web-react/app}/features/sendouq-match/core/SendouQMatch.test.ts (100%) rename {app => apps/web-react/app}/features/sendouq-match/core/SendouQMatch.ts (100%) rename {app => apps/web-react/app}/features/sendouq-match/core/discord-webhook.server.ts (100%) rename {app => apps/web-react/app}/features/sendouq-match/core/match-timeline.test.ts (100%) rename {app => apps/web-react/app}/features/sendouq-match/core/match-timeline.ts (100%) rename {app => apps/web-react/app}/features/sendouq-match/core/match.server.test.ts (100%) rename {app => apps/web-react/app}/features/sendouq-match/core/match.server.ts (100%) rename {app => apps/web-react/app}/features/sendouq-match/core/reported-weapons.server.test.ts (100%) rename {app => apps/web-react/app}/features/sendouq-match/core/reported-weapons.server.ts (100%) rename {app => apps/web-react/app}/features/sendouq-match/core/skills.server.ts (100%) rename {app => apps/web-react/app}/features/sendouq-match/core/summarizer.server.ts (100%) rename {app => apps/web-react/app}/features/sendouq-match/loaders/q.match.$id.server.ts (100%) rename {app => apps/web-react/app}/features/sendouq-match/q-match-schemas.ts (100%) rename {app => apps/web-react/app}/features/sendouq-match/q-match-utils.ts (100%) rename {app => apps/web-react/app}/features/sendouq-match/routes/q.match.$id.tsx (100%) rename {app => apps/web-react/app}/features/sendouq-streams/QStreamsRepository.server.ts (100%) rename {app => apps/web-react/app}/features/sendouq-streams/core/streams.server.ts (100%) rename {app => apps/web-react/app}/features/sendouq-streams/loaders/q.streams.server.ts (100%) rename {app => apps/web-react/app}/features/sendouq-streams/q-streams-constants.ts (100%) rename {app => apps/web-react/app}/features/sendouq-streams/routes/q.streams.module.css (100%) rename {app => apps/web-react/app}/features/sendouq-streams/routes/q.streams.tsx (100%) rename {app => apps/web-react/app}/features/sendouq/PrivateUserNoteRepository.server.test.ts (100%) rename {app => apps/web-react/app}/features/sendouq/PrivateUserNoteRepository.server.ts (100%) rename {app => apps/web-react/app}/features/sendouq/SQGroupRepository.server.test.ts (100%) rename {app => apps/web-react/app}/features/sendouq/SQGroupRepository.server.ts (100%) rename {app => apps/web-react/app}/features/sendouq/actions/q.looking.server.ts (100%) rename {app => apps/web-react/app}/features/sendouq/actions/q.preparing.server.ts (100%) rename {app => apps/web-react/app}/features/sendouq/actions/q.ready.server.ts (100%) rename {app => apps/web-react/app}/features/sendouq/actions/q.server.ts (100%) rename {app => apps/web-react/app}/features/sendouq/components/GroupCard.browser.test.tsx (100%) rename {app => apps/web-react/app}/features/sendouq/components/GroupCard.module.css (100%) rename {app => apps/web-react/app}/features/sendouq/components/GroupCard.tsx (100%) rename {app => apps/web-react/app}/features/sendouq/components/GroupLeaver.tsx (100%) rename {app => apps/web-react/app}/features/sendouq/components/MemberAdder.tsx (100%) rename {app => apps/web-react/app}/features/sendouq/core/SendouQ.server.test.ts (100%) rename {app => apps/web-react/app}/features/sendouq/core/SendouQ.server.ts (100%) rename {app => apps/web-react/app}/features/sendouq/core/default-maps.server.test.ts (100%) rename {app => apps/web-react/app}/features/sendouq/core/default-maps.server.ts (100%) rename {app => apps/web-react/app}/features/sendouq/core/groups.server.test.ts (100%) rename {app => apps/web-react/app}/features/sendouq/core/groups.server.ts (100%) rename {app => apps/web-react/app}/features/sendouq/core/groups.ts (100%) rename {app => apps/web-react/app}/features/sendouq/core/likes.server.ts (100%) rename {app => apps/web-react/app}/features/sendouq/core/ready-check.server.test.ts (100%) rename {app => apps/web-react/app}/features/sendouq/core/ready-check.server.ts (100%) rename {app => apps/web-react/app}/features/sendouq/loaders/q.looking.server.ts (100%) rename {app => apps/web-react/app}/features/sendouq/loaders/q.preparing.server.ts (100%) rename {app => apps/web-react/app}/features/sendouq/loaders/q.ready.server.ts (100%) rename {app => apps/web-react/app}/features/sendouq/loaders/q.server.ts (100%) rename {app => apps/web-react/app}/features/sendouq/loaders/tiers.server.ts (100%) rename {app => apps/web-react/app}/features/sendouq/q-action-schemas.ts (100%) rename {app => apps/web-react/app}/features/sendouq/q-constants.test.ts (100%) rename {app => apps/web-react/app}/features/sendouq/q-constants.ts (100%) rename {app => apps/web-react/app}/features/sendouq/q-schemas.ts (100%) rename {app => apps/web-react/app}/features/sendouq/q-search-params.test.ts (100%) rename {app => apps/web-react/app}/features/sendouq/q-search-params.ts (100%) rename {app => apps/web-react/app}/features/sendouq/q-types.ts (100%) rename {app => apps/web-react/app}/features/sendouq/q-urls.ts (100%) rename {app => apps/web-react/app}/features/sendouq/q-utils.server.ts (100%) rename {app => apps/web-react/app}/features/sendouq/q-utils.ts (100%) rename {app => apps/web-react/app}/features/sendouq/routes/friends-for-adding.ts (100%) rename {app => apps/web-react/app}/features/sendouq/routes/play.ts (100%) rename {app => apps/web-react/app}/features/sendouq/routes/q.info.module.css (100%) rename {app => apps/web-react/app}/features/sendouq/routes/q.info.tsx (100%) rename {app => apps/web-react/app}/features/sendouq/routes/q.looking.module.css (100%) rename {app => apps/web-react/app}/features/sendouq/routes/q.looking.test.ts (100%) rename {app => apps/web-react/app}/features/sendouq/routes/q.looking.tsx (100%) rename {app => apps/web-react/app}/features/sendouq/routes/q.module.css (100%) rename {app => apps/web-react/app}/features/sendouq/routes/q.preparing.module.css (100%) rename {app => apps/web-react/app}/features/sendouq/routes/q.preparing.tsx (100%) rename {app => apps/web-react/app}/features/sendouq/routes/q.ready.module.css (100%) rename {app => apps/web-react/app}/features/sendouq/routes/q.ready.test.ts (100%) rename {app => apps/web-react/app}/features/sendouq/routes/q.ready.tsx (100%) rename {app => apps/web-react/app}/features/sendouq/routes/q.rules.tsx (100%) rename {app => apps/web-react/app}/features/sendouq/routes/q.tsx (100%) rename {app => apps/web-react/app}/features/sendouq/routes/tiers.tsx (100%) rename {app => apps/web-react/app}/features/sendouq/routes/weapon-usage.ts (100%) rename {app => apps/web-react/app}/features/session-id/session-id-context.server.ts (100%) rename {app => apps/web-react/app}/features/session-id/session-id-middleware.server.ts (100%) rename {app => apps/web-react/app}/features/settings/actions/settings.server.ts (100%) rename {app => apps/web-react/app}/features/settings/components/LocaleTab.tsx (100%) rename {app => apps/web-react/app}/features/settings/components/MapModePreferencesField.tsx (100%) rename {app => apps/web-react/app}/features/settings/components/MatchProfileTab.tsx (100%) rename {app => apps/web-react/app}/features/settings/components/ModeMapPoolPicker.module.css (100%) rename {app => apps/web-react/app}/features/settings/components/ModeMapPoolPicker.tsx (100%) rename {app => apps/web-react/app}/features/settings/components/PreferenceRadioGroup.module.css (100%) rename {app => apps/web-react/app}/features/settings/components/PreferenceRadioGroup.tsx (100%) rename {app => apps/web-react/app}/features/settings/components/PreferencesTab.tsx (100%) rename {app => apps/web-react/app}/features/settings/components/SoundsTab.module.css (100%) rename {app => apps/web-react/app}/features/settings/components/SoundsTab.tsx (100%) rename {app => apps/web-react/app}/features/settings/components/ThemeTab.tsx (100%) rename {app => apps/web-react/app}/features/settings/loaders/settings.server.ts (100%) rename {app => apps/web-react/app}/features/settings/match-profile-schemas.test.ts (100%) rename {app => apps/web-react/app}/features/settings/match-profile-schemas.ts (100%) rename {app => apps/web-react/app}/features/settings/routes/settings.global.css (100%) rename {app => apps/web-react/app}/features/settings/routes/settings.tsx (100%) rename {app => apps/web-react/app}/features/settings/routes/wave.svg (100%) rename {app => apps/web-react/app}/features/settings/settings-constants.ts (100%) rename {app => apps/web-react/app}/features/settings/settings-schemas.server.ts (100%) rename {app => apps/web-react/app}/features/settings/settings-schemas.ts (100%) rename {app => apps/web-react/app}/features/settings/settings-search-params.test.ts (100%) rename {app => apps/web-react/app}/features/settings/settings-search-params.ts (100%) rename {app => apps/web-react/app}/features/settings/settings-utils.ts (100%) rename {app => apps/web-react/app}/features/sidebar/core/StreamRanking.test.ts (100%) rename {app => apps/web-react/app}/features/sidebar/core/StreamRanking.ts (100%) rename {app => apps/web-react/app}/features/sidebar/core/sidebar.server.ts (100%) rename {app => apps/web-react/app}/features/splatoon-rotations/SplatoonRotationRepository.server.ts (100%) rename {app => apps/web-react/app}/features/splatoon-rotations/splatoon-rotations-constants.ts (100%) rename {app => apps/web-react/app}/features/splatoon-rotations/splatoon-rotations.server.ts (100%) rename {app => apps/web-react/app}/features/team/TeamRepository.server.test.ts (100%) rename {app => apps/web-react/app}/features/team/TeamRepository.server.ts (100%) rename {app => apps/web-react/app}/features/team/actions/t.$customUrl.edit.server.test.ts (100%) rename {app => apps/web-react/app}/features/team/actions/t.$customUrl.edit.server.ts (100%) rename {app => apps/web-react/app}/features/team/actions/t.$customUrl.index.server.ts (100%) rename {app => apps/web-react/app}/features/team/actions/t.$customUrl.join.server.ts (100%) rename {app => apps/web-react/app}/features/team/actions/t.$customUrl.roster.server.ts (100%) rename {app => apps/web-react/app}/features/team/actions/t.new.server.test.ts (100%) rename {app => apps/web-react/app}/features/team/actions/t.new.server.ts (100%) rename {app => apps/web-react/app}/features/team/components/TeamGoBackButton.tsx (100%) rename {app => apps/web-react/app}/features/team/components/TeamResultsTable.module.css (100%) rename {app => apps/web-react/app}/features/team/components/TeamResultsTable.tsx (100%) rename {app => apps/web-react/app}/features/team/loaders/t.$customUrl.edit.server.ts (100%) rename {app => apps/web-react/app}/features/team/loaders/t.$customUrl.join.server.ts (100%) rename {app => apps/web-react/app}/features/team/loaders/t.$customUrl.results.server.ts (100%) rename {app => apps/web-react/app}/features/team/loaders/t.$customUrl.roster.server.ts (100%) rename {app => apps/web-react/app}/features/team/loaders/t.$customUrl.server.ts (100%) rename {app => apps/web-react/app}/features/team/loaders/t.new.server.ts (100%) rename {app => apps/web-react/app}/features/team/routes/t.$customUrl.edit.test.ts (100%) rename {app => apps/web-react/app}/features/team/routes/t.$customUrl.edit.tsx (100%) rename {app => apps/web-react/app}/features/team/routes/t.$customUrl.index.tsx (100%) rename {app => apps/web-react/app}/features/team/routes/t.$customUrl.join.tsx (100%) rename {app => apps/web-react/app}/features/team/routes/t.$customUrl.results.tsx (100%) rename {app => apps/web-react/app}/features/team/routes/t.$customUrl.roster.tsx (100%) rename {app => apps/web-react/app}/features/team/routes/t.$customUrl.test.ts (100%) rename {app => apps/web-react/app}/features/team/routes/t.$customUrl.tsx (100%) rename {app => apps/web-react/app}/features/team/routes/t.new.tsx (100%) rename {app => apps/web-react/app}/features/team/routes/t.tsx (100%) rename {app => apps/web-react/app}/features/team/team-constants.ts (100%) rename {app => apps/web-react/app}/features/team/team-schemas.server.ts (100%) rename {app => apps/web-react/app}/features/team/team-schemas.ts (100%) rename {app => apps/web-react/app}/features/team/team-search-params.test.ts (100%) rename {app => apps/web-react/app}/features/team/team-search-params.ts (100%) rename {app => apps/web-react/app}/features/team/team-urls.ts (100%) rename {app => apps/web-react/app}/features/team/team-utils.test.ts (100%) rename {app => apps/web-react/app}/features/team/team-utils.ts (100%) rename {app => apps/web-react/app}/features/team/team.module.css (100%) rename {app => apps/web-react/app}/features/team/tests/fixtures.ts (100%) rename {app => apps/web-react/app}/features/theme/core/README.md (100%) rename {app => apps/web-react/app}/features/theme/core/provider.tsx (100%) rename {app => apps/web-react/app}/features/theme/core/theme-session.server.ts (100%) rename {app => apps/web-react/app}/features/theme/routes/theme.ts (100%) rename {app => apps/web-react/app}/features/theme/theme-constants.ts (100%) rename {app => apps/web-react/app}/features/tier-list-maker/components/DraggableItem.module.css (100%) rename {app => apps/web-react/app}/features/tier-list-maker/components/DraggableItem.tsx (100%) rename {app => apps/web-react/app}/features/tier-list-maker/components/ItemDragPreview.module.css (100%) rename {app => apps/web-react/app}/features/tier-list-maker/components/ItemDragPreview.tsx (100%) rename {app => apps/web-react/app}/features/tier-list-maker/components/ItemPool.module.css (100%) rename {app => apps/web-react/app}/features/tier-list-maker/components/ItemPool.tsx (100%) rename {app => apps/web-react/app}/features/tier-list-maker/components/TierListGraphic.module.css (100%) rename {app => apps/web-react/app}/features/tier-list-maker/components/TierListGraphic.tsx (100%) rename {app => apps/web-react/app}/features/tier-list-maker/components/TierListItemImage.module.css (100%) rename {app => apps/web-react/app}/features/tier-list-maker/components/TierListItemImage.tsx (100%) rename {app => apps/web-react/app}/features/tier-list-maker/components/TierRow.module.css (100%) rename {app => apps/web-react/app}/features/tier-list-maker/components/TierRow.tsx (100%) rename {app => apps/web-react/app}/features/tier-list-maker/contexts/TierListContext.tsx (100%) rename {app => apps/web-react/app}/features/tier-list-maker/hooks/useTierList.ts (100%) rename {app => apps/web-react/app}/features/tier-list-maker/routes/tier-list-maker.module.css (100%) rename {app => apps/web-react/app}/features/tier-list-maker/routes/tier-list-maker.tsx (100%) rename {app => apps/web-react/app}/features/tier-list-maker/tier-list-maker-constants.ts (100%) rename {app => apps/web-react/app}/features/tier-list-maker/tier-list-maker-schemas.ts (100%) rename {app => apps/web-react/app}/features/tier-list-maker/tier-list-maker-search-params.test.ts (100%) rename {app => apps/web-react/app}/features/tier-list-maker/tier-list-maker-search-params.ts (100%) rename {app => apps/web-react/app}/features/tier-list-maker/tier-list-maker-utils.test.ts (100%) rename {app => apps/web-react/app}/features/tier-list-maker/tier-list-maker-utils.ts (100%) rename {app => apps/web-react/app}/features/timezone/timezone-context.server.ts (100%) rename {app => apps/web-react/app}/features/timezone/timezone-cookie.test.ts (100%) rename {app => apps/web-react/app}/features/timezone/timezone-cookie.ts (100%) rename {app => apps/web-react/app}/features/timezone/timezone-middleware.server.ts (100%) rename {app => apps/web-react/app}/features/top-search/XRankPlacementRepository.server.test.ts (100%) rename {app => apps/web-react/app}/features/top-search/XRankPlacementRepository.server.ts (100%) rename {app => apps/web-react/app}/features/top-search/actions/xsearch.player.$id.server.ts (100%) rename {app => apps/web-react/app}/features/top-search/components/HowToLinkPopover.module.css (100%) rename {app => apps/web-react/app}/features/top-search/components/HowToLinkPopover.tsx (100%) rename {app => apps/web-react/app}/features/top-search/components/Placements.tsx (100%) rename {app => apps/web-react/app}/features/top-search/loaders/xsearch.player.$id.server.ts (100%) rename {app => apps/web-react/app}/features/top-search/loaders/xsearch.server.ts (100%) rename {app => apps/web-react/app}/features/top-search/routes/xsearch.player.$id.tsx (100%) rename {app => apps/web-react/app}/features/top-search/routes/xsearch.tsx (100%) rename {app => apps/web-react/app}/features/top-search/top-search-search-params.test.ts (100%) rename {app => apps/web-react/app}/features/top-search/top-search-search-params.ts (100%) rename {app => apps/web-react/app}/features/top-search/top-search-types.ts (100%) rename {app => apps/web-react/app}/features/top-search/top-search-urls.ts (100%) rename {app => apps/web-react/app}/features/top-search/top-search-utils.ts (100%) rename {app => apps/web-react/app}/features/top-search/top-search.module.css (100%) rename {app => apps/web-react/app}/features/tournament-admin/actions/to.$id.admin.brackets.server.ts (100%) rename {app => apps/web-react/app}/features/tournament-admin/actions/to.$id.admin.index.server.ts (100%) rename {app => apps/web-react/app}/features/tournament-admin/actions/to.$id.admin.registration.server.ts (100%) rename {app => apps/web-react/app}/features/tournament-admin/actions/to.$id.admin.seeds.server.ts (100%) rename {app => apps/web-react/app}/features/tournament-admin/actions/to.$id.admin.staff.server.ts (100%) rename {app => apps/web-react/app}/features/tournament-admin/actions/to.$id.admin.stream.server.ts (100%) rename {app => apps/web-react/app}/features/tournament-admin/components/ExportDialog.module.css (100%) rename {app => apps/web-react/app}/features/tournament-admin/components/ExportDialog.test.ts (100%) rename {app => apps/web-react/app}/features/tournament-admin/components/ExportDialog.tsx (100%) rename {app => apps/web-react/app}/features/tournament-admin/loaders/to.$id.admin.audit.server.ts (100%) rename {app => apps/web-react/app}/features/tournament-admin/loaders/to.$id.admin.index.server.ts (100%) rename {app => apps/web-react/app}/features/tournament-admin/loaders/to.$id.admin.registration.$tid.server.ts (100%) rename {app => apps/web-react/app}/features/tournament-admin/loaders/to.$id.admin.seeds.server.ts (100%) rename {app => apps/web-react/app}/features/tournament-admin/routes/to.$id.admin._index.module.css (100%) rename {app => apps/web-react/app}/features/tournament-admin/routes/to.$id.admin._index.tsx (100%) rename {app => apps/web-react/app}/features/tournament-admin/routes/to.$id.admin.audit.module.css (100%) rename {app => apps/web-react/app}/features/tournament-admin/routes/to.$id.admin.audit.tsx (100%) rename {app => apps/web-react/app}/features/tournament-admin/routes/to.$id.admin.brackets.tsx (100%) rename {app => apps/web-react/app}/features/tournament-admin/routes/to.$id.admin.import-teams.ts (100%) rename {app => apps/web-react/app}/features/tournament-admin/routes/to.$id.admin.index.tsx (100%) rename {app => apps/web-react/app}/features/tournament-admin/routes/to.$id.admin.module.css (100%) rename {app => apps/web-react/app}/features/tournament-admin/routes/to.$id.admin.registration.$tid.browser.test.tsx (100%) rename {app => apps/web-react/app}/features/tournament-admin/routes/to.$id.admin.registration.$tid.captain-label.browser.test.tsx (100%) rename {app => apps/web-react/app}/features/tournament-admin/routes/to.$id.admin.registration.$tid.tsx (100%) rename {app => apps/web-react/app}/features/tournament-admin/routes/to.$id.admin.seeds.module.css (100%) rename {app => apps/web-react/app}/features/tournament-admin/routes/to.$id.admin.seeds.tsx (100%) rename {app => apps/web-react/app}/features/tournament-admin/routes/to.$id.admin.staff.tsx (100%) rename {app => apps/web-react/app}/features/tournament-admin/routes/to.$id.admin.stream.tsx (100%) rename {app => apps/web-react/app}/features/tournament-admin/routes/to.$id.admin.tsx (100%) rename {app => apps/web-react/app}/features/tournament-admin/tournament-admin-registration-schemas.server.ts (100%) rename {app => apps/web-react/app}/features/tournament-admin/tournament-admin-registration-schemas.ts (100%) rename {app => apps/web-react/app}/features/tournament-admin/tournament-admin-schemas.ts (100%) rename {app => apps/web-react/app}/features/tournament-admin/tournament-admin-search-params.test.ts (100%) rename {app => apps/web-react/app}/features/tournament-admin/tournament-admin-search-params.ts (100%) rename {app => apps/web-react/app}/features/tournament-admin/tournament-admin-staff-schemas.ts (100%) rename {app => apps/web-react/app}/features/tournament-admin/tournament-admin-urls.ts (100%) rename {app => apps/web-react/app}/features/tournament-bracket/BracketRepository.server.ts (100%) rename {app => apps/web-react/app}/features/tournament-bracket/TournamentMatchVodRepository.server.ts (100%) rename {app => apps/web-react/app}/features/tournament-bracket/actions/to.$id.brackets.finalize.server.ts (100%) rename {app => apps/web-react/app}/features/tournament-bracket/actions/to.$id.brackets.server.ts (100%) rename {app => apps/web-react/app}/features/tournament-bracket/components/Bracket/Bracket.browser.test.tsx (100%) rename {app => apps/web-react/app}/features/tournament-bracket/components/Bracket/Elimination.tsx (100%) rename {app => apps/web-react/app}/features/tournament-bracket/components/Bracket/Match.tsx (100%) rename {app => apps/web-react/app}/features/tournament-bracket/components/Bracket/PlacementsTable.tsx (100%) rename {app => apps/web-react/app}/features/tournament-bracket/components/Bracket/RoundHeader.tsx (100%) rename {app => apps/web-react/app}/features/tournament-bracket/components/Bracket/RoundRobin.tsx (100%) rename {app => apps/web-react/app}/features/tournament-bracket/components/Bracket/Swiss.tsx (100%) rename {app => apps/web-react/app}/features/tournament-bracket/components/Bracket/bracket.module.css (100%) rename {app => apps/web-react/app}/features/tournament-bracket/components/Bracket/index.tsx (100%) rename {app => apps/web-react/app}/features/tournament-bracket/components/Bracket/useBracketSpoilerCensor.test.ts (100%) rename {app => apps/web-react/app}/features/tournament-bracket/components/Bracket/useBracketSpoilerCensor.ts (100%) rename {app => apps/web-react/app}/features/tournament-bracket/components/BracketMapListDialog.module.css (100%) rename {app => apps/web-react/app}/features/tournament-bracket/components/BracketMapListDialog.test.ts (100%) rename {app => apps/web-react/app}/features/tournament-bracket/components/BracketMapListDialog.tsx (100%) rename {app => apps/web-react/app}/features/tournament-bracket/components/CustomFlowBuilder.browser.test.tsx (100%) rename {app => apps/web-react/app}/features/tournament-bracket/components/CustomFlowBuilder.module.css (100%) rename {app => apps/web-react/app}/features/tournament-bracket/components/CustomFlowBuilder.tsx (100%) rename {app => apps/web-react/app}/features/tournament-bracket/components/TournamentTeamActions.tsx (100%) rename {app => apps/web-react/app}/features/tournament-bracket/core/AbDivisions.test.ts (100%) rename {app => apps/web-react/app}/features/tournament-bracket/core/AbDivisions.ts (100%) rename {app => apps/web-react/app}/features/tournament-bracket/core/Bracket.test.ts (100%) rename {app => apps/web-react/app}/features/tournament-bracket/core/Bracket/Bracket.ts (100%) rename {app => apps/web-react/app}/features/tournament-bracket/core/Bracket/DoubleEliminationBracket.ts (100%) rename {app => apps/web-react/app}/features/tournament-bracket/core/Bracket/RoundRobinBracket.ts (100%) rename {app => apps/web-react/app}/features/tournament-bracket/core/Bracket/SingleEliminationBracket.ts (100%) rename {app => apps/web-react/app}/features/tournament-bracket/core/Bracket/SwissBracket.ts (100%) rename {app => apps/web-react/app}/features/tournament-bracket/core/Bracket/index.ts (100%) rename {app => apps/web-react/app}/features/tournament-bracket/core/Bracket/utils.ts (100%) rename {app => apps/web-react/app}/features/tournament-bracket/core/Deadline.test.ts (100%) rename {app => apps/web-react/app}/features/tournament-bracket/core/Deadline.ts (100%) rename {app => apps/web-react/app}/features/tournament-bracket/core/PickBan.test.ts (100%) rename {app => apps/web-react/app}/features/tournament-bracket/core/PickBan.ts (100%) rename {app => apps/web-react/app}/features/tournament-bracket/core/PreparedMaps.test.ts (100%) rename {app => apps/web-react/app}/features/tournament-bracket/core/PreparedMaps.ts (100%) rename {app => apps/web-react/app}/features/tournament-bracket/core/Progression.test.ts (100%) rename {app => apps/web-react/app}/features/tournament-bracket/core/Progression.ts (100%) rename {app => apps/web-react/app}/features/tournament-bracket/core/RunningTournaments.server.ts (100%) rename {app => apps/web-react/app}/features/tournament-bracket/core/RunningTournaments.test.ts (100%) rename {app => apps/web-react/app}/features/tournament-bracket/core/Seeding.test.ts (100%) rename {app => apps/web-react/app}/features/tournament-bracket/core/Seeding.ts (100%) rename {app => apps/web-react/app}/features/tournament-bracket/core/Swiss.test.ts (100%) rename {app => apps/web-react/app}/features/tournament-bracket/core/Tournament.server.test.ts (100%) rename {app => apps/web-react/app}/features/tournament-bracket/core/Tournament.server.ts (100%) rename {app => apps/web-react/app}/features/tournament-bracket/core/Tournament.test.ts (100%) rename {app => apps/web-react/app}/features/tournament-bracket/core/Tournament.timezone.test.ts (100%) rename {app => apps/web-react/app}/features/tournament-bracket/core/Tournament.ts (100%) rename {app => apps/web-react/app}/features/tournament-bracket/core/engine/create/builder.ts (100%) rename {app => apps/web-react/app}/features/tournament-bracket/core/engine/create/double-elimination.test.ts (100%) rename {app => apps/web-react/app}/features/tournament-bracket/core/engine/create/double-elimination.ts (100%) rename {app => apps/web-react/app}/features/tournament-bracket/core/engine/create/helpers.test.ts (100%) rename {app => apps/web-react/app}/features/tournament-bracket/core/engine/create/helpers.ts (100%) rename {app => apps/web-react/app}/features/tournament-bracket/core/engine/create/index.ts (100%) rename {app => apps/web-react/app}/features/tournament-bracket/core/engine/create/round-robin.test.ts (100%) rename {app => apps/web-react/app}/features/tournament-bracket/core/engine/create/round-robin.ts (100%) rename {app => apps/web-react/app}/features/tournament-bracket/core/engine/create/seeding.ts (100%) rename {app => apps/web-react/app}/features/tournament-bracket/core/engine/create/settings.ts (100%) rename {app => apps/web-react/app}/features/tournament-bracket/core/engine/create/single-elimination.test.ts (100%) rename {app => apps/web-react/app}/features/tournament-bracket/core/engine/create/single-elimination.ts (100%) rename {app => apps/web-react/app}/features/tournament-bracket/core/engine/create/swiss.ts (100%) rename {app => apps/web-react/app}/features/tournament-bracket/core/engine/general.test.ts (100%) rename {app => apps/web-react/app}/features/tournament-bracket/core/engine/index.ts (100%) rename {app => apps/web-react/app}/features/tournament-bracket/core/engine/propagation/double-elimination.test.ts (100%) rename {app => apps/web-react/app}/features/tournament-bracket/core/engine/propagation/dropped-teams.ts (100%) rename {app => apps/web-react/app}/features/tournament-bracket/core/engine/propagation/helpers.ts (100%) rename {app => apps/web-react/app}/features/tournament-bracket/core/engine/propagation/report-result.ts (100%) rename {app => apps/web-react/app}/features/tournament-bracket/core/engine/propagation/reset-result.ts (100%) rename {app => apps/web-react/app}/features/tournament-bracket/core/engine/propagation/round-robin.test.ts (100%) rename {app => apps/web-react/app}/features/tournament-bracket/core/engine/propagation/set.test.ts (100%) rename {app => apps/web-react/app}/features/tournament-bracket/core/engine/propagation/set.ts (100%) rename {app => apps/web-react/app}/features/tournament-bracket/core/engine/propagation/single-elimination.test.ts (100%) rename {app => apps/web-react/app}/features/tournament-bracket/core/engine/propagation/store.ts (100%) rename {app => apps/web-react/app}/features/tournament-bracket/core/engine/propagation/traversal.ts (100%) rename {app => apps/web-react/app}/features/tournament-bracket/core/engine/propagation/update.test.ts (100%) rename {app => apps/web-react/app}/features/tournament-bracket/core/engine/status.test.ts (100%) rename {app => apps/web-react/app}/features/tournament-bracket/core/engine/status.ts (100%) rename {app => apps/web-react/app}/features/tournament-bracket/core/engine/swiss/pairing.ts (100%) rename {app => apps/web-react/app}/features/tournament-bracket/core/engine/swiss/team-status.ts (100%) rename {app => apps/web-react/app}/features/tournament-bracket/core/engine/types.ts (100%) rename {app => apps/web-react/app}/features/tournament-bracket/core/executeBracketOperation.server.ts (100%) rename {app => apps/web-react/app}/features/tournament-bracket/core/finalizeTournament.server.ts (100%) rename {app => apps/web-react/app}/features/tournament-bracket/core/rounds.ts (100%) rename {app => apps/web-react/app}/features/tournament-bracket/core/summarizer.server.ts (100%) rename {app => apps/web-react/app}/features/tournament-bracket/core/summarizer.test.ts (100%) rename {app => apps/web-react/app}/features/tournament-bracket/core/tests/mocks-li.ts (100%) rename {app => apps/web-react/app}/features/tournament-bracket/core/tests/mocks-sos.ts (100%) rename {app => apps/web-react/app}/features/tournament-bracket/core/tests/mocks-swiss.ts (100%) rename {app => apps/web-react/app}/features/tournament-bracket/core/tests/mocks-zones-weekly.ts (100%) rename {app => apps/web-react/app}/features/tournament-bracket/core/tests/mocks.ts (100%) rename {app => apps/web-react/app}/features/tournament-bracket/core/tests/test-utils.ts (100%) rename {app => apps/web-react/app}/features/tournament-bracket/core/toMapList.ts (100%) rename {app => apps/web-react/app}/features/tournament-bracket/loaders/to.$id.brackets.finalize.server.ts (100%) rename {app => apps/web-react/app}/features/tournament-bracket/loaders/to.$id.brackets.server.ts (100%) rename {app => apps/web-react/app}/features/tournament-bracket/loaders/to.$id.divisions.server.ts (100%) rename {app => apps/web-react/app}/features/tournament-bracket/routes/to.$id.brackets.finalize.tsx (100%) rename {app => apps/web-react/app}/features/tournament-bracket/routes/to.$id.brackets.tsx (100%) rename {app => apps/web-react/app}/features/tournament-bracket/routes/to.$id.divisions.module.css (100%) rename {app => apps/web-react/app}/features/tournament-bracket/routes/to.$id.divisions.tsx (100%) rename {app => apps/web-react/app}/features/tournament-bracket/tournament-bracket-constants.ts (100%) rename {app => apps/web-react/app}/features/tournament-bracket/tournament-bracket-schemas.ts (100%) rename {app => apps/web-react/app}/features/tournament-bracket/tournament-bracket-search-params.test.ts (100%) rename {app => apps/web-react/app}/features/tournament-bracket/tournament-bracket-search-params.ts (100%) rename {app => apps/web-react/app}/features/tournament-bracket/tournament-bracket-urls.ts (100%) rename {app => apps/web-react/app}/features/tournament-bracket/tournament-bracket-utils.test.ts (100%) rename {app => apps/web-react/app}/features/tournament-bracket/tournament-bracket-utils.ts (100%) rename {app => apps/web-react/app}/features/tournament-bracket/tournament-bracket.module.css (100%) rename {app => apps/web-react/app}/features/tournament-lfg/TournamentLFGRepository.server.test.ts (100%) rename {app => apps/web-react/app}/features/tournament-lfg/TournamentLFGRepository.server.ts (100%) rename {app => apps/web-react/app}/features/tournament-lfg/actions/to.$id.looking.server.ts (100%) rename {app => apps/web-react/app}/features/tournament-lfg/components/LFGGroupCard.module.css (100%) rename {app => apps/web-react/app}/features/tournament-lfg/components/LFGGroupCard.tsx (100%) rename {app => apps/web-react/app}/features/tournament-lfg/loaders/to.$id.looking.server.ts (100%) rename {app => apps/web-react/app}/features/tournament-lfg/routes/to.$id.looking.module.css (100%) rename {app => apps/web-react/app}/features/tournament-lfg/routes/to.$id.looking.tsx (100%) rename {app => apps/web-react/app}/features/tournament-lfg/tournament-lfg-schemas.ts (100%) rename {app => apps/web-react/app}/features/tournament-lfg/tournament-lfg-utils.server.ts (100%) rename {app => apps/web-react/app}/features/tournament-lfg/tournament-lfg-utils.ts (100%) rename {app => apps/web-react/app}/features/tournament-match/TournamentMatchRepository.server.test.ts (100%) rename {app => apps/web-react/app}/features/tournament-match/TournamentMatchRepository.server.ts (100%) rename {app => apps/web-react/app}/features/tournament-match/actions/to.$id.matches.$mid.server.ts (100%) rename {app => apps/web-react/app}/features/tournament-match/components/OrganizerMatchMapListDialog.tsx (100%) rename {app => apps/web-react/app}/features/tournament-match/components/TournamentMatchActionPickBanTab.tsx (100%) rename {app => apps/web-react/app}/features/tournament-match/components/TournamentMatchActionTab.tsx (100%) rename {app => apps/web-react/app}/features/tournament-match/components/TournamentMatchAdminTab.module.css (100%) rename {app => apps/web-react/app}/features/tournament-match/components/TournamentMatchAdminTab.tsx (100%) rename {app => apps/web-react/app}/features/tournament-match/components/TournamentMatchBanner.tsx (100%) rename {app => apps/web-react/app}/features/tournament-match/components/TournamentMatchHeader.tsx (100%) rename {app => apps/web-react/app}/features/tournament-match/components/TournamentMatchTabs.tsx (100%) rename {app => apps/web-react/app}/features/tournament-match/core/executeRoll.server.ts (100%) rename {app => apps/web-react/app}/features/tournament-match/core/mapList.server.ts (100%) rename {app => apps/web-react/app}/features/tournament-match/core/reportScore.server.ts (100%) rename {app => apps/web-react/app}/features/tournament-match/loaders/to.$id.matches.$mid.server.ts (100%) rename {app => apps/web-react/app}/features/tournament-match/match-page-context.tsx (100%) rename {app => apps/web-react/app}/features/tournament-match/routes/to.$id.matches.$mid.test.ts (100%) rename {app => apps/web-react/app}/features/tournament-match/routes/to.$id.matches.$mid.tsx (100%) rename {app => apps/web-react/app}/features/tournament-match/tournament-match-utils.test.ts (100%) rename {app => apps/web-react/app}/features/tournament-match/tournament-match-utils.ts (100%) rename {app => apps/web-react/app}/features/tournament-organization/TournamentOrganizationRepository.server.test.ts (100%) rename {app => apps/web-react/app}/features/tournament-organization/TournamentOrganizationRepository.server.ts (100%) rename {app => apps/web-react/app}/features/tournament-organization/actions/org.$slug.edit.server.ts (100%) rename {app => apps/web-react/app}/features/tournament-organization/actions/org.$slug.server.ts (100%) rename {app => apps/web-react/app}/features/tournament-organization/actions/org.new.server.ts (100%) rename {app => apps/web-react/app}/features/tournament-organization/components/BanUserModal.tsx (100%) rename {app => apps/web-react/app}/features/tournament-organization/components/BannedPlayersList.module.css (100%) rename {app => apps/web-react/app}/features/tournament-organization/components/BannedPlayersList.tsx (100%) rename {app => apps/web-react/app}/features/tournament-organization/components/EventCalendar.tsx (100%) rename {app => apps/web-react/app}/features/tournament-organization/components/SocialLinksList.tsx (100%) rename {app => apps/web-react/app}/features/tournament-organization/core/leaderboards.server.ts (100%) rename {app => apps/web-react/app}/features/tournament-organization/core/tentativeTiers.server.ts (100%) rename {app => apps/web-react/app}/features/tournament-organization/loaders/org.$slug.edit.server.ts (100%) rename {app => apps/web-react/app}/features/tournament-organization/loaders/org.$slug.server.ts (100%) rename {app => apps/web-react/app}/features/tournament-organization/loaders/org.$slug.stats.server.ts (100%) rename {app => apps/web-react/app}/features/tournament-organization/routes/org.$slug.edit.browser.test.tsx (100%) rename {app => apps/web-react/app}/features/tournament-organization/routes/org.$slug.edit.tsx (100%) rename {app => apps/web-react/app}/features/tournament-organization/routes/org.$slug.stats.module.css (100%) rename {app => apps/web-react/app}/features/tournament-organization/routes/org.$slug.stats.test.ts (100%) rename {app => apps/web-react/app}/features/tournament-organization/routes/org.$slug.stats.tsx (100%) rename {app => apps/web-react/app}/features/tournament-organization/routes/org.$slug.tsx (100%) rename {app => apps/web-react/app}/features/tournament-organization/routes/org.new.tsx (100%) rename {app => apps/web-react/app}/features/tournament-organization/test-utils.ts (100%) rename {app => apps/web-react/app}/features/tournament-organization/tournament-organization-constants.ts (100%) rename {app => apps/web-react/app}/features/tournament-organization/tournament-organization-schemas.server.ts (100%) rename {app => apps/web-react/app}/features/tournament-organization/tournament-organization-schemas.ts (100%) rename {app => apps/web-react/app}/features/tournament-organization/tournament-organization-search-params.test.ts (100%) rename {app => apps/web-react/app}/features/tournament-organization/tournament-organization-search-params.ts (100%) rename {app => apps/web-react/app}/features/tournament-organization/tournament-organization-urls.test.ts (100%) rename {app => apps/web-react/app}/features/tournament-organization/tournament-organization-urls.ts (100%) rename {app => apps/web-react/app}/features/tournament-organization/tournament-organization-utils.server.ts (100%) rename {app => apps/web-react/app}/features/tournament-organization/tournament-organization.module.css (100%) rename {app => apps/web-react/app}/features/tournament-subs/loaders/to.$id.subs.server.ts (100%) rename {app => apps/web-react/app}/features/tournament-subs/routes/to.$id.subs.tsx (100%) rename {app => apps/web-react/app}/features/tournament/SavedCalendarEventRepository.server.ts (100%) rename {app => apps/web-react/app}/features/tournament/TournamentAuditLogRepository.server.test.ts (100%) rename {app => apps/web-react/app}/features/tournament/TournamentAuditLogRepository.server.ts (100%) rename {app => apps/web-react/app}/features/tournament/TournamentRepository.finalize.test.ts (100%) rename {app => apps/web-react/app}/features/tournament/TournamentRepository.permissions.test.ts (100%) rename {app => apps/web-react/app}/features/tournament/TournamentRepository.searchByName.test.ts (100%) rename {app => apps/web-react/app}/features/tournament/TournamentRepository.server.ts (100%) rename {app => apps/web-react/app}/features/tournament/TournamentRepository.showcaseCounts.test.ts (100%) rename {app => apps/web-react/app}/features/tournament/TournamentTeamRepository.server.test.ts (100%) rename {app => apps/web-react/app}/features/tournament/TournamentTeamRepository.server.ts (100%) rename {app => apps/web-react/app}/features/tournament/actions/to.$id.info.server.ts (100%) rename {app => apps/web-react/app}/features/tournament/actions/to.$id.join.server.ts (100%) rename {app => apps/web-react/app}/features/tournament/actions/to.$id.register.server.ts (100%) rename {app => apps/web-react/app}/features/tournament/components/CounterPickMapPoolPicker.tsx (100%) rename {app => apps/web-react/app}/features/tournament/components/FactCard.module.css (100%) rename {app => apps/web-react/app}/features/tournament/components/FactCard.tsx (100%) rename {app => apps/web-react/app}/features/tournament/components/RegistrationActions.tsx (100%) rename {app => apps/web-react/app}/features/tournament/components/TeamWithRoster.tsx (100%) rename {app => apps/web-react/app}/features/tournament/components/TournamentHeader.module.css (100%) rename {app => apps/web-react/app}/features/tournament/components/TournamentHeader.tsx (100%) rename {app => apps/web-react/app}/features/tournament/components/TournamentNav.module.css (100%) rename {app => apps/web-react/app}/features/tournament/components/TournamentNav.tsx (100%) rename {app => apps/web-react/app}/features/tournament/components/TournamentStream.tsx (100%) rename {app => apps/web-react/app}/features/tournament/core/Standings.test.ts (100%) rename {app => apps/web-react/app}/features/tournament/core/Standings.ts (100%) rename {app => apps/web-react/app}/features/tournament/core/layout-payload.ts (100%) rename {app => apps/web-react/app}/features/tournament/core/sets.server.test.ts (100%) rename {app => apps/web-react/app}/features/tournament/core/sets.server.ts (100%) rename {app => apps/web-react/app}/features/tournament/core/tiering.test.ts (100%) rename {app => apps/web-react/app}/features/tournament/core/tiering.ts (100%) rename {app => apps/web-react/app}/features/tournament/loaders/to.$id.info.server.ts (100%) rename {app => apps/web-react/app}/features/tournament/loaders/to.$id.join.server.ts (100%) rename {app => apps/web-react/app}/features/tournament/loaders/to.$id.register.server.ts (100%) rename {app => apps/web-react/app}/features/tournament/loaders/to.$id.results.server.ts (100%) rename {app => apps/web-react/app}/features/tournament/loaders/to.$id.rules.server.ts (100%) rename {app => apps/web-react/app}/features/tournament/loaders/to.$id.server.ts (100%) rename {app => apps/web-react/app}/features/tournament/loaders/to.$id.streams.server.ts (100%) rename {app => apps/web-react/app}/features/tournament/loaders/to.$id.teams.$tid.comps.server.ts (100%) rename {app => apps/web-react/app}/features/tournament/loaders/to.$id.teams.$tid.server.ts (100%) rename {app => apps/web-react/app}/features/tournament/loaders/to.$id.teams.server.ts (100%) rename {app => apps/web-react/app}/features/tournament/routes/luti.ts (100%) rename {app => apps/web-react/app}/features/tournament/routes/to.$id.index.ts (100%) rename {app => apps/web-react/app}/features/tournament/routes/to.$id.info.module.css (100%) rename {app => apps/web-react/app}/features/tournament/routes/to.$id.info.tsx (100%) rename {app => apps/web-react/app}/features/tournament/routes/to.$id.join.tsx (100%) rename {app => apps/web-react/app}/features/tournament/routes/to.$id.register.tsx (100%) rename {app => apps/web-react/app}/features/tournament/routes/to.$id.results.tsx (100%) rename {app => apps/web-react/app}/features/tournament/routes/to.$id.rules.tsx (100%) rename {app => apps/web-react/app}/features/tournament/routes/to.$id.streams.tsx (100%) rename {app => apps/web-react/app}/features/tournament/routes/to.$id.teams.$tid.comps.ts (100%) rename {app => apps/web-react/app}/features/tournament/routes/to.$id.teams.$tid.tsx (100%) rename {app => apps/web-react/app}/features/tournament/routes/to.$id.teams.tsx (100%) rename {app => apps/web-react/app}/features/tournament/routes/to.$id.tsx (100%) rename {app => apps/web-react/app}/features/tournament/routes/to.search.ts (100%) rename {app => apps/web-react/app}/features/tournament/tournament-constants.ts (100%) rename {app => apps/web-react/app}/features/tournament/tournament-context.tsx (100%) rename {app => apps/web-react/app}/features/tournament/tournament-register-schemas.server.ts (100%) rename {app => apps/web-react/app}/features/tournament/tournament-register-schemas.ts (100%) rename {app => apps/web-react/app}/features/tournament/tournament-schemas.server.ts (100%) rename {app => apps/web-react/app}/features/tournament/tournament-schemas.ts (100%) rename {app => apps/web-react/app}/features/tournament/tournament-search-params.test.ts (100%) rename {app => apps/web-react/app}/features/tournament/tournament-search-params.ts (100%) rename {app => apps/web-react/app}/features/tournament/tournament-urls.ts (100%) rename {app => apps/web-react/app}/features/tournament/tournament-utils.server.ts (100%) rename {app => apps/web-react/app}/features/tournament/tournament-utils.test.ts (100%) rename {app => apps/web-react/app}/features/tournament/tournament-utils.ts (100%) rename {app => apps/web-react/app}/features/tournament/tournament.module.css (100%) rename {app => apps/web-react/app}/features/trophies/TrophyRepository.server.test.ts (100%) rename {app => apps/web-react/app}/features/trophies/TrophyRepository.server.ts (100%) rename {app => apps/web-react/app}/features/trophies/actions/trophies.new.server.ts (100%) rename {app => apps/web-react/app}/features/trophies/components/TournamentSummaryRow.module.css (100%) rename {app => apps/web-react/app}/features/trophies/components/TournamentSummaryRow.tsx (100%) rename {app => apps/web-react/app}/features/trophies/components/TrophiesSelector.module.css (100%) rename {app => apps/web-react/app}/features/trophies/components/TrophiesSelector.tsx (100%) rename {app => apps/web-react/app}/features/trophies/components/Trophy.module.css (100%) rename {app => apps/web-react/app}/features/trophies/components/Trophy.tsx (100%) rename {app => apps/web-react/app}/features/trophies/components/TrophyDisplay.module.css (100%) rename {app => apps/web-react/app}/features/trophies/components/TrophyDisplay.tsx (100%) rename {app => apps/web-react/app}/features/trophies/components/TrophyShowcase.module.css (100%) rename {app => apps/web-react/app}/features/trophies/components/TrophyShowcase.tsx (100%) rename {app => apps/web-react/app}/features/trophies/components/TrophyTournamentHistory.module.css (100%) rename {app => apps/web-react/app}/features/trophies/components/TrophyTournamentHistory.tsx (100%) rename {app => apps/web-react/app}/features/trophies/core/model-analysis.ts (100%) rename {app => apps/web-react/app}/features/trophies/loaders/trophies.$id.server.ts (100%) rename {app => apps/web-react/app}/features/trophies/loaders/trophies.new.server.ts (100%) rename {app => apps/web-react/app}/features/trophies/loaders/trophies.server.ts (100%) rename {app => apps/web-react/app}/features/trophies/routes/trophies.$id.tournaments.ts (100%) rename {app => apps/web-react/app}/features/trophies/routes/trophies.$id.tsx (100%) rename {app => apps/web-react/app}/features/trophies/routes/trophies.$id.wins.$userId.ts (100%) rename {app => apps/web-react/app}/features/trophies/routes/trophies.module.css (100%) rename {app => apps/web-react/app}/features/trophies/routes/trophies.new.module.css (100%) rename {app => apps/web-react/app}/features/trophies/routes/trophies.new.test.ts (100%) rename {app => apps/web-react/app}/features/trophies/routes/trophies.new.tsx (100%) rename {app => apps/web-react/app}/features/trophies/routes/trophies.tsx (100%) rename {app => apps/web-react/app}/features/trophies/trophies-constants.ts (100%) rename {app => apps/web-react/app}/features/trophies/trophies-schemas.ts (100%) rename {app => apps/web-react/app}/features/trophies/trophies-utils.test.ts (100%) rename {app => apps/web-react/app}/features/trophies/trophies-utils.ts (100%) rename {app => apps/web-react/app}/features/user-card/UserCardRepository.server.test.ts (100%) rename {app => apps/web-react/app}/features/user-card/UserCardRepository.server.ts (100%) rename {app => apps/web-react/app}/features/user-card/actions/user-card.edit.server.ts (100%) rename {app => apps/web-react/app}/features/user-card/components/AddPrivateNoteDialog.tsx (100%) rename {app => apps/web-react/app}/features/user-card/components/UserCard.module.css (100%) rename {app => apps/web-react/app}/features/user-card/components/UserCard.tsx (100%) rename {app => apps/web-react/app}/features/user-card/loaders/user-card.edit.server.ts (100%) rename {app => apps/web-react/app}/features/user-card/routes/user-card.$id.friendship.ts (100%) rename {app => apps/web-react/app}/features/user-card/routes/user-card.$id.note.ts (100%) rename {app => apps/web-react/app}/features/user-card/routes/user-card.edit.module.css (100%) rename {app => apps/web-react/app}/features/user-card/routes/user-card.edit.tsx (100%) rename {app => apps/web-react/app}/features/user-card/user-card-constants.ts (100%) rename {app => apps/web-react/app}/features/user-card/user-card-schemas.ts (100%) rename {app => apps/web-react/app}/features/user-card/user-card-search-params.test.ts (100%) rename {app => apps/web-react/app}/features/user-card/user-card-search-params.ts (100%) rename {app => apps/web-react/app}/features/user-card/user-card-types.ts (100%) rename {app => apps/web-react/app}/features/user-card/user-card-urls.ts (100%) rename {app => apps/web-react/app}/features/user-card/user-card-utils.ts (100%) rename {app => apps/web-react/app}/features/user-page/UserRepository.server.ts (100%) rename {app => apps/web-react/app}/features/user-page/UserRepository.test.ts (100%) rename {app => apps/web-react/app}/features/user-page/actions/u.$identifier.admin.server.ts (100%) rename {app => apps/web-react/app}/features/user-page/actions/u.$identifier.art.server.ts (100%) rename {app => apps/web-react/app}/features/user-page/actions/u.$identifier.builds.new.server.ts (100%) rename {app => apps/web-react/app}/features/user-page/actions/u.$identifier.builds.server.ts (100%) rename {app => apps/web-react/app}/features/user-page/actions/u.$identifier.edit-widgets.server.ts (100%) rename {app => apps/web-react/app}/features/user-page/actions/u.$identifier.edit.server.ts (100%) rename {app => apps/web-react/app}/features/user-page/actions/u.$identifier.results.highlights.server.ts (100%) rename {app => apps/web-react/app}/features/user-page/bio-json.server.test.ts (100%) rename {app => apps/web-react/app}/features/user-page/components/GameBadgeSelectField.module.css (100%) rename {app => apps/web-react/app}/features/user-page/components/GameBadgeSelectField.tsx (100%) rename {app => apps/web-react/app}/features/user-page/components/MutualFriends.module.css (100%) rename {app => apps/web-react/app}/features/user-page/components/MutualFriends.tsx (100%) rename {app => apps/web-react/app}/features/user-page/components/NewBuildForm.browser.test.tsx (100%) rename {app => apps/web-react/app}/features/user-page/components/NewBuildForm.tsx (100%) rename {app => apps/web-react/app}/features/user-page/components/ParticipationPill.module.css (100%) rename {app => apps/web-react/app}/features/user-page/components/ParticipationPill.tsx (100%) rename {app => apps/web-react/app}/features/user-page/components/ResultsFiltersBar.tsx (100%) rename {app => apps/web-react/app}/features/user-page/components/SubPageHeader.module.css (100%) rename {app => apps/web-react/app}/features/user-page/components/SubPageHeader.tsx (100%) rename {app => apps/web-react/app}/features/user-page/components/UserPageIconNav.module.css (100%) rename {app => apps/web-react/app}/features/user-page/components/UserPageIconNav.tsx (100%) rename {app => apps/web-react/app}/features/user-page/components/UserResultsTable.tsx (100%) rename {app => apps/web-react/app}/features/user-page/components/Widget.module.css (100%) rename {app => apps/web-react/app}/features/user-page/components/Widget.tsx (100%) rename {app => apps/web-react/app}/features/user-page/components/WidgetSettingsForm.tsx (100%) rename {app => apps/web-react/app}/features/user-page/core/badge-sorting.server.test.ts (100%) rename {app => apps/web-react/app}/features/user-page/core/badge-sorting.server.ts (100%) rename {app => apps/web-react/app}/features/user-page/core/build-sorting.server.test.ts (100%) rename {app => apps/web-react/app}/features/user-page/core/build-sorting.server.ts (100%) rename {app => apps/web-react/app}/features/user-page/core/trophy-sorting.server.ts (100%) rename {app => apps/web-react/app}/features/user-page/core/widgets/leaderboard-cache.test.ts (100%) rename {app => apps/web-react/app}/features/user-page/core/widgets/portfolio-loaders.server.ts (100%) rename {app => apps/web-react/app}/features/user-page/core/widgets/portfolio.ts (100%) rename {app => apps/web-react/app}/features/user-page/core/widgets/types.ts (100%) rename {app => apps/web-react/app}/features/user-page/core/widgets/utils.server.ts (100%) rename {app => apps/web-react/app}/features/user-page/core/widgets/widget-form-schemas.ts (100%) rename {app => apps/web-react/app}/features/user-page/custom-theme-json.server.test.ts (100%) rename {app => apps/web-react/app}/features/user-page/in-game-name.test.ts (100%) rename {app => apps/web-react/app}/features/user-page/in-game-name.ts (100%) rename {app => apps/web-react/app}/features/user-page/loaders/u.$identifier.admin.server.ts (100%) rename {app => apps/web-react/app}/features/user-page/loaders/u.$identifier.art.server.ts (100%) rename {app => apps/web-react/app}/features/user-page/loaders/u.$identifier.builds.new.server.ts (100%) rename {app => apps/web-react/app}/features/user-page/loaders/u.$identifier.builds.server.ts (100%) rename {app => apps/web-react/app}/features/user-page/loaders/u.$identifier.edit-widgets.server.ts (100%) rename {app => apps/web-react/app}/features/user-page/loaders/u.$identifier.edit.server.ts (100%) rename {app => apps/web-react/app}/features/user-page/loaders/u.$identifier.index.server.ts (100%) rename {app => apps/web-react/app}/features/user-page/loaders/u.$identifier.results.server.ts (100%) rename {app => apps/web-react/app}/features/user-page/loaders/u.$identifier.seasons.index.server.ts (100%) rename {app => apps/web-react/app}/features/user-page/loaders/u.$identifier.seasons.server.ts (100%) rename {app => apps/web-react/app}/features/user-page/loaders/u.$identifier.seasons.stats.server.ts (100%) rename {app => apps/web-react/app}/features/user-page/loaders/u.$identifier.seasons.summary-graphic.server.ts (100%) rename {app => apps/web-react/app}/features/user-page/loaders/u.$identifier.server.ts (100%) rename {app => apps/web-react/app}/features/user-page/loaders/u.$identifier.vods.server.ts (100%) rename {app => apps/web-react/app}/features/user-page/routes/short.$customUrl.ts (100%) rename {app => apps/web-react/app}/features/user-page/routes/u.$identifier.admin.tsx (100%) rename {app => apps/web-react/app}/features/user-page/routes/u.$identifier.art.tsx (100%) rename {app => apps/web-react/app}/features/user-page/routes/u.$identifier.builds.module.css (100%) rename {app => apps/web-react/app}/features/user-page/routes/u.$identifier.builds.new.tsx (100%) rename {app => apps/web-react/app}/features/user-page/routes/u.$identifier.builds.tsx (100%) rename {app => apps/web-react/app}/features/user-page/routes/u.$identifier.edit-widgets.module.css (100%) rename {app => apps/web-react/app}/features/user-page/routes/u.$identifier.edit-widgets.tsx (100%) rename {app => apps/web-react/app}/features/user-page/routes/u.$identifier.edit.test.ts (100%) rename {app => apps/web-react/app}/features/user-page/routes/u.$identifier.edit.tsx (100%) rename {app => apps/web-react/app}/features/user-page/routes/u.$identifier.index.tsx (100%) rename {app => apps/web-react/app}/features/user-page/routes/u.$identifier.module.css (100%) rename {app => apps/web-react/app}/features/user-page/routes/u.$identifier.results.highlights.tsx (100%) rename {app => apps/web-react/app}/features/user-page/routes/u.$identifier.results.tsx (100%) rename {app => apps/web-react/app}/features/user-page/routes/u.$identifier.seasons.index.tsx (100%) rename {app => apps/web-react/app}/features/user-page/routes/u.$identifier.seasons.stats.tsx (100%) rename {app => apps/web-react/app}/features/user-page/routes/u.$identifier.seasons.summary-graphic.ts (100%) rename {app => apps/web-react/app}/features/user-page/routes/u.$identifier.seasons.tsx (100%) rename {app => apps/web-react/app}/features/user-page/routes/u.$identifier.tsx (100%) rename {app => apps/web-react/app}/features/user-page/routes/u.$identifier.vods.tsx (100%) rename {app => apps/web-react/app}/features/user-page/user-page-constants.ts (100%) rename {app => apps/web-react/app}/features/user-page/user-page-schemas.server.ts (100%) rename {app => apps/web-react/app}/features/user-page/user-page-schemas.ts (100%) rename {app => apps/web-react/app}/features/user-page/user-page-search-params.test.ts (100%) rename {app => apps/web-react/app}/features/user-page/user-page-search-params.ts (100%) rename {app => apps/web-react/app}/features/user-page/user-page-urls.ts (100%) rename {app => apps/web-react/app}/features/user-page/user-page.module.css (100%) rename {app => apps/web-react/app}/features/user-report/UserReportRepository.server.ts (100%) rename {app => apps/web-react/app}/features/user-report/components/ReportUserDialog.tsx (100%) rename {app => apps/web-react/app}/features/user-report/components/ReportsBarChart.module.css (100%) rename {app => apps/web-react/app}/features/user-report/components/ReportsBarChart.tsx (100%) rename {app => apps/web-react/app}/features/user-report/core/discord-webhook.server.ts (100%) rename {app => apps/web-react/app}/features/user-report/routes/user-report.$id.ts (100%) rename {app => apps/web-react/app}/features/user-report/user-report-constants.ts (100%) rename {app => apps/web-react/app}/features/user-report/user-report-schemas.server.ts (100%) rename {app => apps/web-react/app}/features/user-report/user-report-schemas.ts (100%) rename {app => apps/web-react/app}/features/user-search/routes/u.tsx (100%) rename {app => apps/web-react/app}/features/vods/VodRepository.server.test.ts (100%) rename {app => apps/web-react/app}/features/vods/VodRepository.server.ts (100%) rename {app => apps/web-react/app}/features/vods/actions/vods.$id.server.ts (100%) rename {app => apps/web-react/app}/features/vods/actions/vods.new.server.ts (100%) rename {app => apps/web-react/app}/features/vods/components/VodListing.module.css (100%) rename {app => apps/web-react/app}/features/vods/components/VodListing.tsx (100%) rename {app => apps/web-react/app}/features/vods/components/VodPov.tsx (100%) rename {app => apps/web-react/app}/features/vods/loaders/vods.$id.server.ts (100%) rename {app => apps/web-react/app}/features/vods/loaders/vods.new.server.ts (100%) rename {app => apps/web-react/app}/features/vods/loaders/vods.server.ts (100%) rename {app => apps/web-react/app}/features/vods/routes/vods.$id.module.css (100%) rename {app => apps/web-react/app}/features/vods/routes/vods.$id.tsx (100%) rename {app => apps/web-react/app}/features/vods/routes/vods.module.css (100%) rename {app => apps/web-react/app}/features/vods/routes/vods.new.browser.test.tsx (100%) rename {app => apps/web-react/app}/features/vods/routes/vods.new.module.css (100%) rename {app => apps/web-react/app}/features/vods/routes/vods.new.test.ts (100%) rename {app => apps/web-react/app}/features/vods/routes/vods.new.tsx (100%) rename {app => apps/web-react/app}/features/vods/routes/vods.tsx (100%) rename {app => apps/web-react/app}/features/vods/vods-constants.ts (100%) rename {app => apps/web-react/app}/features/vods/vods-schemas.server.ts (100%) rename {app => apps/web-react/app}/features/vods/vods-schemas.ts (100%) rename {app => apps/web-react/app}/features/vods/vods-search-params.test.ts (100%) rename {app => apps/web-react/app}/features/vods/vods-search-params.ts (100%) rename {app => apps/web-react/app}/features/vods/vods-types.ts (100%) rename {app => apps/web-react/app}/features/vods/vods-urls.ts (100%) rename {app => apps/web-react/app}/features/vods/vods-utils.test.ts (100%) rename {app => apps/web-react/app}/features/vods/vods-utils.ts (100%) rename {app => apps/web-react/app}/form/FormField.tsx (100%) rename {app => apps/web-react/app}/form/SendouForm.browser.test.tsx (100%) rename {app => apps/web-react/app}/form/SendouForm.module.css (100%) rename {app => apps/web-react/app}/form/SendouForm.tsx (100%) rename {app => apps/web-react/app}/form/UnsavedChangesGuard.tsx (100%) rename {app => apps/web-react/app}/form/fields.ts (100%) rename {app => apps/web-react/app}/form/fields/ArrayFormField.module.css (100%) rename {app => apps/web-react/app}/form/fields/ArrayFormField.tsx (100%) rename {app => apps/web-react/app}/form/fields/BadgesFormField.tsx (100%) rename {app => apps/web-react/app}/form/fields/DatetimeFormField.tsx (100%) rename {app => apps/web-react/app}/form/fields/DualSelectFormField.tsx (100%) rename {app => apps/web-react/app}/form/fields/FieldsetFormField.tsx (100%) rename {app => apps/web-react/app}/form/fields/FormFieldWrapper.module.css (100%) rename {app => apps/web-react/app}/form/fields/FormFieldWrapper.tsx (100%) rename {app => apps/web-react/app}/form/fields/ImageFormField.module.css (100%) rename {app => apps/web-react/app}/form/fields/ImageFormField.tsx (100%) rename {app => apps/web-react/app}/form/fields/InGameNameFormField.tsx (100%) rename {app => apps/web-react/app}/form/fields/InputFormField.tsx (100%) rename {app => apps/web-react/app}/form/fields/InputGroupFormField.tsx (100%) rename {app => apps/web-react/app}/form/fields/SelectFormField.module.css (100%) rename {app => apps/web-react/app}/form/fields/SelectFormField.tsx (100%) rename {app => apps/web-react/app}/form/fields/StageSelectFormField.module.css (100%) rename {app => apps/web-react/app}/form/fields/StageSelectFormField.tsx (100%) rename {app => apps/web-react/app}/form/fields/SwitchFormField.tsx (100%) rename {app => apps/web-react/app}/form/fields/TeamSearchFormField.tsx (100%) rename {app => apps/web-react/app}/form/fields/TextareaFormField.tsx (100%) rename {app => apps/web-react/app}/form/fields/TimeRangeFormField.tsx (100%) rename {app => apps/web-react/app}/form/fields/TournamentSearchFormField.tsx (100%) rename {app => apps/web-react/app}/form/fields/TrophiesFormField.tsx (100%) rename {app => apps/web-react/app}/form/fields/UserSearchFormField.module.css (100%) rename {app => apps/web-react/app}/form/fields/UserSearchFormField.tsx (100%) rename {app => apps/web-react/app}/form/fields/WeaponPoolFormField.module.css (100%) rename {app => apps/web-react/app}/form/fields/WeaponPoolFormField.tsx (100%) rename {app => apps/web-react/app}/form/fields/WeaponSelectFormField.module.css (100%) rename {app => apps/web-react/app}/form/fields/WeaponSelectFormField.tsx (100%) rename {app => apps/web-react/app}/form/image-field.ts (100%) rename {app => apps/web-react/app}/form/index.ts (100%) rename {app => apps/web-react/app}/form/parse.server.ts (100%) rename {app => apps/web-react/app}/form/types.ts (100%) rename {app => apps/web-react/app}/form/utils.test.ts (100%) rename {app => apps/web-react/app}/form/utils.ts (100%) rename {app => apps/web-react/app}/hooks/intl/useDateTimeFormat.ts (100%) rename {app => apps/web-react/app}/hooks/intl/useFormatDistanceToNow.ts (100%) rename {app => apps/web-react/app}/hooks/intl/useUserIntlPreference.ts (100%) rename {app => apps/web-react/app}/hooks/swr.ts (100%) rename {app => apps/web-react/app}/hooks/useActionSubmit.ts (100%) rename {app => apps/web-react/app}/hooks/useAutoRerender.ts (100%) rename {app => apps/web-react/app}/hooks/useBackgroundResource.ts (100%) rename {app => apps/web-react/app}/hooks/useCopyToClipboard.ts (100%) rename {app => apps/web-react/app}/hooks/useDebounce.ts (100%) rename {app => apps/web-react/app}/hooks/useHydrated.ts (100%) rename {app => apps/web-react/app}/hooks/useIsomorphicLayoutEffect.ts (100%) rename {app => apps/web-react/app}/hooks/useMainContentWidth.ts (100%) rename {app => apps/web-react/app}/hooks/usePagination.ts (100%) rename {app => apps/web-react/app}/hooks/usePrefersReducedMotion.ts (100%) rename {app => apps/web-react/app}/hooks/useRecentlyReportedWeapons.test.ts (100%) rename {app => apps/web-react/app}/hooks/useRecentlyReportedWeapons.ts (100%) rename {app => apps/web-react/app}/hooks/useReloadOnNewDeploy.ts (100%) rename {app => apps/web-react/app}/hooks/useSearchParamPagination.ts (100%) rename {app => apps/web-react/app}/hooks/useSpoilerFree.test.ts (100%) rename {app => apps/web-react/app}/hooks/useSpoilerFree.ts (100%) rename {app => apps/web-react/app}/hooks/useThemeColors.ts (100%) rename {app => apps/web-react/app}/hooks/useUnseenFriendRequests.test.ts (100%) rename {app => apps/web-react/app}/hooks/useUnseenFriendRequests.ts (100%) rename {app => apps/web-react/app}/hooks/useVisualViewportHeight.ts (100%) rename {app => apps/web-react/app}/hooks/useWindowSize.ts (100%) rename {app => apps/web-react/app}/modules/cache/index.test.ts (100%) rename {app => apps/web-react/app}/modules/cache/index.ts (100%) rename {app => apps/web-react/app}/modules/csv.test.ts (100%) rename {app => apps/web-react/app}/modules/csv.ts (100%) rename {app => apps/web-react/app}/modules/discord-webhook.server.ts (100%) rename {app => apps/web-react/app}/modules/i18n/InitialI18nStore.tsx (100%) rename {app => apps/web-react/app}/modules/i18n/config.ts (100%) rename {app => apps/web-react/app}/modules/i18n/i18next.server.ts (100%) rename {app => apps/web-react/app}/modules/i18n/loader.ts (100%) rename {app => apps/web-react/app}/modules/i18n/resources.browser.ts (100%) rename {app => apps/web-react/app}/modules/i18n/resources.server.ts (100%) rename {app => apps/web-react/app}/modules/i18n/useChangeLanguage.ts (100%) rename {app => apps/web-react/app}/modules/in-game-lists/abilities.ts (100%) rename {app => apps/web-react/app}/modules/in-game-lists/brand-ids.ts (100%) rename {app => apps/web-react/app}/modules/in-game-lists/game-badge-ids.ts (100%) rename {app => apps/web-react/app}/modules/in-game-lists/games.ts (100%) rename {app => apps/web-react/app}/modules/in-game-lists/gear-ids.ts (100%) rename {app => apps/web-react/app}/modules/in-game-lists/modes.ts (100%) rename {app => apps/web-react/app}/modules/in-game-lists/stage-ids.ts (100%) rename {app => apps/web-react/app}/modules/in-game-lists/types.ts (100%) rename {app => apps/web-react/app}/modules/in-game-lists/utils.test.ts (100%) rename {app => apps/web-react/app}/modules/in-game-lists/utils.ts (100%) rename {app => apps/web-react/app}/modules/in-game-lists/weapon-alt-names.ts (100%) rename {app => apps/web-react/app}/modules/in-game-lists/weapon-ids.test.ts (100%) rename {app => apps/web-react/app}/modules/in-game-lists/weapon-ids.ts (100%) rename {app => apps/web-react/app}/modules/patreon/constants.ts (100%) rename {app => apps/web-react/app}/modules/patreon/index.ts (100%) rename {app => apps/web-react/app}/modules/patreon/schema.ts (100%) rename {app => apps/web-react/app}/modules/patreon/updater.ts (100%) rename {app => apps/web-react/app}/modules/permissions/guards.server.ts (100%) rename {app => apps/web-react/app}/modules/permissions/hooks.ts (100%) rename {app => apps/web-react/app}/modules/permissions/mapper.server.ts (100%) rename {app => apps/web-react/app}/modules/permissions/types.ts (100%) rename {app => apps/web-react/app}/modules/permissions/utils.test.ts (100%) rename {app => apps/web-react/app}/modules/permissions/utils.ts (100%) rename {app => apps/web-react/app}/modules/persisted-state/hooks.browser.test.tsx (100%) rename {app => apps/web-react/app}/modules/persisted-state/hooks.ts (100%) rename {app => apps/web-react/app}/modules/persisted-state/persisted-state-test-utils.ts (100%) rename {app => apps/web-react/app}/modules/persisted-state/persisted-state.test.ts (100%) rename {app => apps/web-react/app}/modules/persisted-state/persisted-state.ts (100%) rename {app => apps/web-react/app}/modules/responsive-masonry/components/Masonry.tsx (100%) rename {app => apps/web-react/app}/modules/responsive-masonry/components/ResponsiveMasonry.tsx (100%) rename {app => apps/web-react/app}/modules/search-params/hooks.browser.test.tsx (100%) rename {app => apps/web-react/app}/modules/search-params/hooks.ts (100%) rename {app => apps/web-react/app}/modules/search-params/search-params-test-utils.ts (100%) rename {app => apps/web-react/app}/modules/search-params/search-params.test.ts (100%) rename {app => apps/web-react/app}/modules/search-params/search-params.ts (100%) rename {app => apps/web-react/app}/modules/search-params/store.ts (100%) rename {app => apps/web-react/app}/modules/tournament-map-list-generator/balanced-map-list.ts (100%) rename {app => apps/web-react/app}/modules/tournament-map-list-generator/constants.ts (100%) rename {app => apps/web-react/app}/modules/tournament-map-list-generator/generation.test.ts (100%) rename {app => apps/web-react/app}/modules/tournament-map-list-generator/source.ts (100%) rename {app => apps/web-react/app}/modules/tournament-map-list-generator/starter-map.ts (100%) rename {app => apps/web-react/app}/modules/tournament-map-list-generator/types.ts (100%) rename {app => apps/web-react/app}/modules/twitch/fetch.ts (100%) rename {app => apps/web-react/app}/modules/twitch/index.ts (100%) rename {app => apps/web-react/app}/modules/twitch/schemas.ts (100%) rename {app => apps/web-react/app}/modules/twitch/streams.ts (100%) rename {app => apps/web-react/app}/modules/twitch/token.ts (100%) rename {app => apps/web-react/app}/modules/twitch/utils.server.ts (100%) rename {app => apps/web-react/app}/modules/twitch/utils.ts (100%) rename {app => apps/web-react/app}/modules/twitch/vods.test.ts (100%) rename {app => apps/web-react/app}/modules/twitch/vods.ts (100%) rename {app => apps/web-react/app}/root.tsx (100%) rename {app => apps/web-react/app}/routes.ts (100%) rename {app => apps/web-react/app}/routines/closeExpiredCommissions.ts (100%) rename {app => apps/web-react/app}/routines/closeExpiredContinueVotes.test.ts (100%) rename {app => apps/web-react/app}/routines/closeExpiredContinueVotes.ts (100%) rename {app => apps/web-react/app}/routines/computeLutiDivs.ts (100%) rename {app => apps/web-react/app}/routines/deleteObsoleteMatchVods.ts (100%) rename {app => apps/web-react/app}/routines/deleteOldExternalStreams.ts (100%) rename {app => apps/web-react/app}/routines/deleteOldNotifications.ts (100%) rename {app => apps/web-react/app}/routines/deleteOldPendingFriendRequests.ts (100%) rename {app => apps/web-react/app}/routines/deleteOldScrimPickupRosters.ts (100%) rename {app => apps/web-react/app}/routines/deleteOldTournamentAuditLogs.ts (100%) rename {app => apps/web-react/app}/routines/deleteOrphanArtTags.ts (100%) rename {app => apps/web-react/app}/routines/evictStaleRunningTournaments.ts (100%) rename {app => apps/web-react/app}/routines/expireReadyChecks.ts (100%) rename {app => apps/web-react/app}/routines/list.server.ts (100%) rename {app => apps/web-react/app}/routines/notifyCheckInStart.test.ts (100%) rename {app => apps/web-react/app}/routines/notifyCheckInStart.ts (100%) rename {app => apps/web-react/app}/routines/notifyPlusServerVoting.ts (100%) rename {app => apps/web-react/app}/routines/notifyScrimStartingSoon.ts (100%) rename {app => apps/web-react/app}/routines/notifySeasonStart.ts (100%) rename {app => apps/web-react/app}/routines/optimizeDatabase.ts (100%) rename {app => apps/web-react/app}/routines/resolveStaleSQMatches.test.ts (100%) rename {app => apps/web-react/app}/routines/resolveStaleSQMatches.ts (100%) rename {app => apps/web-react/app}/routines/routine.server.ts (100%) rename {app => apps/web-react/app}/routines/setOldGroupsAsInactive.ts (100%) rename {app => apps/web-react/app}/routines/syncLiveStreams.test.ts (100%) rename {app => apps/web-react/app}/routines/syncLiveStreams.ts (100%) rename {app => apps/web-react/app}/routines/syncSplatoonRotations.ts (100%) rename {app => apps/web-react/app}/routines/syncTournamentVods.test.ts (100%) rename {app => apps/web-react/app}/routines/syncTournamentVods.ts (100%) rename {app => apps/web-react/app}/routines/updatePatreonData.ts (100%) rename {app => apps/web-react/app}/styles/common.css (100%) rename {app => apps/web-react/app}/styles/flags.css (100%) rename {app => apps/web-react/app}/styles/fonts.css (100%) rename {app => apps/web-react/app}/styles/fonts/lexend-latin-ext.woff2 (100%) rename {app => apps/web-react/app}/styles/fonts/lexend-latin.woff2 (100%) rename {app => apps/web-react/app}/styles/front.module.css (100%) rename {app => apps/web-react/app}/styles/normalize.css (100%) rename {app => apps/web-react/app}/styles/utils.css (100%) rename {app => apps/web-react/app}/styles/vars.css (100%) rename {app => apps/web-react/app}/test-setup.ts (100%) rename {app => apps/web-react/app}/utils/Test.ts (100%) rename {app => apps/web-react/app}/utils/action-schemas.ts (100%) rename {app => apps/web-react/app}/utils/arrays.test.ts (100%) rename {app => apps/web-react/app}/utils/arrays.ts (100%) rename {app => apps/web-react/app}/utils/cache.server.ts (100%) rename {app => apps/web-react/app}/utils/compression.test.ts (100%) rename {app => apps/web-react/app}/utils/compression.ts (100%) rename {app => apps/web-react/app}/utils/dates.test.ts (100%) rename {app => apps/web-react/app}/utils/dates.ts (100%) rename {app => apps/web-react/app}/utils/e2e.ts (100%) rename {app => apps/web-react/app}/utils/errors.ts (100%) rename {app => apps/web-react/app}/utils/fetch.ts (100%) rename {app => apps/web-react/app}/utils/git-commit.ts (100%) rename {app => apps/web-react/app}/utils/i18n.test.ts (100%) rename {app => apps/web-react/app}/utils/i18n.ts (100%) rename {app => apps/web-react/app}/utils/id.ts (100%) rename {app => apps/web-react/app}/utils/invariant.ts (100%) rename {app => apps/web-react/app}/utils/kysely.server.ts (100%) rename {app => apps/web-react/app}/utils/logger.ts (100%) rename {app => apps/web-react/app}/utils/number.ts (100%) rename {app => apps/web-react/app}/utils/numbers.test.ts (100%) rename {app => apps/web-react/app}/utils/oklch-gamut.ts (100%) rename {app => apps/web-react/app}/utils/random.test.ts (100%) rename {app => apps/web-react/app}/utils/random.ts (100%) rename {app => apps/web-react/app}/utils/remix.server.test.ts (100%) rename {app => apps/web-react/app}/utils/remix.server.ts (100%) rename {app => apps/web-react/app}/utils/remix.test.ts (100%) rename {app => apps/web-react/app}/utils/remix.ts (100%) rename {app => apps/web-react/app}/utils/request-context-middleware.server.ts (100%) rename {app => apps/web-react/app}/utils/request-context.server.ts (100%) rename {app => apps/web-react/app}/utils/result.ts (100%) rename {app => apps/web-react/app}/utils/session-id.ts (100%) rename {app => apps/web-react/app}/utils/sql.ts (100%) rename {app => apps/web-react/app}/utils/string.test.ts (100%) rename {app => apps/web-react/app}/utils/strings.ts (100%) rename {app => apps/web-react/app}/utils/team-name-data.ts (100%) rename {app => apps/web-react/app}/utils/team-name.ts (100%) rename {app => apps/web-react/app}/utils/types.ts (100%) rename {app => apps/web-react/app}/utils/unslugify.server.ts (100%) rename {app => apps/web-react/app}/utils/urls.ts (100%) rename {app => apps/web-react/app}/utils/users.test.ts (100%) rename {app => apps/web-react/app}/utils/users.ts (100%) rename {app => apps/web-react/app}/utils/zod.test.ts (100%) rename {app => apps/web-react/app}/utils/zod.ts (100%) rename {content => apps/web-react/content}/articles/20xx-series-6-recap.md (100%) rename {content => apps/web-react/content}/articles/3rd-kits-weapons-that-could-completely-alter-the-metagame.md (100%) rename {content => apps/web-react/content}/articles/A-dying-scene-Stronghold-and-Splatoon-4.md (100%) rename {content => apps/web-react/content}/articles/a-fresh-start.md (100%) rename {content => apps/web-react/content}/articles/austrian-championship-2023.md (100%) rename {content => apps/web-react/content}/articles/belgian-championship-2023.md (100%) rename {content => apps/web-react/content}/articles/competitive-guidebook-part-1.md (100%) rename {content => apps/web-react/content}/articles/dutch-championship-2023.md (100%) rename {content => apps/web-react/content}/articles/final-low-ink.md (100%) rename {content => apps/web-react/content}/articles/flippa-floppa-wins-first-major-of-20xx.md (100%) rename {content => apps/web-react/content}/articles/gamers-for-giving-2026.md (100%) rename {content => apps/web-react/content}/articles/german-championship-2023.md (100%) rename {content => apps/web-react/content}/articles/golden-squid-junction-40.md (100%) rename {content => apps/web-react/content}/articles/hypernova-roster-shuffle.md (100%) rename {content => apps/web-react/content}/articles/in-the-zone-26-winners.md (100%) rename {content => apps/web-react/content}/articles/inktv-announces-return.md (100%) rename {content => apps/web-react/content}/articles/interactive-LAN-map-now-available.md (100%) rename {content => apps/web-react/content}/articles/ipl-x-area-cup-splat-world-series.md (100%) rename {content => apps/web-react/content}/articles/iplxareacup-sws-2026-season-reveal.md (100%) rename {content => apps/web-react/content}/articles/january-february-2026-lans.md (100%) rename {content => apps/web-react/content}/articles/july-august-2026-lans.md (100%) rename {content => apps/web-react/content}/articles/luti-season-13.md (100%) rename {content => apps/web-react/content}/articles/march-april-2026-LANs.md (100%) rename {content => apps/web-react/content}/articles/may-june-2026-LANs.md (100%) rename {content => apps/web-react/content}/articles/na-lague-2026-p1e1.md (100%) rename {content => apps/web-react/content}/articles/na-league-2026-p2e2.md (100%) rename {content => apps/web-react/content}/articles/na-league-2026-playoffs.md (100%) rename {content => apps/web-react/content}/articles/na-league-2026-r1e3.md (100%) rename {content => apps/web-react/content}/articles/na-league-2026-r2e4.md (100%) rename {content => apps/web-react/content}/articles/na-league-2026-r3-e5.md (100%) rename {content => apps/web-react/content}/articles/na-league-2026-r4-e6.md (100%) rename {content => apps/web-react/content}/articles/na-league-2026-r5-e7.md (100%) rename {content => apps/web-react/content}/articles/na-league-2026-r6-e8.md (100%) rename {content => apps/web-react/content}/articles/na-league-2026-r7-e9.md (100%) rename {content => apps/web-react/content}/articles/na-league-2026-r8-e10.md (100%) rename {content => apps/web-react/content}/articles/nintendo-sponsorship-brings-splatoon-3-to-80000-students.md (100%) rename {content => apps/web-react/content}/articles/november-splatfest-theme.md (100%) rename {content => apps/web-react/content}/articles/oktofest-2025.md (100%) rename {content => apps/web-react/content}/articles/onward-the-journey-beyond-the-north-american-league.md (100%) rename {content => apps/web-react/content}/articles/qualifier-1-the-road-to-splat-world-series.md (100%) rename {content => apps/web-react/content}/articles/qualifier-2-the-road-to-sws.md (100%) rename {content => apps/web-react/content}/articles/raise-4-raices.md (100%) rename {content => apps/web-react/content}/articles/range-players-harmony.md (100%) rename {content => apps/web-react/content}/articles/results-from-riptide-2025.md (100%) rename {content => apps/web-react/content}/articles/sendouq-faq.md (100%) rename {content => apps/web-react/content}/articles/sendouq-season-10-finale-recap.md (100%) rename {content => apps/web-react/content}/articles/sendouq-season8-finale-recap.md (100%) rename {content => apps/web-react/content}/articles/sendouq-season9-finale-recap.md (100%) rename {content => apps/web-react/content}/articles/series-weapon-power-breakdown.md (100%) rename {content => apps/web-react/content}/articles/splat-world-series-finals.md (100%) rename {content => apps/web-react/content}/articles/splatfest-world-premiere-results.md (100%) rename {content => apps/web-react/content}/articles/splatfest-world-premiere.md (100%) rename {content => apps/web-react/content}/articles/splatoon-3-breaks-sales-record.md (100%) rename {content => apps/web-react/content}/articles/splatoon-3-more-ways-to-compete.md (100%) rename {content => apps/web-react/content}/articles/splatoon-3-na-lague-event-3-regular-1.md (100%) rename {content => apps/web-react/content}/articles/splatoon-3-na-league-event-1-preseason-1.md (100%) rename {content => apps/web-react/content}/articles/splatoon-3-na-league-event-10-regular-8.md (100%) rename {content => apps/web-react/content}/articles/splatoon-3-na-league-event-4-regular-2.md (100%) rename {content => apps/web-react/content}/articles/splatoon-3-na-league-event-5-regular-3.md (100%) rename {content => apps/web-react/content}/articles/splatoon-3-na-league-event-6-regular-4.md (100%) rename {content => apps/web-react/content}/articles/splatoon-3-na-league-event-7-regular-5.md (100%) rename {content => apps/web-react/content}/articles/splatoon-3-na-league-event-8-regular-6.md (100%) rename {content => apps/web-react/content}/articles/splatoon-3-na-league-event-9-regular-7.md (100%) rename {content => apps/web-react/content}/articles/splatoon-3-na-league-playoffs.md (100%) rename {content => apps/web-react/content}/articles/splatoon-3-na-league-returns-for-2026.md (100%) rename {content => apps/web-react/content}/articles/splatoon-3-north-american-league-event-1-preseason-week-1.md (100%) rename {content => apps/web-react/content}/articles/splatoon-competitive-guide.md (100%) rename {content => apps/web-react/content}/articles/splatoon-liquipedia.md (100%) rename {content => apps/web-react/content}/articles/starburst-wins-pax-west.md (100%) rename {content => apps/web-react/content}/articles/superjump-5-the-road-to-splat-world-series.md (100%) rename {content => apps/web-react/content}/articles/superjump-6.md (100%) rename {content => apps/web-react/content}/articles/superjump-7.md (100%) rename {content => apps/web-react/content}/articles/swiss-championship-2023.md (100%) rename {content => apps/web-react/content}/articles/sws26-recap-GG2-finals.md (100%) rename {content => apps/web-react/content}/articles/sws26-recap-gg1-finals.md (100%) rename {content => apps/web-react/content}/articles/sws26-recap-gg1-q1.md (100%) rename {content => apps/web-react/content}/articles/sws26-recap-gg2-q1-sqs11-finale.md (100%) rename {content => apps/web-react/content}/articles/sws26-recap-gg2-q2.md (100%) rename {content => apps/web-react/content}/articles/sws26-recap-westernqualifier1.md (100%) rename {content => apps/web-react/content}/articles/sws26-recap-westernqualifier2.md (100%) rename {content => apps/web-react/content}/articles/sws26recap-gg1-q2.md (100%) rename {content => apps/web-react/content}/articles/ten-splatoon-tips.md (100%) rename {content => apps/web-react/content}/articles/the-splatoon-3-north-american-league-news-drop.md (100%) rename {content => apps/web-react/content}/articles/the-splatoon-peer-review-server.md (100%) rename {content => apps/web-react/content}/articles/the-top-5-main-misconceptions-about-competitive-splatoon.md (100%) rename {content => apps/web-react/content}/articles/upcoming-fall-winter-2026-LANs.md (100%) rename {content => apps/web-react/content}/articles/upcoming-major-splatoon-3-fall-tournaments.md (100%) rename {content => apps/web-react/content}/articles/updated-directory.md (100%) rename {content => apps/web-react/content}/articles/version-11.0.0-hype-moments-and-aura-and-luti.md (100%) rename {content => apps/web-react/content}/articles/waving-goodbye-the-start-of-splatoons-great-retirement.md (100%) rename {e2e => apps/web-react/e2e}/analyzer.spec.ts (100%) rename {e2e => apps/web-react/e2e}/api-public.spec.ts (100%) rename {e2e => apps/web-react/e2e}/art.spec.ts (100%) rename {e2e => apps/web-react/e2e}/associations.spec.ts (100%) rename {e2e => apps/web-react/e2e}/badges.spec.ts (100%) rename {e2e => apps/web-react/e2e}/ban.spec.ts (100%) rename {e2e => apps/web-react/e2e}/builds.spec.ts (100%) rename {e2e => apps/web-react/e2e}/calendar.spec.ts (100%) rename {e2e => apps/web-react/e2e}/comp-analyzer.spec.ts (100%) rename {e2e => apps/web-react/e2e}/events.spec.ts (100%) rename {e2e => apps/web-react/e2e}/fixtures/test-image.png (100%) rename {e2e => apps/web-react/e2e}/friends.spec.ts (100%) rename {e2e => apps/web-react/e2e}/global-search.spec.ts (100%) rename {e2e => apps/web-react/e2e}/global-setup.ts (99%) rename {e2e => apps/web-react/e2e}/global-teardown.ts (100%) rename {e2e => apps/web-react/e2e}/helpers/counterpick-map-pool.ts (100%) rename {e2e => apps/web-react/e2e}/helpers/factories.ts (100%) rename {e2e => apps/web-react/e2e}/helpers/playwright-form.ts (100%) rename {e2e => apps/web-react/e2e}/helpers/playwright.ts (100%) rename {e2e => apps/web-react/e2e}/helpers/sidebar.ts (100%) rename {e2e => apps/web-react/e2e}/helpers/tournament.ts (100%) rename {e2e => apps/web-react/e2e}/lfg.spec.ts (100%) rename {e2e => apps/web-react/e2e}/navigation.spec.ts (100%) rename {e2e => apps/web-react/e2e}/notifications.spec.ts (100%) rename {e2e => apps/web-react/e2e}/object-damage-calculator.spec.ts (100%) rename {e2e => apps/web-react/e2e}/org.spec.ts (100%) rename {e2e => apps/web-react/e2e}/pages/analyzer/analyzer-page.ts (100%) rename {e2e => apps/web-react/e2e}/pages/analyzer/weapon-params-page.ts (100%) rename {e2e => apps/web-react/e2e}/pages/api/api-page.ts (100%) rename {e2e => apps/web-react/e2e}/pages/art/new-art-page.ts (100%) rename {e2e => apps/web-react/e2e}/pages/art/user-art-page.ts (100%) rename {e2e => apps/web-react/e2e}/pages/associations/associations-page.ts (100%) rename {e2e => apps/web-react/e2e}/pages/associations/new-association-page.ts (100%) rename {e2e => apps/web-react/e2e}/pages/badges/badge-page.ts (100%) rename {e2e => apps/web-react/e2e}/pages/ban/admin-ban-page.ts (100%) rename {e2e => apps/web-react/e2e}/pages/ban/suspended-page.ts (100%) rename {e2e => apps/web-react/e2e}/pages/builds/build-card.ts (100%) rename {e2e => apps/web-react/e2e}/pages/builds/build-form-page.ts (100%) rename {e2e => apps/web-react/e2e}/pages/builds/builds-page.ts (100%) rename {e2e => apps/web-react/e2e}/pages/builds/user-builds-page.ts (100%) rename {e2e => apps/web-react/e2e}/pages/builds/weapon-builds-page.ts (100%) rename {e2e => apps/web-react/e2e}/pages/calendar/calendar-event-page.ts (100%) rename {e2e => apps/web-react/e2e}/pages/calendar/calendar-new-event-page.ts (100%) rename {e2e => apps/web-react/e2e}/pages/calendar/calendar-page.ts (100%) rename {e2e => apps/web-react/e2e}/pages/calendar/events-page.ts (100%) rename {e2e => apps/web-react/e2e}/pages/calendar/report-winners-page.ts (100%) rename {e2e => apps/web-react/e2e}/pages/comp-analyzer/comp-analyzer-page.ts (100%) rename {e2e => apps/web-react/e2e}/pages/friends/friends-page.ts (100%) rename {e2e => apps/web-react/e2e}/pages/front-page/front-page.ts (100%) rename {e2e => apps/web-react/e2e}/pages/img-upload/image-validation-page.ts (100%) rename {e2e => apps/web-react/e2e}/pages/layout/anything-adder.ts (100%) rename {e2e => apps/web-react/e2e}/pages/layout/mobile-nav.ts (100%) rename {e2e => apps/web-react/e2e}/pages/layout/notification-popover.ts (100%) rename {e2e => apps/web-react/e2e}/pages/layout/side-nav.ts (100%) rename {e2e => apps/web-react/e2e}/pages/layout/top-nav-menus.ts (100%) rename {e2e => apps/web-react/e2e}/pages/lfg/lfg-page.ts (100%) rename {e2e => apps/web-react/e2e}/pages/lfg/new-lfg-post-page.ts (100%) rename {e2e => apps/web-react/e2e}/pages/notifications/notifications-page.ts (100%) rename {e2e => apps/web-react/e2e}/pages/object-damage-calculator/object-damage-calculator-page.ts (100%) rename {e2e => apps/web-react/e2e}/pages/org/new-organization-page.ts (100%) rename {e2e => apps/web-react/e2e}/pages/org/organization-edit-page.ts (100%) rename {e2e => apps/web-react/e2e}/pages/org/organization-page.ts (100%) rename {e2e => apps/web-react/e2e}/pages/scrims/new-scrim-post-page.ts (100%) rename {e2e => apps/web-react/e2e}/pages/scrims/scrim-page.ts (100%) rename {e2e => apps/web-react/e2e}/pages/scrims/scrims-page.ts (100%) rename {e2e => apps/web-react/e2e}/pages/search/global-search-dialog.ts (100%) rename {e2e => apps/web-react/e2e}/pages/sendouq/group-card.ts (100%) rename {e2e => apps/web-react/e2e}/pages/sendouq/sendouq-looking-page.ts (100%) rename {e2e => apps/web-react/e2e}/pages/sendouq/sendouq-match-page.ts (100%) rename {e2e => apps/web-react/e2e}/pages/sendouq/sendouq-page.ts (100%) rename {e2e => apps/web-react/e2e}/pages/sendouq/sendouq-preparing-page.ts (100%) rename {e2e => apps/web-react/e2e}/pages/sendouq/sendouq-ready-page.ts (100%) rename {e2e => apps/web-react/e2e}/pages/settings/map-mode-preferences-field.ts (100%) rename {e2e => apps/web-react/e2e}/pages/settings/match-profile-page.ts (100%) rename {e2e => apps/web-react/e2e}/pages/settings/settings-page.ts (100%) rename {e2e => apps/web-react/e2e}/pages/team/join-team-page.ts (100%) rename {e2e => apps/web-react/e2e}/pages/team/new-team-page.ts (100%) rename {e2e => apps/web-react/e2e}/pages/team/team-edit-page.ts (100%) rename {e2e => apps/web-react/e2e}/pages/team/team-page.ts (100%) rename {e2e => apps/web-react/e2e}/pages/team/team-roster-page.ts (100%) rename {e2e => apps/web-react/e2e}/pages/tier-list-maker/tier-list-maker-page.ts (100%) rename {e2e => apps/web-react/e2e}/pages/top-search/placements-table.ts (100%) rename {e2e => apps/web-react/e2e}/pages/top-search/top-search-page.ts (100%) rename {e2e => apps/web-react/e2e}/pages/top-search/top-search-player-page.ts (100%) rename {e2e => apps/web-react/e2e}/pages/tournament/tournament-admin-audit-page.ts (100%) rename {e2e => apps/web-react/e2e}/pages/tournament/tournament-admin-page.ts (100%) rename {e2e => apps/web-react/e2e}/pages/tournament/tournament-admin-registration-page.ts (100%) rename {e2e => apps/web-react/e2e}/pages/tournament/tournament-admin-staff-page.ts (100%) rename {e2e => apps/web-react/e2e}/pages/tournament/tournament-admin-stream-page.ts (100%) rename {e2e => apps/web-react/e2e}/pages/tournament/tournament-brackets-page.ts (100%) rename {e2e => apps/web-react/e2e}/pages/tournament/tournament-info-page.ts (100%) rename {e2e => apps/web-react/e2e}/pages/tournament/tournament-join-page.ts (100%) rename {e2e => apps/web-react/e2e}/pages/tournament/tournament-match-page.ts (100%) rename {e2e => apps/web-react/e2e}/pages/tournament/tournament-nav.ts (100%) rename {e2e => apps/web-react/e2e}/pages/tournament/tournament-page.ts (100%) rename {e2e => apps/web-react/e2e}/pages/tournament/tournament-register-page.ts (100%) rename {e2e => apps/web-react/e2e}/pages/tournament/tournament-results-page.ts (100%) rename {e2e => apps/web-react/e2e}/pages/tournament/tournament-rules-page.ts (100%) rename {e2e => apps/web-react/e2e}/pages/tournament/tournament-seeds-page.ts (100%) rename {e2e => apps/web-react/e2e}/pages/tournament/tournament-streams-page.ts (100%) rename {e2e => apps/web-react/e2e}/pages/tournament/tournament-subs-page.ts (100%) rename {e2e => apps/web-react/e2e}/pages/tournament/tournament-team-page.ts (100%) rename {e2e => apps/web-react/e2e}/pages/tournament/tournament-teams-page.ts (100%) rename {e2e => apps/web-react/e2e}/pages/trophies/new-trophy-page.ts (100%) rename {e2e => apps/web-react/e2e}/pages/trophies/trophies-page.ts (100%) rename {e2e => apps/web-react/e2e}/pages/user/user-admin-page.ts (100%) rename {e2e => apps/web-react/e2e}/pages/user/user-card-edit-page.ts (100%) rename {e2e => apps/web-react/e2e}/pages/user/user-card.ts (100%) rename {e2e => apps/web-react/e2e}/pages/user/user-edit-profile-page.ts (100%) rename {e2e => apps/web-react/e2e}/pages/user/user-page.ts (100%) rename {e2e => apps/web-react/e2e}/pages/user/user-results-page.ts (100%) rename {e2e => apps/web-react/e2e}/pages/user/user-seasons-page.ts (100%) rename {e2e => apps/web-react/e2e}/pages/user/welcome-page.ts (100%) rename {e2e => apps/web-react/e2e}/pages/vods/new-vod-page.ts (100%) rename {e2e => apps/web-react/e2e}/pages/vods/vod-page.ts (100%) rename {e2e => apps/web-react/e2e}/pages/vods/vods-page.ts (100%) rename {e2e => apps/web-react/e2e}/params.spec.ts (100%) rename {e2e => apps/web-react/e2e}/scrims.spec.ts (100%) rename {e2e => apps/web-react/e2e}/sendouq-match.spec.ts (100%) rename {e2e => apps/web-react/e2e}/sendouq.spec.ts (100%) rename {e2e => apps/web-react/e2e}/settings.spec.ts (100%) rename {e2e => apps/web-react/e2e}/sidebar-events.spec.ts (100%) rename {e2e => apps/web-react/e2e}/sidebar-friends.spec.ts (100%) rename {e2e => apps/web-react/e2e}/sidebar-streams.spec.ts (100%) rename {e2e => apps/web-react/e2e}/team.spec.ts (100%) rename {e2e => apps/web-react/e2e}/tier-list-maker.spec.ts (100%) rename {e2e => apps/web-react/e2e}/top-search.spec.ts (100%) rename {e2e => apps/web-react/e2e}/tournament-ab-divisions.spec.ts (100%) rename {e2e => apps/web-react/e2e}/tournament-admin.spec.ts (100%) rename {e2e => apps/web-react/e2e}/tournament-bracket-elimination.spec.ts (100%) rename {e2e => apps/web-react/e2e}/tournament-bracket-multi-stage.spec.ts (100%) rename {e2e => apps/web-react/e2e}/tournament-bracket-pick-ban.spec.ts (100%) rename {e2e => apps/web-react/e2e}/tournament-bracket-round-robin.spec.ts (100%) rename {e2e => apps/web-react/e2e}/tournament-bracket-swiss.spec.ts (100%) rename {e2e => apps/web-react/e2e}/tournament-bracket.spec.ts (100%) rename {e2e => apps/web-react/e2e}/tournament-invitational.spec.ts (100%) rename {e2e => apps/web-react/e2e}/tournament-staff.spec.ts (100%) rename {e2e => apps/web-react/e2e}/tournament-streams.spec.ts (100%) rename {e2e => apps/web-react/e2e}/tournament-tiers.spec.ts (100%) rename {e2e => apps/web-react/e2e}/tournament.spec.ts (100%) rename {e2e => apps/web-react/e2e}/trophies.spec.ts (100%) rename {e2e => apps/web-react/e2e}/user-card.spec.ts (100%) rename {e2e => apps/web-react/e2e}/user-page.spec.ts (100%) rename {e2e => apps/web-react/e2e}/user-report.spec.ts (100%) rename {e2e => apps/web-react/e2e}/vods.spec.ts (100%) rename {e2e => apps/web-react/e2e}/welcome.spec.ts (100%) rename knip.ts => apps/web-react/knip.ts (100%) rename {locales => apps/web-react/locales}/da/analyzer.json (100%) rename {locales => apps/web-react/locales}/da/art.json (100%) rename {locales => apps/web-react/locales}/da/badges.json (100%) rename {locales => apps/web-react/locales}/da/builds.json (100%) rename {locales => apps/web-react/locales}/da/calendar.json (100%) rename {locales => apps/web-react/locales}/da/common.json (100%) rename {locales => apps/web-react/locales}/da/contributions.json (100%) rename {locales => apps/web-react/locales}/da/faq.json (100%) rename {locales => apps/web-react/locales}/da/forms.json (100%) rename {locales => apps/web-react/locales}/da/friends.json (100%) rename {locales => apps/web-react/locales}/da/front.json (100%) rename {locales => apps/web-react/locales}/da/game-badges.json (100%) rename {locales => apps/web-react/locales}/da/game-misc.json (100%) rename {locales => apps/web-react/locales}/da/gear.json (100%) rename {locales => apps/web-react/locales}/da/lfg.json (100%) rename {locales => apps/web-react/locales}/da/org.json (100%) rename {locales => apps/web-react/locales}/da/params.json (100%) rename {locales => apps/web-react/locales}/da/q.json (100%) rename {locales => apps/web-react/locales}/da/scrims.json (100%) rename {locales => apps/web-react/locales}/da/settings.json (100%) rename {locales => apps/web-react/locales}/da/team.json (100%) rename {locales => apps/web-react/locales}/da/tier-list-maker.json (100%) rename {locales => apps/web-react/locales}/da/tournament.json (100%) rename {locales => apps/web-react/locales}/da/trophies.json (100%) rename {locales => apps/web-react/locales}/da/user.json (100%) rename {locales => apps/web-react/locales}/da/vods.json (100%) rename {locales => apps/web-react/locales}/da/weapons.json (100%) rename {locales => apps/web-react/locales}/da/welcome.json (100%) rename {locales => apps/web-react/locales}/de/analyzer.json (100%) rename {locales => apps/web-react/locales}/de/art.json (100%) rename {locales => apps/web-react/locales}/de/badges.json (100%) rename {locales => apps/web-react/locales}/de/builds.json (100%) rename {locales => apps/web-react/locales}/de/calendar.json (100%) rename {locales => apps/web-react/locales}/de/common.json (100%) rename {locales => apps/web-react/locales}/de/contributions.json (100%) rename {locales => apps/web-react/locales}/de/faq.json (100%) rename {locales => apps/web-react/locales}/de/forms.json (100%) rename {locales => apps/web-react/locales}/de/friends.json (100%) rename {locales => apps/web-react/locales}/de/front.json (100%) rename {locales => apps/web-react/locales}/de/game-badges.json (100%) rename {locales => apps/web-react/locales}/de/game-misc.json (100%) rename {locales => apps/web-react/locales}/de/gear.json (100%) rename {locales => apps/web-react/locales}/de/lfg.json (100%) rename {locales => apps/web-react/locales}/de/org.json (100%) rename {locales => apps/web-react/locales}/de/params.json (100%) rename {locales => apps/web-react/locales}/de/q.json (100%) rename {locales => apps/web-react/locales}/de/scrims.json (100%) rename {locales => apps/web-react/locales}/de/settings.json (100%) rename {locales => apps/web-react/locales}/de/team.json (100%) rename {locales => apps/web-react/locales}/de/tier-list-maker.json (100%) rename {locales => apps/web-react/locales}/de/tournament.json (100%) rename {locales => apps/web-react/locales}/de/trophies.json (100%) rename {locales => apps/web-react/locales}/de/user.json (100%) rename {locales => apps/web-react/locales}/de/vods.json (100%) rename {locales => apps/web-react/locales}/de/weapons.json (100%) rename {locales => apps/web-react/locales}/de/welcome.json (100%) rename {locales => apps/web-react/locales}/en/analyzer.json (100%) rename {locales => apps/web-react/locales}/en/art.json (100%) rename {locales => apps/web-react/locales}/en/badges.json (100%) rename {locales => apps/web-react/locales}/en/builds.json (100%) rename {locales => apps/web-react/locales}/en/calendar.json (100%) rename {locales => apps/web-react/locales}/en/common.json (100%) rename {locales => apps/web-react/locales}/en/contributions.json (100%) rename {locales => apps/web-react/locales}/en/faq.json (100%) rename {locales => apps/web-react/locales}/en/forms.json (100%) rename {locales => apps/web-react/locales}/en/friends.json (100%) rename {locales => apps/web-react/locales}/en/front.json (100%) rename {locales => apps/web-react/locales}/en/game-badges.json (100%) rename {locales => apps/web-react/locales}/en/game-misc.json (100%) rename {locales => apps/web-react/locales}/en/gear.json (100%) rename {locales => apps/web-react/locales}/en/lfg.json (100%) rename {locales => apps/web-react/locales}/en/org.json (100%) rename {locales => apps/web-react/locales}/en/params.json (100%) rename {locales => apps/web-react/locales}/en/q.json (100%) rename {locales => apps/web-react/locales}/en/scrims.json (100%) rename {locales => apps/web-react/locales}/en/settings.json (100%) rename {locales => apps/web-react/locales}/en/team.json (100%) rename {locales => apps/web-react/locales}/en/tier-list-maker.json (100%) rename {locales => apps/web-react/locales}/en/tournament.json (100%) rename {locales => apps/web-react/locales}/en/trophies.json (100%) rename {locales => apps/web-react/locales}/en/user.json (100%) rename {locales => apps/web-react/locales}/en/vods.json (100%) rename {locales => apps/web-react/locales}/en/weapons.json (100%) rename {locales => apps/web-react/locales}/en/welcome.json (100%) rename {locales => apps/web-react/locales}/es-ES/analyzer.json (100%) rename {locales => apps/web-react/locales}/es-ES/art.json (100%) rename {locales => apps/web-react/locales}/es-ES/badges.json (100%) rename {locales => apps/web-react/locales}/es-ES/builds.json (100%) rename {locales => apps/web-react/locales}/es-ES/calendar.json (100%) rename {locales => apps/web-react/locales}/es-ES/common.json (100%) rename {locales => apps/web-react/locales}/es-ES/contributions.json (100%) rename {locales => apps/web-react/locales}/es-ES/faq.json (100%) rename {locales => apps/web-react/locales}/es-ES/forms.json (100%) rename {locales => apps/web-react/locales}/es-ES/friends.json (100%) rename {locales => apps/web-react/locales}/es-ES/front.json (100%) rename {locales => apps/web-react/locales}/es-ES/game-badges.json (100%) rename {locales => apps/web-react/locales}/es-ES/game-misc.json (100%) rename {locales => apps/web-react/locales}/es-ES/gear.json (100%) rename {locales => apps/web-react/locales}/es-ES/lfg.json (100%) rename {locales => apps/web-react/locales}/es-ES/org.json (100%) rename {locales => apps/web-react/locales}/es-ES/params.json (100%) rename {locales => apps/web-react/locales}/es-ES/q.json (100%) rename {locales => apps/web-react/locales}/es-ES/scrims.json (100%) rename {locales => apps/web-react/locales}/es-ES/settings.json (100%) rename {locales => apps/web-react/locales}/es-ES/team.json (100%) rename {locales => apps/web-react/locales}/es-ES/tier-list-maker.json (100%) rename {locales => apps/web-react/locales}/es-ES/tournament.json (100%) rename {locales => apps/web-react/locales}/es-ES/trophies.json (100%) rename {locales => apps/web-react/locales}/es-ES/user.json (100%) rename {locales => apps/web-react/locales}/es-ES/vods.json (100%) rename {locales => apps/web-react/locales}/es-ES/weapons.json (100%) rename {locales => apps/web-react/locales}/es-ES/welcome.json (100%) rename {locales => apps/web-react/locales}/es-US/analyzer.json (100%) rename {locales => apps/web-react/locales}/es-US/art.json (100%) rename {locales => apps/web-react/locales}/es-US/badges.json (100%) rename {locales => apps/web-react/locales}/es-US/builds.json (100%) rename {locales => apps/web-react/locales}/es-US/calendar.json (100%) rename {locales => apps/web-react/locales}/es-US/common.json (100%) rename {locales => apps/web-react/locales}/es-US/contributions.json (100%) rename {locales => apps/web-react/locales}/es-US/faq.json (100%) rename {locales => apps/web-react/locales}/es-US/forms.json (100%) rename {locales => apps/web-react/locales}/es-US/friends.json (100%) rename {locales => apps/web-react/locales}/es-US/front.json (100%) rename {locales => apps/web-react/locales}/es-US/game-badges.json (100%) rename {locales => apps/web-react/locales}/es-US/game-misc.json (100%) rename {locales => apps/web-react/locales}/es-US/gear.json (100%) rename {locales => apps/web-react/locales}/es-US/lfg.json (100%) rename {locales => apps/web-react/locales}/es-US/org.json (100%) rename {locales => apps/web-react/locales}/es-US/params.json (100%) rename {locales => apps/web-react/locales}/es-US/q.json (100%) rename {locales => apps/web-react/locales}/es-US/scrims.json (100%) rename {locales => apps/web-react/locales}/es-US/settings.json (100%) rename {locales => apps/web-react/locales}/es-US/team.json (100%) rename {locales => apps/web-react/locales}/es-US/tier-list-maker.json (100%) rename {locales => apps/web-react/locales}/es-US/tournament.json (100%) rename {locales => apps/web-react/locales}/es-US/trophies.json (100%) rename {locales => apps/web-react/locales}/es-US/user.json (100%) rename {locales => apps/web-react/locales}/es-US/vods.json (100%) rename {locales => apps/web-react/locales}/es-US/weapons.json (100%) rename {locales => apps/web-react/locales}/es-US/welcome.json (100%) rename {locales => apps/web-react/locales}/fr-CA/analyzer.json (100%) rename {locales => apps/web-react/locales}/fr-CA/art.json (100%) rename {locales => apps/web-react/locales}/fr-CA/badges.json (100%) rename {locales => apps/web-react/locales}/fr-CA/builds.json (100%) rename {locales => apps/web-react/locales}/fr-CA/calendar.json (100%) rename {locales => apps/web-react/locales}/fr-CA/common.json (100%) rename {locales => apps/web-react/locales}/fr-CA/contributions.json (100%) rename {locales => apps/web-react/locales}/fr-CA/faq.json (100%) rename {locales => apps/web-react/locales}/fr-CA/forms.json (100%) rename {locales => apps/web-react/locales}/fr-CA/friends.json (100%) rename {locales => apps/web-react/locales}/fr-CA/front.json (100%) rename {locales => apps/web-react/locales}/fr-CA/game-badges.json (100%) rename {locales => apps/web-react/locales}/fr-CA/game-misc.json (100%) rename {locales => apps/web-react/locales}/fr-CA/gear.json (100%) rename {locales => apps/web-react/locales}/fr-CA/lfg.json (100%) rename {locales => apps/web-react/locales}/fr-CA/org.json (100%) rename {locales => apps/web-react/locales}/fr-CA/params.json (100%) rename {locales => apps/web-react/locales}/fr-CA/q.json (100%) rename {locales => apps/web-react/locales}/fr-CA/scrims.json (100%) rename {locales => apps/web-react/locales}/fr-CA/settings.json (100%) rename {locales => apps/web-react/locales}/fr-CA/team.json (100%) rename {locales => apps/web-react/locales}/fr-CA/tier-list-maker.json (100%) rename {locales => apps/web-react/locales}/fr-CA/tournament.json (100%) rename {locales => apps/web-react/locales}/fr-CA/trophies.json (100%) rename {locales => apps/web-react/locales}/fr-CA/user.json (100%) rename {locales => apps/web-react/locales}/fr-CA/vods.json (100%) rename {locales => apps/web-react/locales}/fr-CA/weapons.json (100%) rename {locales => apps/web-react/locales}/fr-CA/welcome.json (100%) rename {locales => apps/web-react/locales}/fr-EU/analyzer.json (100%) rename {locales => apps/web-react/locales}/fr-EU/art.json (100%) rename {locales => apps/web-react/locales}/fr-EU/badges.json (100%) rename {locales => apps/web-react/locales}/fr-EU/builds.json (100%) rename {locales => apps/web-react/locales}/fr-EU/calendar.json (100%) rename {locales => apps/web-react/locales}/fr-EU/common.json (100%) rename {locales => apps/web-react/locales}/fr-EU/contributions.json (100%) rename {locales => apps/web-react/locales}/fr-EU/faq.json (100%) rename {locales => apps/web-react/locales}/fr-EU/forms.json (100%) rename {locales => apps/web-react/locales}/fr-EU/friends.json (100%) rename {locales => apps/web-react/locales}/fr-EU/front.json (100%) rename {locales => apps/web-react/locales}/fr-EU/game-badges.json (100%) rename {locales => apps/web-react/locales}/fr-EU/game-misc.json (100%) rename {locales => apps/web-react/locales}/fr-EU/gear.json (100%) rename {locales => apps/web-react/locales}/fr-EU/lfg.json (100%) rename {locales => apps/web-react/locales}/fr-EU/org.json (100%) rename {locales => apps/web-react/locales}/fr-EU/params.json (100%) rename {locales => apps/web-react/locales}/fr-EU/q.json (100%) rename {locales => apps/web-react/locales}/fr-EU/scrims.json (100%) rename {locales => apps/web-react/locales}/fr-EU/settings.json (100%) rename {locales => apps/web-react/locales}/fr-EU/team.json (100%) rename {locales => apps/web-react/locales}/fr-EU/tier-list-maker.json (100%) rename {locales => apps/web-react/locales}/fr-EU/tournament.json (100%) rename {locales => apps/web-react/locales}/fr-EU/trophies.json (100%) rename {locales => apps/web-react/locales}/fr-EU/user.json (100%) rename {locales => apps/web-react/locales}/fr-EU/vods.json (100%) rename {locales => apps/web-react/locales}/fr-EU/weapons.json (100%) rename {locales => apps/web-react/locales}/fr-EU/welcome.json (100%) rename {locales => apps/web-react/locales}/he/analyzer.json (100%) rename {locales => apps/web-react/locales}/he/art.json (100%) rename {locales => apps/web-react/locales}/he/badges.json (100%) rename {locales => apps/web-react/locales}/he/builds.json (100%) rename {locales => apps/web-react/locales}/he/calendar.json (100%) rename {locales => apps/web-react/locales}/he/common.json (100%) rename {locales => apps/web-react/locales}/he/contributions.json (100%) rename {locales => apps/web-react/locales}/he/faq.json (100%) rename {locales => apps/web-react/locales}/he/forms.json (100%) rename {locales => apps/web-react/locales}/he/friends.json (100%) rename {locales => apps/web-react/locales}/he/front.json (100%) rename {locales => apps/web-react/locales}/he/game-badges.json (100%) rename {locales => apps/web-react/locales}/he/game-misc.json (100%) rename {locales => apps/web-react/locales}/he/gear.json (100%) rename {locales => apps/web-react/locales}/he/lfg.json (100%) rename {locales => apps/web-react/locales}/he/org.json (100%) rename {locales => apps/web-react/locales}/he/params.json (100%) rename {locales => apps/web-react/locales}/he/q.json (100%) rename {locales => apps/web-react/locales}/he/scrims.json (100%) rename {locales => apps/web-react/locales}/he/settings.json (100%) rename {locales => apps/web-react/locales}/he/team.json (100%) rename {locales => apps/web-react/locales}/he/tier-list-maker.json (100%) rename {locales => apps/web-react/locales}/he/tournament.json (100%) rename {locales => apps/web-react/locales}/he/trophies.json (100%) rename {locales => apps/web-react/locales}/he/user.json (100%) rename {locales => apps/web-react/locales}/he/vods.json (100%) rename {locales => apps/web-react/locales}/he/weapons.json (100%) rename {locales => apps/web-react/locales}/he/welcome.json (100%) rename {locales => apps/web-react/locales}/it/analyzer.json (100%) rename {locales => apps/web-react/locales}/it/art.json (100%) rename {locales => apps/web-react/locales}/it/badges.json (100%) rename {locales => apps/web-react/locales}/it/builds.json (100%) rename {locales => apps/web-react/locales}/it/calendar.json (100%) rename {locales => apps/web-react/locales}/it/common.json (100%) rename {locales => apps/web-react/locales}/it/contributions.json (100%) rename {locales => apps/web-react/locales}/it/faq.json (100%) rename {locales => apps/web-react/locales}/it/forms.json (100%) rename {locales => apps/web-react/locales}/it/friends.json (100%) rename {locales => apps/web-react/locales}/it/front.json (100%) rename {locales => apps/web-react/locales}/it/game-badges.json (100%) rename {locales => apps/web-react/locales}/it/game-misc.json (100%) rename {locales => apps/web-react/locales}/it/gear.json (100%) rename {locales => apps/web-react/locales}/it/lfg.json (100%) rename {locales => apps/web-react/locales}/it/org.json (100%) rename {locales => apps/web-react/locales}/it/params.json (100%) rename {locales => apps/web-react/locales}/it/q.json (100%) rename {locales => apps/web-react/locales}/it/scrims.json (100%) rename {locales => apps/web-react/locales}/it/settings.json (100%) rename {locales => apps/web-react/locales}/it/team.json (100%) rename {locales => apps/web-react/locales}/it/tier-list-maker.json (100%) rename {locales => apps/web-react/locales}/it/tournament.json (100%) rename {locales => apps/web-react/locales}/it/trophies.json (100%) rename {locales => apps/web-react/locales}/it/user.json (100%) rename {locales => apps/web-react/locales}/it/vods.json (100%) rename {locales => apps/web-react/locales}/it/weapons.json (100%) rename {locales => apps/web-react/locales}/it/welcome.json (100%) rename {locales => apps/web-react/locales}/ja/analyzer.json (100%) rename {locales => apps/web-react/locales}/ja/art.json (100%) rename {locales => apps/web-react/locales}/ja/badges.json (100%) rename {locales => apps/web-react/locales}/ja/builds.json (100%) rename {locales => apps/web-react/locales}/ja/calendar.json (100%) rename {locales => apps/web-react/locales}/ja/common.json (100%) rename {locales => apps/web-react/locales}/ja/contributions.json (100%) rename {locales => apps/web-react/locales}/ja/faq.json (100%) rename {locales => apps/web-react/locales}/ja/forms.json (100%) rename {locales => apps/web-react/locales}/ja/friends.json (100%) rename {locales => apps/web-react/locales}/ja/front.json (100%) rename {locales => apps/web-react/locales}/ja/game-badges.json (100%) rename {locales => apps/web-react/locales}/ja/game-misc.json (100%) rename {locales => apps/web-react/locales}/ja/gear.json (100%) rename {locales => apps/web-react/locales}/ja/lfg.json (100%) rename {locales => apps/web-react/locales}/ja/org.json (100%) rename {locales => apps/web-react/locales}/ja/params.json (100%) rename {locales => apps/web-react/locales}/ja/q.json (100%) rename {locales => apps/web-react/locales}/ja/scrims.json (100%) rename {locales => apps/web-react/locales}/ja/settings.json (100%) rename {locales => apps/web-react/locales}/ja/team.json (100%) rename {locales => apps/web-react/locales}/ja/tier-list-maker.json (100%) rename {locales => apps/web-react/locales}/ja/tournament.json (100%) rename {locales => apps/web-react/locales}/ja/trophies.json (100%) rename {locales => apps/web-react/locales}/ja/user.json (100%) rename {locales => apps/web-react/locales}/ja/vods.json (100%) rename {locales => apps/web-react/locales}/ja/weapons.json (100%) rename {locales => apps/web-react/locales}/ja/welcome.json (100%) rename {locales => apps/web-react/locales}/ko/analyzer.json (100%) rename {locales => apps/web-react/locales}/ko/art.json (100%) rename {locales => apps/web-react/locales}/ko/badges.json (100%) rename {locales => apps/web-react/locales}/ko/builds.json (100%) rename {locales => apps/web-react/locales}/ko/calendar.json (100%) rename {locales => apps/web-react/locales}/ko/common.json (100%) rename {locales => apps/web-react/locales}/ko/contributions.json (100%) rename {locales => apps/web-react/locales}/ko/faq.json (100%) rename {locales => apps/web-react/locales}/ko/forms.json (100%) rename {locales => apps/web-react/locales}/ko/friends.json (100%) rename {locales => apps/web-react/locales}/ko/front.json (100%) rename {locales => apps/web-react/locales}/ko/game-badges.json (100%) rename {locales => apps/web-react/locales}/ko/game-misc.json (100%) rename {locales => apps/web-react/locales}/ko/gear.json (100%) rename {locales => apps/web-react/locales}/ko/lfg.json (100%) rename {locales => apps/web-react/locales}/ko/org.json (100%) rename {locales => apps/web-react/locales}/ko/params.json (100%) rename {locales => apps/web-react/locales}/ko/q.json (100%) rename {locales => apps/web-react/locales}/ko/scrims.json (100%) rename {locales => apps/web-react/locales}/ko/settings.json (100%) rename {locales => apps/web-react/locales}/ko/team.json (100%) rename {locales => apps/web-react/locales}/ko/tier-list-maker.json (100%) rename {locales => apps/web-react/locales}/ko/tournament.json (100%) rename {locales => apps/web-react/locales}/ko/trophies.json (100%) rename {locales => apps/web-react/locales}/ko/user.json (100%) rename {locales => apps/web-react/locales}/ko/vods.json (100%) rename {locales => apps/web-react/locales}/ko/weapons.json (100%) rename {locales => apps/web-react/locales}/ko/welcome.json (100%) rename {locales => apps/web-react/locales}/nl/analyzer.json (100%) rename {locales => apps/web-react/locales}/nl/art.json (100%) rename {locales => apps/web-react/locales}/nl/badges.json (100%) rename {locales => apps/web-react/locales}/nl/builds.json (100%) rename {locales => apps/web-react/locales}/nl/calendar.json (100%) rename {locales => apps/web-react/locales}/nl/common.json (100%) rename {locales => apps/web-react/locales}/nl/contributions.json (100%) rename {locales => apps/web-react/locales}/nl/faq.json (100%) rename {locales => apps/web-react/locales}/nl/forms.json (100%) rename {locales => apps/web-react/locales}/nl/friends.json (100%) rename {locales => apps/web-react/locales}/nl/front.json (100%) rename {locales => apps/web-react/locales}/nl/game-badges.json (100%) rename {locales => apps/web-react/locales}/nl/game-misc.json (100%) rename {locales => apps/web-react/locales}/nl/gear.json (100%) rename {locales => apps/web-react/locales}/nl/lfg.json (100%) rename {locales => apps/web-react/locales}/nl/org.json (100%) rename {locales => apps/web-react/locales}/nl/params.json (100%) rename {locales => apps/web-react/locales}/nl/q.json (100%) rename {locales => apps/web-react/locales}/nl/scrims.json (100%) rename {locales => apps/web-react/locales}/nl/settings.json (100%) rename {locales => apps/web-react/locales}/nl/team.json (100%) rename {locales => apps/web-react/locales}/nl/tier-list-maker.json (100%) rename {locales => apps/web-react/locales}/nl/tournament.json (100%) rename {locales => apps/web-react/locales}/nl/trophies.json (100%) rename {locales => apps/web-react/locales}/nl/user.json (100%) rename {locales => apps/web-react/locales}/nl/vods.json (100%) rename {locales => apps/web-react/locales}/nl/weapons.json (100%) rename {locales => apps/web-react/locales}/nl/welcome.json (100%) rename {locales => apps/web-react/locales}/pl/analyzer.json (100%) rename {locales => apps/web-react/locales}/pl/art.json (100%) rename {locales => apps/web-react/locales}/pl/badges.json (100%) rename {locales => apps/web-react/locales}/pl/builds.json (100%) rename {locales => apps/web-react/locales}/pl/calendar.json (100%) rename {locales => apps/web-react/locales}/pl/common.json (100%) rename {locales => apps/web-react/locales}/pl/contributions.json (100%) rename {locales => apps/web-react/locales}/pl/faq.json (100%) rename {locales => apps/web-react/locales}/pl/forms.json (100%) rename {locales => apps/web-react/locales}/pl/friends.json (100%) rename {locales => apps/web-react/locales}/pl/front.json (100%) rename {locales => apps/web-react/locales}/pl/game-badges.json (100%) rename {locales => apps/web-react/locales}/pl/game-misc.json (100%) rename {locales => apps/web-react/locales}/pl/gear.json (100%) rename {locales => apps/web-react/locales}/pl/lfg.json (100%) rename {locales => apps/web-react/locales}/pl/org.json (100%) rename {locales => apps/web-react/locales}/pl/params.json (100%) rename {locales => apps/web-react/locales}/pl/q.json (100%) rename {locales => apps/web-react/locales}/pl/scrims.json (100%) rename {locales => apps/web-react/locales}/pl/settings.json (100%) rename {locales => apps/web-react/locales}/pl/team.json (100%) rename {locales => apps/web-react/locales}/pl/tier-list-maker.json (100%) rename {locales => apps/web-react/locales}/pl/tournament.json (100%) rename {locales => apps/web-react/locales}/pl/trophies.json (100%) rename {locales => apps/web-react/locales}/pl/user.json (100%) rename {locales => apps/web-react/locales}/pl/vods.json (100%) rename {locales => apps/web-react/locales}/pl/weapons.json (100%) rename {locales => apps/web-react/locales}/pl/welcome.json (100%) rename {locales => apps/web-react/locales}/pt-BR/analyzer.json (100%) rename {locales => apps/web-react/locales}/pt-BR/art.json (100%) rename {locales => apps/web-react/locales}/pt-BR/badges.json (100%) rename {locales => apps/web-react/locales}/pt-BR/builds.json (100%) rename {locales => apps/web-react/locales}/pt-BR/calendar.json (100%) rename {locales => apps/web-react/locales}/pt-BR/common.json (100%) rename {locales => apps/web-react/locales}/pt-BR/contributions.json (100%) rename {locales => apps/web-react/locales}/pt-BR/faq.json (100%) rename {locales => apps/web-react/locales}/pt-BR/forms.json (100%) rename {locales => apps/web-react/locales}/pt-BR/friends.json (100%) rename {locales => apps/web-react/locales}/pt-BR/front.json (100%) rename {locales => apps/web-react/locales}/pt-BR/game-badges.json (100%) rename {locales => apps/web-react/locales}/pt-BR/game-misc.json (100%) rename {locales => apps/web-react/locales}/pt-BR/gear.json (100%) rename {locales => apps/web-react/locales}/pt-BR/lfg.json (100%) rename {locales => apps/web-react/locales}/pt-BR/org.json (100%) rename {locales => apps/web-react/locales}/pt-BR/params.json (100%) rename {locales => apps/web-react/locales}/pt-BR/q.json (100%) rename {locales => apps/web-react/locales}/pt-BR/scrims.json (100%) rename {locales => apps/web-react/locales}/pt-BR/settings.json (100%) rename {locales => apps/web-react/locales}/pt-BR/team.json (100%) rename {locales => apps/web-react/locales}/pt-BR/tier-list-maker.json (100%) rename {locales => apps/web-react/locales}/pt-BR/tournament.json (100%) rename {locales => apps/web-react/locales}/pt-BR/trophies.json (100%) rename {locales => apps/web-react/locales}/pt-BR/user.json (100%) rename {locales => apps/web-react/locales}/pt-BR/vods.json (100%) rename {locales => apps/web-react/locales}/pt-BR/weapons.json (100%) rename {locales => apps/web-react/locales}/pt-BR/welcome.json (100%) rename {locales => apps/web-react/locales}/ru/analyzer.json (100%) rename {locales => apps/web-react/locales}/ru/art.json (100%) rename {locales => apps/web-react/locales}/ru/badges.json (100%) rename {locales => apps/web-react/locales}/ru/builds.json (100%) rename {locales => apps/web-react/locales}/ru/calendar.json (100%) rename {locales => apps/web-react/locales}/ru/common.json (100%) rename {locales => apps/web-react/locales}/ru/contributions.json (100%) rename {locales => apps/web-react/locales}/ru/faq.json (100%) rename {locales => apps/web-react/locales}/ru/forms.json (100%) rename {locales => apps/web-react/locales}/ru/friends.json (100%) rename {locales => apps/web-react/locales}/ru/front.json (100%) rename {locales => apps/web-react/locales}/ru/game-badges.json (100%) rename {locales => apps/web-react/locales}/ru/game-misc.json (100%) rename {locales => apps/web-react/locales}/ru/gear.json (100%) rename {locales => apps/web-react/locales}/ru/lfg.json (100%) rename {locales => apps/web-react/locales}/ru/org.json (100%) rename {locales => apps/web-react/locales}/ru/params.json (100%) rename {locales => apps/web-react/locales}/ru/q.json (100%) rename {locales => apps/web-react/locales}/ru/scrims.json (100%) rename {locales => apps/web-react/locales}/ru/settings.json (100%) rename {locales => apps/web-react/locales}/ru/team.json (100%) rename {locales => apps/web-react/locales}/ru/tier-list-maker.json (100%) rename {locales => apps/web-react/locales}/ru/tournament.json (100%) rename {locales => apps/web-react/locales}/ru/trophies.json (100%) rename {locales => apps/web-react/locales}/ru/user.json (100%) rename {locales => apps/web-react/locales}/ru/vods.json (100%) rename {locales => apps/web-react/locales}/ru/weapons.json (100%) rename {locales => apps/web-react/locales}/ru/welcome.json (100%) rename {locales => apps/web-react/locales}/zh/analyzer.json (100%) rename {locales => apps/web-react/locales}/zh/art.json (100%) rename {locales => apps/web-react/locales}/zh/badges.json (100%) rename {locales => apps/web-react/locales}/zh/builds.json (100%) rename {locales => apps/web-react/locales}/zh/calendar.json (100%) rename {locales => apps/web-react/locales}/zh/common.json (100%) rename {locales => apps/web-react/locales}/zh/contributions.json (100%) rename {locales => apps/web-react/locales}/zh/faq.json (100%) rename {locales => apps/web-react/locales}/zh/forms.json (100%) rename {locales => apps/web-react/locales}/zh/friends.json (100%) rename {locales => apps/web-react/locales}/zh/front.json (100%) rename {locales => apps/web-react/locales}/zh/game-badges.json (100%) rename {locales => apps/web-react/locales}/zh/game-misc.json (100%) rename {locales => apps/web-react/locales}/zh/gear.json (100%) rename {locales => apps/web-react/locales}/zh/lfg.json (100%) rename {locales => apps/web-react/locales}/zh/org.json (100%) rename {locales => apps/web-react/locales}/zh/params.json (100%) rename {locales => apps/web-react/locales}/zh/q.json (100%) rename {locales => apps/web-react/locales}/zh/scrims.json (100%) rename {locales => apps/web-react/locales}/zh/settings.json (100%) rename {locales => apps/web-react/locales}/zh/team.json (100%) rename {locales => apps/web-react/locales}/zh/tier-list-maker.json (100%) rename {locales => apps/web-react/locales}/zh/tournament.json (100%) rename {locales => apps/web-react/locales}/zh/trophies.json (100%) rename {locales => apps/web-react/locales}/zh/user.json (100%) rename {locales => apps/web-react/locales}/zh/vods.json (100%) rename {locales => apps/web-react/locales}/zh/weapons.json (100%) rename {locales => apps/web-react/locales}/zh/welcome.json (100%) rename {migrations => apps/web-react/migrations}/20260803000000-initial.sql (100%) rename {migrations => apps/web-react/migrations}/20260803000000-initial.ts (100%) rename {migrations => apps/web-react/migrations}/20260803155926-group-match-cancel-report.ts (100%) rename {migrations => apps/web-react/migrations}/20260805155023-pending-trophy-accepted-at.ts (100%) rename {migrations => apps/web-react/migrations}/20260805190302-tournament-team-member-organizer-added.ts (100%) rename {migrations => apps/web-react/migrations}/20260806150959-user-tournament-name.ts (100%) rename {migrations => apps/web-react/migrations}/20260807120658-remove-group-member-role.ts (100%) rename {migrations => apps/web-react/migrations}/20260807134609-group-suggestions.ts (100%) rename {migrations => apps/web-react/migrations}/20260807143400-sq-ready-check.ts (100%) rename {migrations => apps/web-react/migrations}/20260807143401-ingest.ts (100%) rename {migrations => apps/web-react/migrations}/20260808081130-user-card-xp-division.ts (100%) rename {migrations => apps/web-react/migrations}/20260809123737-notification-subscription-endpoint-unique.ts (100%) rename {migrations => apps/web-react/migrations}/20260812155327-scrim-pickup-rosters.ts (100%) rename {migrations => apps/web-react/migrations}/20260815070111-leaderboard-team-skip.ts (100%) create mode 100644 apps/web-react/package.json rename playwright.config.ts => apps/web-react/playwright.config.ts (100%) rename {public => apps/web-react/public}/app.webmanifest (100%) rename {public => apps/web-react/public}/favicon.ico (100%) rename {public => apps/web-react/public}/robots.txt (100%) rename {public => apps/web-react/public}/scanner/v1/glyphs/death-tag-name.json (100%) rename {public => apps/web-react/public}/scanner/v1/glyphs/death-tag-name.png (100%) rename {public => apps/web-react/public}/scanner/v1/glyphs/death-weapon-ja.json (100%) rename {public => apps/web-react/public}/scanner/v1/glyphs/death-weapon-ja.png (100%) rename {public => apps/web-react/public}/scanner/v1/glyphs/death-weapon.json (100%) rename {public => apps/web-react/public}/scanner/v1/glyphs/death-weapon.png (100%) rename {public => apps/web-react/public}/scanner/v1/glyphs/map-start-mode.json (100%) rename {public => apps/web-react/public}/scanner/v1/glyphs/map-start-mode.png (100%) rename {public => apps/web-react/public}/scanner/v1/glyphs/map-start-stage.json (100%) rename {public => apps/web-react/public}/scanner/v1/glyphs/map-start-stage.png (100%) rename {public => apps/web-react/public}/scanner/v1/glyphs/scoreboard-header-line.json (100%) rename {public => apps/web-react/public}/scanner/v1/glyphs/scoreboard-header-line.png (100%) rename {public => apps/web-react/public}/scanner/v1/glyphs/scoreboard-header-lobby.json (100%) rename {public => apps/web-react/public}/scanner/v1/glyphs/scoreboard-header-lobby.png (100%) rename {public => apps/web-react/public}/scanner/v1/glyphs/scoreboard-names.json (100%) rename {public => apps/web-react/public}/scanner/v1/glyphs/scoreboard-names.png (100%) rename {public => apps/web-react/public}/scanner/v1/glyphs/scoreboard-paint-digits.json (100%) rename {public => apps/web-react/public}/scanner/v1/glyphs/scoreboard-paint-digits.png (100%) rename {public => apps/web-react/public}/scanner/v1/glyphs/scoreboard-replay-code.json (100%) rename {public => apps/web-react/public}/scanner/v1/glyphs/scoreboard-replay-code.png (100%) rename {public => apps/web-react/public}/scanner/v1/glyphs/scoreboard-replay-result.json (100%) rename {public => apps/web-react/public}/scanner/v1/glyphs/scoreboard-replay-result.png (100%) rename {public => apps/web-react/public}/scanner/v1/glyphs/scoreboard-stat-digits.json (100%) rename {public => apps/web-react/public}/scanner/v1/glyphs/scoreboard-stat-digits.png (100%) rename {public => apps/web-react/public}/scanner/v1/glyphs/scoreboard-team-digits.json (100%) rename {public => apps/web-react/public}/scanner/v1/glyphs/scoreboard-team-digits.png (100%) rename {public => apps/web-react/public}/scanner/v1/planner/manifest.json (100%) rename {public => apps/web-react/public}/scanner/v1/planner/signatures.png (100%) rename {public => apps/web-react/public}/sw-2.js (100%) rename react-router.config.ts => apps/web-react/react-router.config.ts (100%) rename {scripts => apps/web-react/scripts}/add-badge-winners.ts (100%) rename {scripts => apps/web-react/scripts}/add-badge.ts (100%) rename {scripts => apps/web-react/scripts}/add-leaderboard-teams-to-tournament.ts (100%) rename {scripts => apps/web-react/scripts}/benchmark-db.ts (100%) rename {scripts => apps/web-react/scripts}/benchmark-db/cases.ts (100%) rename {scripts => apps/web-react/scripts}/benchmark-db/fixtures.ts (100%) rename {scripts => apps/web-react/scripts}/check-articles.ts (100%) rename {scripts => apps/web-react/scripts}/check-season-status.ts (100%) rename {scripts => apps/web-react/scripts}/check-translation-jsons.ts (100%) rename {scripts => apps/web-react/scripts}/collapse-single-plural-keys.ts (100%) rename {scripts => apps/web-react/scripts}/compute-luti-divs.ts (100%) rename {scripts => apps/web-react/scripts}/create-analyzer-json.ts (100%) rename {scripts => apps/web-react/scripts}/create-gear-json.ts (100%) rename {scripts => apps/web-react/scripts}/create-league-divisions.ts (100%) rename {scripts => apps/web-react/scripts}/create-migration.ts (100%) rename {scripts => apps/web-react/scripts}/create-misc-json.ts (100%) rename {scripts => apps/web-react/scripts}/create-object-dmg-json.ts (100%) rename {scripts => apps/web-react/scripts}/delete-badge.ts (100%) rename {scripts => apps/web-react/scripts}/delete-db-files.mjs (100%) rename {scripts => apps/web-react/scripts}/delete-skill.ts (100%) rename {scripts => apps/web-react/scripts}/delete-user.ts (100%) rename {scripts => apps/web-react/scripts}/dicts/.gitkeep (100%) rename {scripts => apps/web-react/scripts}/dicts/langs/.gitkeep (100%) rename {scripts => apps/web-react/scripts}/ensure-test-db.ts (100%) rename {scripts => apps/web-react/scripts}/join-order.json (100%) rename {scripts => apps/web-react/scripts}/mass-add-tournaments-to-org.ts (100%) rename {scripts => apps/web-react/scripts}/migrate.ts (100%) rename {scripts => apps/web-react/scripts}/nuke-reported-weapons.ts (100%) rename {scripts => apps/web-react/scripts}/org-monthly-active-players.ts (100%) rename {scripts => apps/web-react/scripts}/output/.gitkeep (100%) rename {scripts => apps/web-react/scripts}/placements/index.ts (100%) rename {scripts => apps/web-react/scripts}/placements/schemas.ts (100%) rename {scripts => apps/web-react/scripts}/refresh-prod-db.ts (100%) rename {scripts => apps/web-react/scripts}/rename-badge.ts (100%) rename {scripts => apps/web-react/scripts}/replace-img-names.ts (100%) rename {scripts => apps/web-react/scripts}/replace-weapon-names.ts (100%) rename {scripts => apps/web-react/scripts}/scanner/bootstrap-atlas-from-fixture.ts (100%) rename {scripts => apps/web-react/scripts}/scanner/build-glyph-atlas.ts (100%) rename {scripts => apps/web-react/scripts}/scanner/build-localized-entries.ts (100%) rename {scripts => apps/web-react/scripts}/scanner/build-planner-signatures.ts (100%) rename {scripts => apps/web-react/scripts}/scanner/dump-crops.ts (100%) rename {scripts => apps/web-react/scripts}/scanner/otf-cmap.ts (100%) rename {scripts => apps/web-react/scripts}/scanner/overlay-rois.ts (100%) rename {scripts => apps/web-react/scripts}/scanner/replay-frames.ts (100%) rename {scripts => apps/web-react/scripts}/scanner/report.ts (100%) rename {scripts => apps/web-react/scripts}/scanner/run-fixtures.ts (100%) rename {scripts => apps/web-react/scripts}/scanner/scan-vod.ts (100%) rename {scripts => apps/web-react/scripts}/scanner/status-audit.ts (100%) rename {scripts => apps/web-react/scripts}/scanner/vite-node.config.ts (100%) rename {scripts => apps/web-react/scripts}/season-initial-powers.ts (100%) rename {scripts => apps/web-react/scripts}/seed-art-urls.ts (100%) rename {scripts => apps/web-react/scripts}/seed-images.ts (100%) rename {scripts => apps/web-react/scripts}/seed.ts (100%) rename {scripts => apps/web-react/scripts}/send-test-notification.ts (100%) rename {scripts => apps/web-react/scripts}/setup.ts (100%) rename {scripts => apps/web-react/scripts}/skip-plus.ts (100%) rename {scripts => apps/web-react/scripts}/swap-users.ts (100%) rename {scripts => apps/web-react/scripts}/sync-homemade-badges.ts (100%) rename {scripts => apps/web-react/scripts}/sync-weapon-params.ts (100%) rename {scripts => apps/web-react/scripts}/tsconfig.json (100%) rename {scripts => apps/web-react/scripts}/unskip-plus.ts (100%) rename {scripts => apps/web-react/scripts}/utils.ts (100%) rename tsconfig.json => apps/web-react/tsconfig.json (100%) rename {types => apps/web-react/types}/edmonds-blossom.d.ts (100%) rename {types => apps/web-react/types}/env.d.ts (100%) rename {types => apps/web-react/types}/react-i18next.d.ts (100%) rename {types => apps/web-react/types}/react.d.ts (100%) rename {types => apps/web-react/types}/vite.d.ts (100%) rename {types => apps/web-react/types}/youtube.d.ts (100%) rename vite.config.ts => apps/web-react/vite.config.ts (100%) rename vitest.browser.config.ts => apps/web-react/vitest.browser.config.ts (100%) rename vitest.scanner.config.ts => apps/web-react/vitest.scanner.config.ts (100%) rename vitest.unit.config.ts => apps/web-react/vitest.unit.config.ts (100%) diff --git a/.github/workflows/e2e-tests.yml b/.github/workflows/e2e-tests.yml index 4e18b68e8..ab9076b19 100644 --- a/.github/workflows/e2e-tests.yml +++ b/.github/workflows/e2e-tests.yml @@ -3,16 +3,16 @@ name: E2E Tests on: pull_request: paths-ignore: - - 'content/**' - - 'public/**' - - 'locales/**' + - 'apps/web-react/content/**' + - 'apps/web-react/public/**' + - 'apps/web-react/locales/**' push: branches: - main paths-ignore: - - 'content/**' - - 'public/**' - - 'locales/**' + - 'apps/web-react/content/**' + - 'apps/web-react/public/**' + - 'apps/web-react/locales/**' jobs: e2e: @@ -50,7 +50,7 @@ jobs: run: pnpm install --frozen-lockfile - name: Install Playwright browsers - run: pnpm exec playwright install --with-deps + run: pnpm --filter web-react exec playwright install --with-deps - name: Run E2E tests run: pnpm run test:e2e @@ -63,12 +63,12 @@ jobs: if: failure() with: name: playwright-report - path: playwright-report/ + path: apps/web-react/playwright-report/ retention-days: 30 - uses: actions/upload-artifact@v4 if: failure() with: name: playwright-traces - path: test-results/ + path: apps/web-react/test-results/ retention-days: 30 diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index db353ae80..3a7ff4a32 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -24,7 +24,7 @@ jobs: run: pnpm install --frozen-lockfile - name: Install Playwright browsers - run: pnpm exec playwright install chromium + run: pnpm --filter web-react exec playwright install chromium - name: Formatter/Linter run: pnpm run biome:check diff --git a/.github/workflows/translation-progress.yml b/.github/workflows/translation-progress.yml index a8a0570a3..8fbafabac 100644 --- a/.github/workflows/translation-progress.yml +++ b/.github/workflows/translation-progress.yml @@ -29,4 +29,4 @@ jobs: GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} run: | pnpm run check-translation-jsons - gh issue edit 1104 --body-file ./translation-progress.md + gh issue edit 1104 --body-file ./apps/web-react/translation-progress.md diff --git a/.gitignore b/.gitignore index 31a272f21..07169fb9d 100644 --- a/.gitignore +++ b/.gitignore @@ -1,9 +1,9 @@ node_modules package-lock.json -/.cache* -/build -/public/build +.cache* +apps/web-react/build +apps/web-react/public/build .react-router/ .env translation-progress.md @@ -16,15 +16,15 @@ dump .DS_Store .excalidraw -/scripts/output/* -!/scripts/output/.gitkeep +apps/web-react/scripts/output/* +!apps/web-react/scripts/output/.gitkeep -/scripts/dicts/**/* -/scripts/badge -/test-results/ -/playwright-report/ -/playwright/.cache/ -/.vitest-attachments +apps/web-react/scripts/dicts/**/* +apps/web-react/scripts/badge +test-results/ +playwright-report/ +playwright/.cache/ +.vitest-attachments .vitest-attachments/ # Vitest auto-captured failure screenshots (numbered, without browser info) @@ -36,7 +36,7 @@ dump notepad.txt # proprietary game fonts for the scanner glyph-atlas builders (scripts/scanner) -/assets/fonts/ +apps/web-react/assets/fonts/ *.mp4 -*.mkv \ No newline at end of file +*.mkv diff --git a/.env.example b/apps/web-react/.env.example similarity index 100% rename from .env.example rename to apps/web-react/.env.example diff --git a/.env.test b/apps/web-react/.env.test similarity index 100% rename from .env.test rename to apps/web-react/.env.test diff --git a/app/browser-test-setup.ts b/apps/web-react/app/browser-test-setup.ts similarity index 100% rename from app/browser-test-setup.ts rename to apps/web-react/app/browser-test-setup.ts diff --git a/app/components/AbilitiesSelector.module.css b/apps/web-react/app/components/AbilitiesSelector.module.css similarity index 100% rename from app/components/AbilitiesSelector.module.css rename to apps/web-react/app/components/AbilitiesSelector.module.css diff --git a/app/components/AbilitiesSelector.tsx b/apps/web-react/app/components/AbilitiesSelector.tsx similarity index 100% rename from app/components/AbilitiesSelector.tsx rename to apps/web-react/app/components/AbilitiesSelector.tsx diff --git a/app/components/Ability.module.css b/apps/web-react/app/components/Ability.module.css similarity index 100% rename from app/components/Ability.module.css rename to apps/web-react/app/components/Ability.module.css diff --git a/app/components/Ability.tsx b/apps/web-react/app/components/Ability.tsx similarity index 100% rename from app/components/Ability.tsx rename to apps/web-react/app/components/Ability.tsx diff --git a/app/components/ActionButton.tsx b/apps/web-react/app/components/ActionButton.tsx similarity index 100% rename from app/components/ActionButton.tsx rename to apps/web-react/app/components/ActionButton.tsx diff --git a/app/components/Alert.module.css b/apps/web-react/app/components/Alert.module.css similarity index 100% rename from app/components/Alert.module.css rename to apps/web-react/app/components/Alert.module.css diff --git a/app/components/Alert.tsx b/apps/web-react/app/components/Alert.tsx similarity index 100% rename from app/components/Alert.tsx rename to apps/web-react/app/components/Alert.tsx diff --git a/app/components/Avatar.module.css b/apps/web-react/app/components/Avatar.module.css similarity index 100% rename from app/components/Avatar.module.css rename to apps/web-react/app/components/Avatar.module.css diff --git a/app/components/Avatar.tsx b/apps/web-react/app/components/Avatar.tsx similarity index 100% rename from app/components/Avatar.tsx rename to apps/web-react/app/components/Avatar.tsx diff --git a/app/components/Badge.tsx b/apps/web-react/app/components/Badge.tsx similarity index 100% rename from app/components/Badge.tsx rename to apps/web-react/app/components/Badge.tsx diff --git a/app/components/BuildCard.module.css b/apps/web-react/app/components/BuildCard.module.css similarity index 100% rename from app/components/BuildCard.module.css rename to apps/web-react/app/components/BuildCard.module.css diff --git a/app/components/BuildCard.tsx b/apps/web-react/app/components/BuildCard.tsx similarity index 100% rename from app/components/BuildCard.tsx rename to apps/web-react/app/components/BuildCard.tsx diff --git a/app/components/Catcher.tsx b/apps/web-react/app/components/Catcher.tsx similarity index 100% rename from app/components/Catcher.tsx rename to apps/web-react/app/components/Catcher.tsx diff --git a/app/components/Chart.module.css b/apps/web-react/app/components/Chart.module.css similarity index 100% rename from app/components/Chart.module.css rename to apps/web-react/app/components/Chart.module.css diff --git a/app/components/Chart.tsx b/apps/web-react/app/components/Chart.tsx similarity index 100% rename from app/components/Chart.tsx rename to apps/web-react/app/components/Chart.tsx diff --git a/app/components/CopyToClipboardPopover.tsx b/apps/web-react/app/components/CopyToClipboardPopover.tsx similarity index 100% rename from app/components/CopyToClipboardPopover.tsx rename to apps/web-react/app/components/CopyToClipboardPopover.tsx diff --git a/app/components/CustomThemeSelector.module.css b/apps/web-react/app/components/CustomThemeSelector.module.css similarity index 100% rename from app/components/CustomThemeSelector.module.css rename to apps/web-react/app/components/CustomThemeSelector.module.css diff --git a/app/components/CustomThemeSelector.tsx b/apps/web-react/app/components/CustomThemeSelector.tsx similarity index 100% rename from app/components/CustomThemeSelector.tsx rename to apps/web-react/app/components/CustomThemeSelector.tsx diff --git a/app/components/Divider.module.css b/apps/web-react/app/components/Divider.module.css similarity index 100% rename from app/components/Divider.module.css rename to apps/web-react/app/components/Divider.module.css diff --git a/app/components/Divider.tsx b/apps/web-react/app/components/Divider.tsx similarity index 100% rename from app/components/Divider.tsx rename to apps/web-react/app/components/Divider.tsx diff --git a/app/components/DotPagination.module.css b/apps/web-react/app/components/DotPagination.module.css similarity index 100% rename from app/components/DotPagination.module.css rename to apps/web-react/app/components/DotPagination.module.css diff --git a/app/components/DotPagination.tsx b/apps/web-react/app/components/DotPagination.tsx similarity index 100% rename from app/components/DotPagination.tsx rename to apps/web-react/app/components/DotPagination.tsx diff --git a/app/components/EventsList.module.css b/apps/web-react/app/components/EventsList.module.css similarity index 100% rename from app/components/EventsList.module.css rename to apps/web-react/app/components/EventsList.module.css diff --git a/app/components/EventsList.tsx b/apps/web-react/app/components/EventsList.tsx similarity index 100% rename from app/components/EventsList.tsx rename to apps/web-react/app/components/EventsList.tsx diff --git a/app/components/Flag.tsx b/apps/web-react/app/components/Flag.tsx similarity index 100% rename from app/components/Flag.tsx rename to apps/web-react/app/components/Flag.tsx diff --git a/app/components/FormErrors.module.css b/apps/web-react/app/components/FormErrors.module.css similarity index 100% rename from app/components/FormErrors.module.css rename to apps/web-react/app/components/FormErrors.module.css diff --git a/app/components/FormErrors.tsx b/apps/web-react/app/components/FormErrors.tsx similarity index 100% rename from app/components/FormErrors.tsx rename to apps/web-react/app/components/FormErrors.tsx diff --git a/app/components/FormMessage.module.css b/apps/web-react/app/components/FormMessage.module.css similarity index 100% rename from app/components/FormMessage.module.css rename to apps/web-react/app/components/FormMessage.module.css diff --git a/app/components/FormMessage.tsx b/apps/web-react/app/components/FormMessage.tsx similarity index 100% rename from app/components/FormMessage.tsx rename to apps/web-react/app/components/FormMessage.tsx diff --git a/app/components/FormWithConfirm.tsx b/apps/web-react/app/components/FormWithConfirm.tsx similarity index 100% rename from app/components/FormWithConfirm.tsx rename to apps/web-react/app/components/FormWithConfirm.tsx diff --git a/app/components/FriendCodeInput.tsx b/apps/web-react/app/components/FriendCodeInput.tsx similarity index 100% rename from app/components/FriendCodeInput.tsx rename to apps/web-react/app/components/FriendCodeInput.tsx diff --git a/app/components/FriendCodePopover.tsx b/apps/web-react/app/components/FriendCodePopover.tsx similarity index 100% rename from app/components/FriendCodePopover.tsx rename to apps/web-react/app/components/FriendCodePopover.tsx diff --git a/app/components/GameTimeline.module.css b/apps/web-react/app/components/GameTimeline.module.css similarity index 100% rename from app/components/GameTimeline.module.css rename to apps/web-react/app/components/GameTimeline.module.css diff --git a/app/components/GameTimeline.tsx b/apps/web-react/app/components/GameTimeline.tsx similarity index 100% rename from app/components/GameTimeline.tsx rename to apps/web-react/app/components/GameTimeline.tsx diff --git a/app/components/GearSelect.tsx b/apps/web-react/app/components/GearSelect.tsx similarity index 100% rename from app/components/GearSelect.tsx rename to apps/web-react/app/components/GearSelect.tsx diff --git a/app/components/Image.module.css b/apps/web-react/app/components/Image.module.css similarity index 100% rename from app/components/Image.module.css rename to apps/web-react/app/components/Image.module.css diff --git a/app/components/Image.tsx b/apps/web-react/app/components/Image.tsx similarity index 100% rename from app/components/Image.tsx rename to apps/web-react/app/components/Image.tsx diff --git a/app/components/InfoPopover.module.css b/apps/web-react/app/components/InfoPopover.module.css similarity index 100% rename from app/components/InfoPopover.module.css rename to apps/web-react/app/components/InfoPopover.module.css diff --git a/app/components/InfoPopover.tsx b/apps/web-react/app/components/InfoPopover.tsx similarity index 100% rename from app/components/InfoPopover.tsx rename to apps/web-react/app/components/InfoPopover.tsx diff --git a/app/components/IngameNameInput.module.css b/apps/web-react/app/components/IngameNameInput.module.css similarity index 100% rename from app/components/IngameNameInput.module.css rename to apps/web-react/app/components/IngameNameInput.module.css diff --git a/app/components/IngameNameInput.tsx b/apps/web-react/app/components/IngameNameInput.tsx similarity index 100% rename from app/components/IngameNameInput.tsx rename to apps/web-react/app/components/IngameNameInput.tsx diff --git a/app/components/Input.module.css b/apps/web-react/app/components/Input.module.css similarity index 100% rename from app/components/Input.module.css rename to apps/web-react/app/components/Input.module.css diff --git a/app/components/Input.tsx b/apps/web-react/app/components/Input.tsx similarity index 100% rename from app/components/Input.tsx rename to apps/web-react/app/components/Input.tsx diff --git a/app/components/Label.module.css b/apps/web-react/app/components/Label.module.css similarity index 100% rename from app/components/Label.module.css rename to apps/web-react/app/components/Label.module.css diff --git a/app/components/Label.tsx b/apps/web-react/app/components/Label.tsx similarity index 100% rename from app/components/Label.tsx rename to apps/web-react/app/components/Label.tsx diff --git a/app/components/LocaleTime.tsx b/apps/web-react/app/components/LocaleTime.tsx similarity index 100% rename from app/components/LocaleTime.tsx rename to apps/web-react/app/components/LocaleTime.tsx diff --git a/app/components/LocaleTimeRange.tsx b/apps/web-react/app/components/LocaleTimeRange.tsx similarity index 100% rename from app/components/LocaleTimeRange.tsx rename to apps/web-react/app/components/LocaleTimeRange.tsx diff --git a/app/components/Main.module.css b/apps/web-react/app/components/Main.module.css similarity index 100% rename from app/components/Main.module.css rename to apps/web-react/app/components/Main.module.css diff --git a/app/components/Main.tsx b/apps/web-react/app/components/Main.tsx similarity index 100% rename from app/components/Main.tsx rename to apps/web-react/app/components/Main.tsx diff --git a/app/components/MapPoolSelector.module.css b/apps/web-react/app/components/MapPoolSelector.module.css similarity index 100% rename from app/components/MapPoolSelector.module.css rename to apps/web-react/app/components/MapPoolSelector.module.css diff --git a/app/components/MapPoolSelector.tsx b/apps/web-react/app/components/MapPoolSelector.tsx similarity index 100% rename from app/components/MapPoolSelector.tsx rename to apps/web-react/app/components/MapPoolSelector.tsx diff --git a/app/components/Markdown.tsx b/apps/web-react/app/components/Markdown.tsx similarity index 100% rename from app/components/Markdown.tsx rename to apps/web-react/app/components/Markdown.tsx diff --git a/app/components/MobileNav.module.css b/apps/web-react/app/components/MobileNav.module.css similarity index 100% rename from app/components/MobileNav.module.css rename to apps/web-react/app/components/MobileNav.module.css diff --git a/app/components/MobileNav.tsx b/apps/web-react/app/components/MobileNav.tsx similarity index 100% rename from app/components/MobileNav.tsx rename to apps/web-react/app/components/MobileNav.tsx diff --git a/app/components/NoteAvatar.module.css b/apps/web-react/app/components/NoteAvatar.module.css similarity index 100% rename from app/components/NoteAvatar.module.css rename to apps/web-react/app/components/NoteAvatar.module.css diff --git a/app/components/NoteAvatar.tsx b/apps/web-react/app/components/NoteAvatar.tsx similarity index 100% rename from app/components/NoteAvatar.tsx rename to apps/web-react/app/components/NoteAvatar.tsx diff --git a/app/components/NotificationDot.module.css b/apps/web-react/app/components/NotificationDot.module.css similarity index 100% rename from app/components/NotificationDot.module.css rename to apps/web-react/app/components/NotificationDot.module.css diff --git a/app/components/NotificationDot.tsx b/apps/web-react/app/components/NotificationDot.tsx similarity index 100% rename from app/components/NotificationDot.tsx rename to apps/web-react/app/components/NotificationDot.tsx diff --git a/app/components/ObjectiveTimeline.module.css b/apps/web-react/app/components/ObjectiveTimeline.module.css similarity index 100% rename from app/components/ObjectiveTimeline.module.css rename to apps/web-react/app/components/ObjectiveTimeline.module.css diff --git a/app/components/ObjectiveTimeline.tsx b/apps/web-react/app/components/ObjectiveTimeline.tsx similarity index 100% rename from app/components/ObjectiveTimeline.tsx rename to apps/web-react/app/components/ObjectiveTimeline.tsx diff --git a/app/components/Pagination.module.css b/apps/web-react/app/components/Pagination.module.css similarity index 100% rename from app/components/Pagination.module.css rename to apps/web-react/app/components/Pagination.module.css diff --git a/app/components/Pagination.test.ts b/apps/web-react/app/components/Pagination.test.ts similarity index 100% rename from app/components/Pagination.test.ts rename to apps/web-react/app/components/Pagination.test.ts diff --git a/app/components/Pagination.tsx b/apps/web-react/app/components/Pagination.tsx similarity index 100% rename from app/components/Pagination.tsx rename to apps/web-react/app/components/Pagination.tsx diff --git a/app/components/Placeholder.module.css b/apps/web-react/app/components/Placeholder.module.css similarity index 100% rename from app/components/Placeholder.module.css rename to apps/web-react/app/components/Placeholder.module.css diff --git a/app/components/Placeholder.tsx b/apps/web-react/app/components/Placeholder.tsx similarity index 100% rename from app/components/Placeholder.tsx rename to apps/web-react/app/components/Placeholder.tsx diff --git a/app/components/Placement.tsx b/apps/web-react/app/components/Placement.tsx similarity index 100% rename from app/components/Placement.tsx rename to apps/web-react/app/components/Placement.tsx diff --git a/app/components/PlayerStatusTimeline.module.css b/apps/web-react/app/components/PlayerStatusTimeline.module.css similarity index 100% rename from app/components/PlayerStatusTimeline.module.css rename to apps/web-react/app/components/PlayerStatusTimeline.module.css diff --git a/app/components/PlayerStatusTimeline.tsx b/apps/web-react/app/components/PlayerStatusTimeline.tsx similarity index 100% rename from app/components/PlayerStatusTimeline.tsx rename to apps/web-react/app/components/PlayerStatusTimeline.tsx diff --git a/app/components/Redirect.tsx b/apps/web-react/app/components/Redirect.tsx similarity index 100% rename from app/components/Redirect.tsx rename to apps/web-react/app/components/Redirect.tsx diff --git a/app/components/RelativeTime.browser.test.tsx b/apps/web-react/app/components/RelativeTime.browser.test.tsx similarity index 100% rename from app/components/RelativeTime.browser.test.tsx rename to apps/web-react/app/components/RelativeTime.browser.test.tsx diff --git a/app/components/RelativeTime.tsx b/apps/web-react/app/components/RelativeTime.tsx similarity index 100% rename from app/components/RelativeTime.tsx rename to apps/web-react/app/components/RelativeTime.tsx diff --git a/app/components/Section.module.css b/apps/web-react/app/components/Section.module.css similarity index 100% rename from app/components/Section.module.css rename to apps/web-react/app/components/Section.module.css diff --git a/app/components/Section.tsx b/apps/web-react/app/components/Section.tsx similarity index 100% rename from app/components/Section.tsx rename to apps/web-react/app/components/Section.tsx diff --git a/app/components/ShareUrlButton.tsx b/apps/web-react/app/components/ShareUrlButton.tsx similarity index 100% rename from app/components/ShareUrlButton.tsx rename to apps/web-react/app/components/ShareUrlButton.tsx diff --git a/app/components/SideNav.module.css b/apps/web-react/app/components/SideNav.module.css similarity index 100% rename from app/components/SideNav.module.css rename to apps/web-react/app/components/SideNav.module.css diff --git a/app/components/SideNav.tsx b/apps/web-react/app/components/SideNav.tsx similarity index 100% rename from app/components/SideNav.tsx rename to apps/web-react/app/components/SideNav.tsx diff --git a/app/components/SortableTableHeader.module.css b/apps/web-react/app/components/SortableTableHeader.module.css similarity index 100% rename from app/components/SortableTableHeader.module.css rename to apps/web-react/app/components/SortableTableHeader.module.css diff --git a/app/components/SortableTableHeader.tsx b/apps/web-react/app/components/SortableTableHeader.tsx similarity index 100% rename from app/components/SortableTableHeader.tsx rename to apps/web-react/app/components/SortableTableHeader.tsx diff --git a/app/components/StageBannerBox.module.css b/apps/web-react/app/components/StageBannerBox.module.css similarity index 100% rename from app/components/StageBannerBox.module.css rename to apps/web-react/app/components/StageBannerBox.module.css diff --git a/app/components/StageBannerBox.tsx b/apps/web-react/app/components/StageBannerBox.tsx similarity index 100% rename from app/components/StageBannerBox.tsx rename to apps/web-react/app/components/StageBannerBox.tsx diff --git a/app/components/StageSelect.module.css b/apps/web-react/app/components/StageSelect.module.css similarity index 100% rename from app/components/StageSelect.module.css rename to apps/web-react/app/components/StageSelect.module.css diff --git a/app/components/StageSelect.tsx b/apps/web-react/app/components/StageSelect.tsx similarity index 100% rename from app/components/StageSelect.tsx rename to apps/web-react/app/components/StageSelect.tsx diff --git a/app/components/StreamListItems.module.css b/apps/web-react/app/components/StreamListItems.module.css similarity index 100% rename from app/components/StreamListItems.module.css rename to apps/web-react/app/components/StreamListItems.module.css diff --git a/app/components/StreamListItems.tsx b/apps/web-react/app/components/StreamListItems.tsx similarity index 100% rename from app/components/StreamListItems.tsx rename to apps/web-react/app/components/StreamListItems.tsx diff --git a/app/components/SubNav.module.css b/apps/web-react/app/components/SubNav.module.css similarity index 100% rename from app/components/SubNav.module.css rename to apps/web-react/app/components/SubNav.module.css diff --git a/app/components/SubNav.tsx b/apps/web-react/app/components/SubNav.tsx similarity index 100% rename from app/components/SubNav.tsx rename to apps/web-react/app/components/SubNav.tsx diff --git a/app/components/SubmitButton.tsx b/apps/web-react/app/components/SubmitButton.tsx similarity index 100% rename from app/components/SubmitButton.tsx rename to apps/web-react/app/components/SubmitButton.tsx diff --git a/app/components/Table.module.css b/apps/web-react/app/components/Table.module.css similarity index 100% rename from app/components/Table.module.css rename to apps/web-react/app/components/Table.module.css diff --git a/app/components/Table.tsx b/apps/web-react/app/components/Table.tsx similarity index 100% rename from app/components/Table.tsx rename to apps/web-react/app/components/Table.tsx diff --git a/app/components/TierPill.module.css b/apps/web-react/app/components/TierPill.module.css similarity index 100% rename from app/components/TierPill.module.css rename to apps/web-react/app/components/TierPill.module.css diff --git a/app/components/TierPill.tsx b/apps/web-react/app/components/TierPill.tsx similarity index 100% rename from app/components/TierPill.tsx rename to apps/web-react/app/components/TierPill.tsx diff --git a/app/components/TimePopover.module.css b/apps/web-react/app/components/TimePopover.module.css similarity index 100% rename from app/components/TimePopover.module.css rename to apps/web-react/app/components/TimePopover.module.css diff --git a/app/components/TimePopover.tsx b/apps/web-react/app/components/TimePopover.tsx similarity index 100% rename from app/components/TimePopover.tsx rename to apps/web-react/app/components/TimePopover.tsx diff --git a/app/components/UserLink.module.css b/apps/web-react/app/components/UserLink.module.css similarity index 100% rename from app/components/UserLink.module.css rename to apps/web-react/app/components/UserLink.module.css diff --git a/app/components/UserLink.tsx b/apps/web-react/app/components/UserLink.tsx similarity index 100% rename from app/components/UserLink.tsx rename to apps/web-react/app/components/UserLink.tsx diff --git a/app/components/WeaponSelect.module.css b/apps/web-react/app/components/WeaponSelect.module.css similarity index 100% rename from app/components/WeaponSelect.module.css rename to apps/web-react/app/components/WeaponSelect.module.css diff --git a/app/components/WeaponSelect.tsx b/apps/web-react/app/components/WeaponSelect.tsx similarity index 100% rename from app/components/WeaponSelect.tsx rename to apps/web-react/app/components/WeaponSelect.tsx diff --git a/app/components/YouTubeEmbed.module.css b/apps/web-react/app/components/YouTubeEmbed.module.css similarity index 100% rename from app/components/YouTubeEmbed.module.css rename to apps/web-react/app/components/YouTubeEmbed.module.css diff --git a/app/components/YouTubeEmbed.tsx b/apps/web-react/app/components/YouTubeEmbed.tsx similarity index 100% rename from app/components/YouTubeEmbed.tsx rename to apps/web-react/app/components/YouTubeEmbed.tsx diff --git a/app/components/elements/BottomTexts.tsx b/apps/web-react/app/components/elements/BottomTexts.tsx similarity index 100% rename from app/components/elements/BottomTexts.tsx rename to apps/web-react/app/components/elements/BottomTexts.tsx diff --git a/app/components/elements/Button.module.css b/apps/web-react/app/components/elements/Button.module.css similarity index 100% rename from app/components/elements/Button.module.css rename to apps/web-react/app/components/elements/Button.module.css diff --git a/app/components/elements/Button.tsx b/apps/web-react/app/components/elements/Button.tsx similarity index 100% rename from app/components/elements/Button.tsx rename to apps/web-react/app/components/elements/Button.tsx diff --git a/app/components/elements/Calendar.module.css b/apps/web-react/app/components/elements/Calendar.module.css similarity index 100% rename from app/components/elements/Calendar.module.css rename to apps/web-react/app/components/elements/Calendar.module.css diff --git a/app/components/elements/Calendar.tsx b/apps/web-react/app/components/elements/Calendar.tsx similarity index 100% rename from app/components/elements/Calendar.tsx rename to apps/web-react/app/components/elements/Calendar.tsx diff --git a/app/components/elements/ChipRadio.module.css b/apps/web-react/app/components/elements/ChipRadio.module.css similarity index 100% rename from app/components/elements/ChipRadio.module.css rename to apps/web-react/app/components/elements/ChipRadio.module.css diff --git a/app/components/elements/ChipRadio.tsx b/apps/web-react/app/components/elements/ChipRadio.tsx similarity index 100% rename from app/components/elements/ChipRadio.tsx rename to apps/web-react/app/components/elements/ChipRadio.tsx diff --git a/app/components/elements/DatePicker.module.css b/apps/web-react/app/components/elements/DatePicker.module.css similarity index 100% rename from app/components/elements/DatePicker.module.css rename to apps/web-react/app/components/elements/DatePicker.module.css diff --git a/app/components/elements/DatePicker.tsx b/apps/web-react/app/components/elements/DatePicker.tsx similarity index 100% rename from app/components/elements/DatePicker.tsx rename to apps/web-react/app/components/elements/DatePicker.tsx diff --git a/app/components/elements/Dialog.module.css b/apps/web-react/app/components/elements/Dialog.module.css similarity index 100% rename from app/components/elements/Dialog.module.css rename to apps/web-react/app/components/elements/Dialog.module.css diff --git a/app/components/elements/Dialog.tsx b/apps/web-react/app/components/elements/Dialog.tsx similarity index 100% rename from app/components/elements/Dialog.tsx rename to apps/web-react/app/components/elements/Dialog.tsx diff --git a/app/components/elements/FieldError.tsx b/apps/web-react/app/components/elements/FieldError.tsx similarity index 100% rename from app/components/elements/FieldError.tsx rename to apps/web-react/app/components/elements/FieldError.tsx diff --git a/app/components/elements/FieldMessage.tsx b/apps/web-react/app/components/elements/FieldMessage.tsx similarity index 100% rename from app/components/elements/FieldMessage.tsx rename to apps/web-react/app/components/elements/FieldMessage.tsx diff --git a/app/components/elements/Label.module.css b/apps/web-react/app/components/elements/Label.module.css similarity index 100% rename from app/components/elements/Label.module.css rename to apps/web-react/app/components/elements/Label.module.css diff --git a/app/components/elements/Label.tsx b/apps/web-react/app/components/elements/Label.tsx similarity index 100% rename from app/components/elements/Label.tsx rename to apps/web-react/app/components/elements/Label.tsx diff --git a/app/components/elements/Menu.module.css b/apps/web-react/app/components/elements/Menu.module.css similarity index 100% rename from app/components/elements/Menu.module.css rename to apps/web-react/app/components/elements/Menu.module.css diff --git a/app/components/elements/Menu.tsx b/apps/web-react/app/components/elements/Menu.tsx similarity index 100% rename from app/components/elements/Menu.tsx rename to apps/web-react/app/components/elements/Menu.tsx diff --git a/app/components/elements/OrganizationSearch.tsx b/apps/web-react/app/components/elements/OrganizationSearch.tsx similarity index 100% rename from app/components/elements/OrganizationSearch.tsx rename to apps/web-react/app/components/elements/OrganizationSearch.tsx diff --git a/app/components/elements/Popover.module.css b/apps/web-react/app/components/elements/Popover.module.css similarity index 100% rename from app/components/elements/Popover.module.css rename to apps/web-react/app/components/elements/Popover.module.css diff --git a/app/components/elements/Popover.tsx b/apps/web-react/app/components/elements/Popover.tsx similarity index 100% rename from app/components/elements/Popover.tsx rename to apps/web-react/app/components/elements/Popover.tsx diff --git a/app/components/elements/SearchSelect.module.css b/apps/web-react/app/components/elements/SearchSelect.module.css similarity index 100% rename from app/components/elements/SearchSelect.module.css rename to apps/web-react/app/components/elements/SearchSelect.module.css diff --git a/app/components/elements/SearchSelect.tsx b/apps/web-react/app/components/elements/SearchSelect.tsx similarity index 100% rename from app/components/elements/SearchSelect.tsx rename to apps/web-react/app/components/elements/SearchSelect.tsx diff --git a/app/components/elements/Select.browser.test.tsx b/apps/web-react/app/components/elements/Select.browser.test.tsx similarity index 100% rename from app/components/elements/Select.browser.test.tsx rename to apps/web-react/app/components/elements/Select.browser.test.tsx diff --git a/app/components/elements/Select.module.css b/apps/web-react/app/components/elements/Select.module.css similarity index 100% rename from app/components/elements/Select.module.css rename to apps/web-react/app/components/elements/Select.module.css diff --git a/app/components/elements/Select.tsx b/apps/web-react/app/components/elements/Select.tsx similarity index 100% rename from app/components/elements/Select.tsx rename to apps/web-react/app/components/elements/Select.tsx diff --git a/app/components/elements/Switch.module.css b/apps/web-react/app/components/elements/Switch.module.css similarity index 100% rename from app/components/elements/Switch.module.css rename to apps/web-react/app/components/elements/Switch.module.css diff --git a/app/components/elements/Switch.tsx b/apps/web-react/app/components/elements/Switch.tsx similarity index 100% rename from app/components/elements/Switch.tsx rename to apps/web-react/app/components/elements/Switch.tsx diff --git a/app/components/elements/Tabs.module.css b/apps/web-react/app/components/elements/Tabs.module.css similarity index 100% rename from app/components/elements/Tabs.module.css rename to apps/web-react/app/components/elements/Tabs.module.css diff --git a/app/components/elements/Tabs.tsx b/apps/web-react/app/components/elements/Tabs.tsx similarity index 100% rename from app/components/elements/Tabs.tsx rename to apps/web-react/app/components/elements/Tabs.tsx diff --git a/app/components/elements/TeamSearch.module.css b/apps/web-react/app/components/elements/TeamSearch.module.css similarity index 100% rename from app/components/elements/TeamSearch.module.css rename to apps/web-react/app/components/elements/TeamSearch.module.css diff --git a/app/components/elements/TeamSearch.tsx b/apps/web-react/app/components/elements/TeamSearch.tsx similarity index 100% rename from app/components/elements/TeamSearch.tsx rename to apps/web-react/app/components/elements/TeamSearch.tsx diff --git a/app/components/elements/Toast.browser.test.tsx b/apps/web-react/app/components/elements/Toast.browser.test.tsx similarity index 100% rename from app/components/elements/Toast.browser.test.tsx rename to apps/web-react/app/components/elements/Toast.browser.test.tsx diff --git a/app/components/elements/Toast.module.css b/apps/web-react/app/components/elements/Toast.module.css similarity index 100% rename from app/components/elements/Toast.module.css rename to apps/web-react/app/components/elements/Toast.module.css diff --git a/app/components/elements/Toast.tsx b/apps/web-react/app/components/elements/Toast.tsx similarity index 100% rename from app/components/elements/Toast.tsx rename to apps/web-react/app/components/elements/Toast.tsx diff --git a/app/components/elements/TournamentSearch.tsx b/apps/web-react/app/components/elements/TournamentSearch.tsx similarity index 100% rename from app/components/elements/TournamentSearch.tsx rename to apps/web-react/app/components/elements/TournamentSearch.tsx diff --git a/app/components/elements/UserSearch.tsx b/apps/web-react/app/components/elements/UserSearch.tsx similarity index 100% rename from app/components/elements/UserSearch.tsx rename to apps/web-react/app/components/elements/UserSearch.tsx diff --git a/app/components/elements/useEntitySearch.ts b/apps/web-react/app/components/elements/useEntitySearch.ts similarity index 100% rename from app/components/elements/useEntitySearch.ts rename to apps/web-react/app/components/elements/useEntitySearch.ts diff --git a/app/components/filter-bar/FilterBar.browser.test.tsx b/apps/web-react/app/components/filter-bar/FilterBar.browser.test.tsx similarity index 100% rename from app/components/filter-bar/FilterBar.browser.test.tsx rename to apps/web-react/app/components/filter-bar/FilterBar.browser.test.tsx diff --git a/app/components/filter-bar/FilterBar.module.css b/apps/web-react/app/components/filter-bar/FilterBar.module.css similarity index 100% rename from app/components/filter-bar/FilterBar.module.css rename to apps/web-react/app/components/filter-bar/FilterBar.module.css diff --git a/app/components/filter-bar/FilterBar.tsx b/apps/web-react/app/components/filter-bar/FilterBar.tsx similarity index 100% rename from app/components/filter-bar/FilterBar.tsx rename to apps/web-react/app/components/filter-bar/FilterBar.tsx diff --git a/app/components/fuse/Fuse.tsx b/apps/web-react/app/components/fuse/Fuse.tsx similarity index 100% rename from app/components/fuse/Fuse.tsx rename to apps/web-react/app/components/fuse/Fuse.tsx diff --git a/app/components/icons/ArrowRight.tsx b/apps/web-react/app/components/icons/ArrowRight.tsx similarity index 100% rename from app/components/icons/ArrowRight.tsx rename to apps/web-react/app/components/icons/ArrowRight.tsx diff --git a/app/components/icons/BSKYLike.tsx b/apps/web-react/app/components/icons/BSKYLike.tsx similarity index 100% rename from app/components/icons/BSKYLike.tsx rename to apps/web-react/app/components/icons/BSKYLike.tsx diff --git a/app/components/icons/BSKYReply.tsx b/apps/web-react/app/components/icons/BSKYReply.tsx similarity index 100% rename from app/components/icons/BSKYReply.tsx rename to apps/web-react/app/components/icons/BSKYReply.tsx diff --git a/app/components/icons/BSKYRepost.tsx b/apps/web-react/app/components/icons/BSKYRepost.tsx similarity index 100% rename from app/components/icons/BSKYRepost.tsx rename to apps/web-react/app/components/icons/BSKYRepost.tsx diff --git a/app/components/icons/Battlefy.tsx b/apps/web-react/app/components/icons/Battlefy.tsx similarity index 100% rename from app/components/icons/Battlefy.tsx rename to apps/web-react/app/components/icons/Battlefy.tsx diff --git a/app/components/icons/Bsky.tsx b/apps/web-react/app/components/icons/Bsky.tsx similarity index 100% rename from app/components/icons/Bsky.tsx rename to apps/web-react/app/components/icons/Bsky.tsx diff --git a/app/components/icons/Discord.tsx b/apps/web-react/app/components/icons/Discord.tsx similarity index 100% rename from app/components/icons/Discord.tsx rename to apps/web-react/app/components/icons/Discord.tsx diff --git a/app/components/icons/External.tsx b/apps/web-react/app/components/icons/External.tsx similarity index 100% rename from app/components/icons/External.tsx rename to apps/web-react/app/components/icons/External.tsx diff --git a/app/components/icons/GitHub.tsx b/apps/web-react/app/components/icons/GitHub.tsx similarity index 100% rename from app/components/icons/GitHub.tsx rename to apps/web-react/app/components/icons/GitHub.tsx diff --git a/app/components/icons/MainSlot.tsx b/apps/web-react/app/components/icons/MainSlot.tsx similarity index 100% rename from app/components/icons/MainSlot.tsx rename to apps/web-react/app/components/icons/MainSlot.tsx diff --git a/app/components/icons/Patreon.tsx b/apps/web-react/app/components/icons/Patreon.tsx similarity index 100% rename from app/components/icons/Patreon.tsx rename to apps/web-react/app/components/icons/Patreon.tsx diff --git a/app/components/icons/SideSlot.tsx b/apps/web-react/app/components/icons/SideSlot.tsx similarity index 100% rename from app/components/icons/SideSlot.tsx rename to apps/web-react/app/components/icons/SideSlot.tsx diff --git a/app/components/icons/Twitch.tsx b/apps/web-react/app/components/icons/Twitch.tsx similarity index 100% rename from app/components/icons/Twitch.tsx rename to apps/web-react/app/components/icons/Twitch.tsx diff --git a/app/components/icons/YouTube.tsx b/apps/web-react/app/components/icons/YouTube.tsx similarity index 100% rename from app/components/icons/YouTube.tsx rename to apps/web-react/app/components/icons/YouTube.tsx diff --git a/app/components/layout/AnythingAdder.tsx b/apps/web-react/app/components/layout/AnythingAdder.tsx similarity index 100% rename from app/components/layout/AnythingAdder.tsx rename to apps/web-react/app/components/layout/AnythingAdder.tsx diff --git a/app/components/layout/AuthErrorDialog.tsx b/apps/web-react/app/components/layout/AuthErrorDialog.tsx similarity index 100% rename from app/components/layout/AuthErrorDialog.tsx rename to apps/web-react/app/components/layout/AuthErrorDialog.tsx diff --git a/app/components/layout/ChatSidebar.module.css b/apps/web-react/app/components/layout/ChatSidebar.module.css similarity index 100% rename from app/components/layout/ChatSidebar.module.css rename to apps/web-react/app/components/layout/ChatSidebar.module.css diff --git a/app/components/layout/ChatSidebar.tsx b/apps/web-react/app/components/layout/ChatSidebar.tsx similarity index 100% rename from app/components/layout/ChatSidebar.tsx rename to apps/web-react/app/components/layout/ChatSidebar.tsx diff --git a/app/components/layout/Footer.module.css b/apps/web-react/app/components/layout/Footer.module.css similarity index 100% rename from app/components/layout/Footer.module.css rename to apps/web-react/app/components/layout/Footer.module.css diff --git a/app/components/layout/Footer.tsx b/apps/web-react/app/components/layout/Footer.tsx similarity index 100% rename from app/components/layout/Footer.tsx rename to apps/web-react/app/components/layout/Footer.tsx diff --git a/app/components/layout/GlobalSearch.module.css b/apps/web-react/app/components/layout/GlobalSearch.module.css similarity index 100% rename from app/components/layout/GlobalSearch.module.css rename to apps/web-react/app/components/layout/GlobalSearch.module.css diff --git a/app/components/layout/GlobalSearch.tsx b/apps/web-react/app/components/layout/GlobalSearch.tsx similarity index 100% rename from app/components/layout/GlobalSearch.tsx rename to apps/web-react/app/components/layout/GlobalSearch.tsx diff --git a/app/components/layout/LogInButtonContainer.tsx b/apps/web-react/app/components/layout/LogInButtonContainer.tsx similarity index 100% rename from app/components/layout/LogInButtonContainer.tsx rename to apps/web-react/app/components/layout/LogInButtonContainer.tsx diff --git a/app/components/layout/NotificationPopover.module.css b/apps/web-react/app/components/layout/NotificationPopover.module.css similarity index 100% rename from app/components/layout/NotificationPopover.module.css rename to apps/web-react/app/components/layout/NotificationPopover.module.css diff --git a/app/components/layout/NotificationPopover.tsx b/apps/web-react/app/components/layout/NotificationPopover.tsx similarity index 100% rename from app/components/layout/NotificationPopover.tsx rename to apps/web-react/app/components/layout/NotificationPopover.tsx diff --git a/app/components/layout/TopNavMenus.module.css b/apps/web-react/app/components/layout/TopNavMenus.module.css similarity index 100% rename from app/components/layout/TopNavMenus.module.css rename to apps/web-react/app/components/layout/TopNavMenus.module.css diff --git a/app/components/layout/TopNavMenus.tsx b/apps/web-react/app/components/layout/TopNavMenus.tsx similarity index 100% rename from app/components/layout/TopNavMenus.tsx rename to apps/web-react/app/components/layout/TopNavMenus.tsx diff --git a/app/components/layout/TopRightButtons.module.css b/apps/web-react/app/components/layout/TopRightButtons.module.css similarity index 100% rename from app/components/layout/TopRightButtons.module.css rename to apps/web-react/app/components/layout/TopRightButtons.module.css diff --git a/app/components/layout/TopRightButtons.tsx b/apps/web-react/app/components/layout/TopRightButtons.tsx similarity index 100% rename from app/components/layout/TopRightButtons.tsx rename to apps/web-react/app/components/layout/TopRightButtons.tsx diff --git a/app/components/layout/UserItem.module.css b/apps/web-react/app/components/layout/UserItem.module.css similarity index 100% rename from app/components/layout/UserItem.module.css rename to apps/web-react/app/components/layout/UserItem.module.css diff --git a/app/components/layout/WeaponSearch.tsx b/apps/web-react/app/components/layout/WeaponSearch.tsx similarity index 100% rename from app/components/layout/WeaponSearch.tsx rename to apps/web-react/app/components/layout/WeaponSearch.tsx diff --git a/app/components/layout/global-search-persisted.test.ts b/apps/web-react/app/components/layout/global-search-persisted.test.ts similarity index 100% rename from app/components/layout/global-search-persisted.test.ts rename to apps/web-react/app/components/layout/global-search-persisted.test.ts diff --git a/app/components/layout/global-search-persisted.ts b/apps/web-react/app/components/layout/global-search-persisted.ts similarity index 100% rename from app/components/layout/global-search-persisted.ts rename to apps/web-react/app/components/layout/global-search-persisted.ts diff --git a/app/components/layout/global-search-search-params.test.ts b/apps/web-react/app/components/layout/global-search-search-params.test.ts similarity index 100% rename from app/components/layout/global-search-search-params.test.ts rename to apps/web-react/app/components/layout/global-search-search-params.test.ts diff --git a/app/components/layout/global-search-search-params.ts b/apps/web-react/app/components/layout/global-search-search-params.ts similarity index 100% rename from app/components/layout/global-search-search-params.ts rename to apps/web-react/app/components/layout/global-search-search-params.ts diff --git a/app/components/layout/index.module.css b/apps/web-react/app/components/layout/index.module.css similarity index 100% rename from app/components/layout/index.module.css rename to apps/web-react/app/components/layout/index.module.css diff --git a/app/components/layout/index.tsx b/apps/web-react/app/components/layout/index.tsx similarity index 100% rename from app/components/layout/index.tsx rename to apps/web-react/app/components/layout/index.tsx diff --git a/app/components/layout/layout-search-params.ts b/apps/web-react/app/components/layout/layout-search-params.ts similarity index 100% rename from app/components/layout/layout-search-params.ts rename to apps/web-react/app/components/layout/layout-search-params.ts diff --git a/app/components/layout/nav-items.ts b/apps/web-react/app/components/layout/nav-items.ts similarity index 100% rename from app/components/layout/nav-items.ts rename to apps/web-react/app/components/layout/nav-items.ts diff --git a/app/components/match-page/MatchActionPickBanTab.module.css b/apps/web-react/app/components/match-page/MatchActionPickBanTab.module.css similarity index 100% rename from app/components/match-page/MatchActionPickBanTab.module.css rename to apps/web-react/app/components/match-page/MatchActionPickBanTab.module.css diff --git a/app/components/match-page/MatchActionPickBanTab.tsx b/apps/web-react/app/components/match-page/MatchActionPickBanTab.tsx similarity index 100% rename from app/components/match-page/MatchActionPickBanTab.tsx rename to apps/web-react/app/components/match-page/MatchActionPickBanTab.tsx diff --git a/app/components/match-page/MatchActionTab.module.css b/apps/web-react/app/components/match-page/MatchActionTab.module.css similarity index 100% rename from app/components/match-page/MatchActionTab.module.css rename to apps/web-react/app/components/match-page/MatchActionTab.module.css diff --git a/app/components/match-page/MatchActionTab.tsx b/apps/web-react/app/components/match-page/MatchActionTab.tsx similarity index 100% rename from app/components/match-page/MatchActionTab.tsx rename to apps/web-react/app/components/match-page/MatchActionTab.tsx diff --git a/app/components/match-page/MatchBanner.module.css b/apps/web-react/app/components/match-page/MatchBanner.module.css similarity index 100% rename from app/components/match-page/MatchBanner.module.css rename to apps/web-react/app/components/match-page/MatchBanner.module.css diff --git a/app/components/match-page/MatchBanner.tsx b/apps/web-react/app/components/match-page/MatchBanner.tsx similarity index 100% rename from app/components/match-page/MatchBanner.tsx rename to apps/web-react/app/components/match-page/MatchBanner.tsx diff --git a/app/components/match-page/MatchBannerBottomRow.module.css b/apps/web-react/app/components/match-page/MatchBannerBottomRow.module.css similarity index 100% rename from app/components/match-page/MatchBannerBottomRow.module.css rename to apps/web-react/app/components/match-page/MatchBannerBottomRow.module.css diff --git a/app/components/match-page/MatchBannerBottomRow.tsx b/apps/web-react/app/components/match-page/MatchBannerBottomRow.tsx similarity index 100% rename from app/components/match-page/MatchBannerBottomRow.tsx rename to apps/web-react/app/components/match-page/MatchBannerBottomRow.tsx diff --git a/app/components/match-page/MatchBannerScheduledTime.tsx b/apps/web-react/app/components/match-page/MatchBannerScheduledTime.tsx similarity index 100% rename from app/components/match-page/MatchBannerScheduledTime.tsx rename to apps/web-react/app/components/match-page/MatchBannerScheduledTime.tsx diff --git a/app/components/match-page/MatchBannerStartedAt.tsx b/apps/web-react/app/components/match-page/MatchBannerStartedAt.tsx similarity index 100% rename from app/components/match-page/MatchBannerStartedAt.tsx rename to apps/web-react/app/components/match-page/MatchBannerStartedAt.tsx diff --git a/app/components/match-page/MatchBannerTimer.tsx b/apps/web-react/app/components/match-page/MatchBannerTimer.tsx similarity index 100% rename from app/components/match-page/MatchBannerTimer.tsx rename to apps/web-react/app/components/match-page/MatchBannerTimer.tsx diff --git a/app/components/match-page/MatchBannerTopRow.module.css b/apps/web-react/app/components/match-page/MatchBannerTopRow.module.css similarity index 100% rename from app/components/match-page/MatchBannerTopRow.module.css rename to apps/web-react/app/components/match-page/MatchBannerTopRow.module.css diff --git a/app/components/match-page/MatchBannerTopRow.tsx b/apps/web-react/app/components/match-page/MatchBannerTopRow.tsx similarity index 100% rename from app/components/match-page/MatchBannerTopRow.tsx rename to apps/web-react/app/components/match-page/MatchBannerTopRow.tsx diff --git a/app/components/match-page/MatchPage.module.css b/apps/web-react/app/components/match-page/MatchPage.module.css similarity index 100% rename from app/components/match-page/MatchPage.module.css rename to apps/web-react/app/components/match-page/MatchPage.module.css diff --git a/app/components/match-page/MatchPage.tsx b/apps/web-react/app/components/match-page/MatchPage.tsx similarity index 100% rename from app/components/match-page/MatchPage.tsx rename to apps/web-react/app/components/match-page/MatchPage.tsx diff --git a/app/components/match-page/MatchPageHeader.module.css b/apps/web-react/app/components/match-page/MatchPageHeader.module.css similarity index 100% rename from app/components/match-page/MatchPageHeader.module.css rename to apps/web-react/app/components/match-page/MatchPageHeader.module.css diff --git a/app/components/match-page/MatchPageHeader.tsx b/apps/web-react/app/components/match-page/MatchPageHeader.tsx similarity index 100% rename from app/components/match-page/MatchPageHeader.tsx rename to apps/web-react/app/components/match-page/MatchPageHeader.tsx diff --git a/app/components/match-page/MatchResultTab.tsx b/apps/web-react/app/components/match-page/MatchResultTab.tsx similarity index 100% rename from app/components/match-page/MatchResultTab.tsx rename to apps/web-react/app/components/match-page/MatchResultTab.tsx diff --git a/app/components/match-page/MatchRosterTab.module.css b/apps/web-react/app/components/match-page/MatchRosterTab.module.css similarity index 100% rename from app/components/match-page/MatchRosterTab.module.css rename to apps/web-react/app/components/match-page/MatchRosterTab.module.css diff --git a/app/components/match-page/MatchRosterTab.tsx b/apps/web-react/app/components/match-page/MatchRosterTab.tsx similarity index 100% rename from app/components/match-page/MatchRosterTab.tsx rename to apps/web-react/app/components/match-page/MatchRosterTab.tsx diff --git a/app/components/match-page/MatchTabs.module.css b/apps/web-react/app/components/match-page/MatchTabs.module.css similarity index 100% rename from app/components/match-page/MatchTabs.module.css rename to apps/web-react/app/components/match-page/MatchTabs.module.css diff --git a/app/components/match-page/MatchTabs.tsx b/apps/web-react/app/components/match-page/MatchTabs.tsx similarity index 100% rename from app/components/match-page/MatchTabs.tsx rename to apps/web-react/app/components/match-page/MatchTabs.tsx diff --git a/app/components/match-page/MatchTimeline.module.css b/apps/web-react/app/components/match-page/MatchTimeline.module.css similarity index 100% rename from app/components/match-page/MatchTimeline.module.css rename to apps/web-react/app/components/match-page/MatchTimeline.module.css diff --git a/app/components/match-page/MatchTimeline.tsx b/apps/web-react/app/components/match-page/MatchTimeline.tsx similarity index 100% rename from app/components/match-page/MatchTimeline.tsx rename to apps/web-react/app/components/match-page/MatchTimeline.tsx diff --git a/app/components/match-page/SecondaryAction.module.css b/apps/web-react/app/components/match-page/SecondaryAction.module.css similarity index 100% rename from app/components/match-page/SecondaryAction.module.css rename to apps/web-react/app/components/match-page/SecondaryAction.module.css diff --git a/app/components/match-page/SecondaryAction.tsx b/apps/web-react/app/components/match-page/SecondaryAction.tsx similarity index 100% rename from app/components/match-page/SecondaryAction.tsx rename to apps/web-react/app/components/match-page/SecondaryAction.tsx diff --git a/app/components/match-page/WeaponPool.module.css b/apps/web-react/app/components/match-page/WeaponPool.module.css similarity index 100% rename from app/components/match-page/WeaponPool.module.css rename to apps/web-react/app/components/match-page/WeaponPool.module.css diff --git a/app/components/match-page/WeaponPool.tsx b/apps/web-react/app/components/match-page/WeaponPool.tsx similarity index 100% rename from app/components/match-page/WeaponPool.tsx rename to apps/web-react/app/components/match-page/WeaponPool.tsx diff --git a/app/components/match-page/WeaponReporter.module.css b/apps/web-react/app/components/match-page/WeaponReporter.module.css similarity index 100% rename from app/components/match-page/WeaponReporter.module.css rename to apps/web-react/app/components/match-page/WeaponReporter.module.css diff --git a/app/components/match-page/WeaponReporter.tsx b/apps/web-react/app/components/match-page/WeaponReporter.tsx similarity index 100% rename from app/components/match-page/WeaponReporter.tsx rename to apps/web-react/app/components/match-page/WeaponReporter.tsx diff --git a/app/components/match-page/ingested-scoreboard.test.ts b/apps/web-react/app/components/match-page/ingested-scoreboard.test.ts similarity index 100% rename from app/components/match-page/ingested-scoreboard.test.ts rename to apps/web-react/app/components/match-page/ingested-scoreboard.test.ts diff --git a/app/components/match-page/ingested-scoreboard.ts b/apps/web-react/app/components/match-page/ingested-scoreboard.ts similarity index 100% rename from app/components/match-page/ingested-scoreboard.ts rename to apps/web-react/app/components/match-page/ingested-scoreboard.ts diff --git a/app/components/match-page/match-page-schemas.ts b/apps/web-react/app/components/match-page/match-page-schemas.ts similarity index 100% rename from app/components/match-page/match-page-schemas.ts rename to apps/web-react/app/components/match-page/match-page-schemas.ts diff --git a/app/components/match-page/match-page-search-params.test.ts b/apps/web-react/app/components/match-page/match-page-search-params.test.ts similarity index 100% rename from app/components/match-page/match-page-search-params.test.ts rename to apps/web-react/app/components/match-page/match-page-search-params.test.ts diff --git a/app/components/match-page/match-page-search-params.ts b/apps/web-react/app/components/match-page/match-page-search-params.ts similarity index 100% rename from app/components/match-page/match-page-search-params.ts rename to apps/web-react/app/components/match-page/match-page-search-params.ts diff --git a/app/components/match-page/useMatchWeaponReport.ts b/apps/web-react/app/components/match-page/useMatchWeaponReport.ts similarity index 100% rename from app/components/match-page/useMatchWeaponReport.ts rename to apps/web-react/app/components/match-page/useMatchWeaponReport.ts diff --git a/app/components/match-page/utils.test.ts b/apps/web-react/app/components/match-page/utils.test.ts similarity index 100% rename from app/components/match-page/utils.test.ts rename to apps/web-react/app/components/match-page/utils.test.ts diff --git a/app/components/match-page/utils.ts b/apps/web-react/app/components/match-page/utils.ts similarity index 100% rename from app/components/match-page/utils.ts rename to apps/web-react/app/components/match-page/utils.ts diff --git a/app/components/objective-timeline-utils.test.ts b/apps/web-react/app/components/objective-timeline-utils.test.ts similarity index 100% rename from app/components/objective-timeline-utils.test.ts rename to apps/web-react/app/components/objective-timeline-utils.test.ts diff --git a/app/components/objective-timeline-utils.ts b/apps/web-react/app/components/objective-timeline-utils.ts similarity index 100% rename from app/components/objective-timeline-utils.ts rename to apps/web-react/app/components/objective-timeline-utils.ts diff --git a/app/config-helpers.server.ts b/apps/web-react/app/config-helpers.server.ts similarity index 100% rename from app/config-helpers.server.ts rename to apps/web-react/app/config-helpers.server.ts diff --git a/app/config.server.ts b/apps/web-react/app/config.server.ts similarity index 100% rename from app/config.server.ts rename to apps/web-react/app/config.server.ts diff --git a/app/config.ts b/apps/web-react/app/config.ts similarity index 100% rename from app/config.ts rename to apps/web-react/app/config.ts diff --git a/app/db/empty-values-noop-plugin.ts b/apps/web-react/app/db/empty-values-noop-plugin.ts similarity index 100% rename from app/db/empty-values-noop-plugin.ts rename to apps/web-react/app/db/empty-values-noop-plugin.ts diff --git a/app/db/json-columns.test.ts b/apps/web-react/app/db/json-columns.test.ts similarity index 100% rename from app/db/json-columns.test.ts rename to apps/web-react/app/db/json-columns.test.ts diff --git a/app/db/json-columns.ts b/apps/web-react/app/db/json-columns.ts similarity index 100% rename from app/db/json-columns.ts rename to apps/web-react/app/db/json-columns.ts diff --git a/app/db/json-selections.test.ts b/apps/web-react/app/db/json-selections.test.ts similarity index 100% rename from app/db/json-selections.test.ts rename to apps/web-react/app/db/json-selections.test.ts diff --git a/app/db/json-selections.ts b/apps/web-react/app/db/json-selections.ts similarity index 100% rename from app/db/json-selections.ts rename to apps/web-react/app/db/json-selections.ts diff --git a/app/db/node-sqlite-dialect.ts b/apps/web-react/app/db/node-sqlite-dialect.ts similarity index 100% rename from app/db/node-sqlite-dialect.ts rename to apps/web-react/app/db/node-sqlite-dialect.ts diff --git a/app/db/reset.ts b/apps/web-react/app/db/reset.ts similarity index 100% rename from app/db/reset.ts rename to apps/web-react/app/db/reset.ts diff --git a/app/db/seed/constants.ts b/apps/web-react/app/db/seed/constants.ts similarity index 100% rename from app/db/seed/constants.ts rename to apps/web-react/app/db/seed/constants.ts diff --git a/app/db/seed/core/SplatoonFaker.ts b/apps/web-react/app/db/seed/core/SplatoonFaker.ts similarity index 100% rename from app/db/seed/core/SplatoonFaker.ts rename to apps/web-react/app/db/seed/core/SplatoonFaker.ts diff --git a/app/db/seed/core/actAs.ts b/apps/web-react/app/db/seed/core/actAs.ts similarity index 100% rename from app/db/seed/core/actAs.ts rename to apps/web-react/app/db/seed/core/actAs.ts diff --git a/app/db/seed/core/backdate.ts b/apps/web-react/app/db/seed/core/backdate.ts similarity index 100% rename from app/db/seed/core/backdate.ts rename to apps/web-react/app/db/seed/core/backdate.ts diff --git a/app/db/seed/core/defineFactory.ts b/apps/web-react/app/db/seed/core/defineFactory.ts similarity index 100% rename from app/db/seed/core/defineFactory.ts rename to apps/web-react/app/db/seed/core/defineFactory.ts diff --git a/app/db/seed/core/faker.ts b/apps/web-react/app/db/seed/core/faker.ts similarity index 100% rename from app/db/seed/core/faker.ts rename to apps/web-react/app/db/seed/core/faker.ts diff --git a/app/db/seed/core/pinUserId.ts b/apps/web-react/app/db/seed/core/pinUserId.ts similarity index 100% rename from app/db/seed/core/pinUserId.ts rename to apps/web-react/app/db/seed/core/pinUserId.ts diff --git a/app/db/seed/core/reseason.ts b/apps/web-react/app/db/seed/core/reseason.ts similarity index 100% rename from app/db/seed/core/reseason.ts rename to apps/web-react/app/db/seed/core/reseason.ts diff --git a/app/db/seed/core/showcaseNames.ts b/apps/web-react/app/db/seed/core/showcaseNames.ts similarity index 100% rename from app/db/seed/core/showcaseNames.ts rename to apps/web-react/app/db/seed/core/showcaseNames.ts diff --git a/app/db/seed/data/badges.json b/apps/web-react/app/db/seed/data/badges.json similarity index 100% rename from app/db/seed/data/badges.json rename to apps/web-react/app/db/seed/data/badges.json diff --git a/app/db/seed/data/placements.json b/apps/web-react/app/db/seed/data/placements.json similarity index 100% rename from app/db/seed/data/placements.json rename to apps/web-react/app/db/seed/data/placements.json diff --git a/app/db/seed/data/trophies.json b/apps/web-react/app/db/seed/data/trophies.json similarity index 100% rename from app/db/seed/data/trophies.json rename to apps/web-react/app/db/seed/data/trophies.json diff --git a/app/db/seed/dev/badges.ts b/apps/web-react/app/db/seed/dev/badges.ts similarity index 100% rename from app/db/seed/dev/badges.ts rename to apps/web-react/app/db/seed/dev/badges.ts diff --git a/app/db/seed/dev/builds.ts b/apps/web-react/app/db/seed/dev/builds.ts similarity index 100% rename from app/db/seed/dev/builds.ts rename to apps/web-react/app/db/seed/dev/builds.ts diff --git a/app/db/seed/dev/calendar.ts b/apps/web-react/app/db/seed/dev/calendar.ts similarity index 100% rename from app/db/seed/dev/calendar.ts rename to apps/web-react/app/db/seed/dev/calendar.ts diff --git a/app/db/seed/dev/highlights.ts b/apps/web-react/app/db/seed/dev/highlights.ts similarity index 100% rename from app/db/seed/dev/highlights.ts rename to apps/web-react/app/db/seed/dev/highlights.ts diff --git a/app/db/seed/dev/misc.ts b/apps/web-react/app/db/seed/dev/misc.ts similarity index 100% rename from app/db/seed/dev/misc.ts rename to apps/web-react/app/db/seed/dev/misc.ts diff --git a/app/db/seed/dev/organizations.ts b/apps/web-react/app/db/seed/dev/organizations.ts similarity index 100% rename from app/db/seed/dev/organizations.ts rename to apps/web-react/app/db/seed/dev/organizations.ts diff --git a/app/db/seed/dev/plus.ts b/apps/web-react/app/db/seed/dev/plus.ts similarity index 100% rename from app/db/seed/dev/plus.ts rename to apps/web-react/app/db/seed/dev/plus.ts diff --git a/app/db/seed/dev/scrims-lfg.ts b/apps/web-react/app/db/seed/dev/scrims-lfg.ts similarity index 100% rename from app/db/seed/dev/scrims-lfg.ts rename to apps/web-react/app/db/seed/dev/scrims-lfg.ts diff --git a/app/db/seed/dev/sendouq.ts b/apps/web-react/app/db/seed/dev/sendouq.ts similarity index 100% rename from app/db/seed/dev/sendouq.ts rename to apps/web-react/app/db/seed/dev/sendouq.ts diff --git a/app/db/seed/dev/teams.ts b/apps/web-react/app/db/seed/dev/teams.ts similarity index 100% rename from app/db/seed/dev/teams.ts rename to apps/web-react/app/db/seed/dev/teams.ts diff --git a/app/db/seed/dev/tournaments.ts b/apps/web-react/app/db/seed/dev/tournaments.ts similarity index 100% rename from app/db/seed/dev/tournaments.ts rename to apps/web-react/app/db/seed/dev/tournaments.ts diff --git a/app/db/seed/dev/trophies.ts b/apps/web-react/app/db/seed/dev/trophies.ts similarity index 100% rename from app/db/seed/dev/trophies.ts rename to apps/web-react/app/db/seed/dev/trophies.ts diff --git a/app/db/seed/dev/users.ts b/apps/web-react/app/db/seed/dev/users.ts similarity index 100% rename from app/db/seed/dev/users.ts rename to apps/web-react/app/db/seed/dev/users.ts diff --git a/app/db/seed/dev/vods.ts b/apps/web-react/app/db/seed/dev/vods.ts similarity index 100% rename from app/db/seed/dev/vods.ts rename to apps/web-react/app/db/seed/dev/vods.ts diff --git a/app/db/seed/factories/ApiTokenFactory.ts b/apps/web-react/app/db/seed/factories/ApiTokenFactory.ts similarity index 100% rename from app/db/seed/factories/ApiTokenFactory.ts rename to apps/web-react/app/db/seed/factories/ApiTokenFactory.ts diff --git a/app/db/seed/factories/ArtFactory.ts b/apps/web-react/app/db/seed/factories/ArtFactory.ts similarity index 100% rename from app/db/seed/factories/ArtFactory.ts rename to apps/web-react/app/db/seed/factories/ArtFactory.ts diff --git a/app/db/seed/factories/AssociationFactory.ts b/apps/web-react/app/db/seed/factories/AssociationFactory.ts similarity index 100% rename from app/db/seed/factories/AssociationFactory.ts rename to apps/web-react/app/db/seed/factories/AssociationFactory.ts diff --git a/app/db/seed/factories/BadgeFactory.ts b/apps/web-react/app/db/seed/factories/BadgeFactory.ts similarity index 100% rename from app/db/seed/factories/BadgeFactory.ts rename to apps/web-react/app/db/seed/factories/BadgeFactory.ts diff --git a/app/db/seed/factories/BuildFactory.ts b/apps/web-react/app/db/seed/factories/BuildFactory.ts similarity index 100% rename from app/db/seed/factories/BuildFactory.ts rename to apps/web-react/app/db/seed/factories/BuildFactory.ts diff --git a/app/db/seed/factories/CalendarEventFactory.ts b/apps/web-react/app/db/seed/factories/CalendarEventFactory.ts similarity index 100% rename from app/db/seed/factories/CalendarEventFactory.ts rename to apps/web-react/app/db/seed/factories/CalendarEventFactory.ts diff --git a/app/db/seed/factories/CalendarEventResultFactory.ts b/apps/web-react/app/db/seed/factories/CalendarEventResultFactory.ts similarity index 100% rename from app/db/seed/factories/CalendarEventResultFactory.ts rename to apps/web-react/app/db/seed/factories/CalendarEventResultFactory.ts diff --git a/app/db/seed/factories/FriendRequestFactory.ts b/apps/web-react/app/db/seed/factories/FriendRequestFactory.ts similarity index 100% rename from app/db/seed/factories/FriendRequestFactory.ts rename to apps/web-react/app/db/seed/factories/FriendRequestFactory.ts diff --git a/app/db/seed/factories/FriendshipFactory.ts b/apps/web-react/app/db/seed/factories/FriendshipFactory.ts similarity index 100% rename from app/db/seed/factories/FriendshipFactory.ts rename to apps/web-react/app/db/seed/factories/FriendshipFactory.ts diff --git a/app/db/seed/factories/GroupMatchContinueVoteFactory.ts b/apps/web-react/app/db/seed/factories/GroupMatchContinueVoteFactory.ts similarity index 100% rename from app/db/seed/factories/GroupMatchContinueVoteFactory.ts rename to apps/web-react/app/db/seed/factories/GroupMatchContinueVoteFactory.ts diff --git a/app/db/seed/factories/ImageFactory.ts b/apps/web-react/app/db/seed/factories/ImageFactory.ts similarity index 100% rename from app/db/seed/factories/ImageFactory.ts rename to apps/web-react/app/db/seed/factories/ImageFactory.ts diff --git a/app/db/seed/factories/LFGPostFactory.ts b/apps/web-react/app/db/seed/factories/LFGPostFactory.ts similarity index 100% rename from app/db/seed/factories/LFGPostFactory.ts rename to apps/web-react/app/db/seed/factories/LFGPostFactory.ts diff --git a/app/db/seed/factories/LiveStreamFactory.ts b/apps/web-react/app/db/seed/factories/LiveStreamFactory.ts similarity index 100% rename from app/db/seed/factories/LiveStreamFactory.ts rename to apps/web-react/app/db/seed/factories/LiveStreamFactory.ts diff --git a/app/db/seed/factories/LogInLinkFactory.ts b/apps/web-react/app/db/seed/factories/LogInLinkFactory.ts similarity index 100% rename from app/db/seed/factories/LogInLinkFactory.ts rename to apps/web-react/app/db/seed/factories/LogInLinkFactory.ts diff --git a/app/db/seed/factories/NotificationFactory.ts b/apps/web-react/app/db/seed/factories/NotificationFactory.ts similarity index 100% rename from app/db/seed/factories/NotificationFactory.ts rename to apps/web-react/app/db/seed/factories/NotificationFactory.ts diff --git a/app/db/seed/factories/PlusSuggestionFactory.ts b/apps/web-react/app/db/seed/factories/PlusSuggestionFactory.ts similarity index 100% rename from app/db/seed/factories/PlusSuggestionFactory.ts rename to apps/web-react/app/db/seed/factories/PlusSuggestionFactory.ts diff --git a/app/db/seed/factories/PlusVoteFactory.ts b/apps/web-react/app/db/seed/factories/PlusVoteFactory.ts similarity index 100% rename from app/db/seed/factories/PlusVoteFactory.ts rename to apps/web-react/app/db/seed/factories/PlusVoteFactory.ts diff --git a/app/db/seed/factories/ResultHighlightFactory.ts b/apps/web-react/app/db/seed/factories/ResultHighlightFactory.ts similarity index 100% rename from app/db/seed/factories/ResultHighlightFactory.ts rename to apps/web-react/app/db/seed/factories/ResultHighlightFactory.ts diff --git a/app/db/seed/factories/SQGroupFactory.ts b/apps/web-react/app/db/seed/factories/SQGroupFactory.ts similarity index 100% rename from app/db/seed/factories/SQGroupFactory.ts rename to apps/web-react/app/db/seed/factories/SQGroupFactory.ts diff --git a/app/db/seed/factories/SQMatchFactory.ts b/apps/web-react/app/db/seed/factories/SQMatchFactory.ts similarity index 100% rename from app/db/seed/factories/SQMatchFactory.ts rename to apps/web-react/app/db/seed/factories/SQMatchFactory.ts diff --git a/app/db/seed/factories/SQReadyCheckFactory.ts b/apps/web-react/app/db/seed/factories/SQReadyCheckFactory.ts similarity index 100% rename from app/db/seed/factories/SQReadyCheckFactory.ts rename to apps/web-react/app/db/seed/factories/SQReadyCheckFactory.ts diff --git a/app/db/seed/factories/SQReportedWeaponFactory.ts b/apps/web-react/app/db/seed/factories/SQReportedWeaponFactory.ts similarity index 100% rename from app/db/seed/factories/SQReportedWeaponFactory.ts rename to apps/web-react/app/db/seed/factories/SQReportedWeaponFactory.ts diff --git a/app/db/seed/factories/SavedCalendarEventFactory.ts b/apps/web-react/app/db/seed/factories/SavedCalendarEventFactory.ts similarity index 100% rename from app/db/seed/factories/SavedCalendarEventFactory.ts rename to apps/web-react/app/db/seed/factories/SavedCalendarEventFactory.ts diff --git a/app/db/seed/factories/ScrimPostFactory.ts b/apps/web-react/app/db/seed/factories/ScrimPostFactory.ts similarity index 100% rename from app/db/seed/factories/ScrimPostFactory.ts rename to apps/web-react/app/db/seed/factories/ScrimPostFactory.ts diff --git a/app/db/seed/factories/SkillFactory.ts b/apps/web-react/app/db/seed/factories/SkillFactory.ts similarity index 100% rename from app/db/seed/factories/SkillFactory.ts rename to apps/web-react/app/db/seed/factories/SkillFactory.ts diff --git a/app/db/seed/factories/SplatoonRotationFactory.ts b/apps/web-react/app/db/seed/factories/SplatoonRotationFactory.ts similarity index 100% rename from app/db/seed/factories/SplatoonRotationFactory.ts rename to apps/web-react/app/db/seed/factories/SplatoonRotationFactory.ts diff --git a/app/db/seed/factories/TeamFactory.ts b/apps/web-react/app/db/seed/factories/TeamFactory.ts similarity index 100% rename from app/db/seed/factories/TeamFactory.ts rename to apps/web-react/app/db/seed/factories/TeamFactory.ts diff --git a/app/db/seed/factories/TournamentFactory.ts b/apps/web-react/app/db/seed/factories/TournamentFactory.ts similarity index 100% rename from app/db/seed/factories/TournamentFactory.ts rename to apps/web-react/app/db/seed/factories/TournamentFactory.ts diff --git a/app/db/seed/factories/TournamentLFGTeamFactory.ts b/apps/web-react/app/db/seed/factories/TournamentLFGTeamFactory.ts similarity index 100% rename from app/db/seed/factories/TournamentLFGTeamFactory.ts rename to apps/web-react/app/db/seed/factories/TournamentLFGTeamFactory.ts diff --git a/app/db/seed/factories/TournamentOrganizationFactory.ts b/apps/web-react/app/db/seed/factories/TournamentOrganizationFactory.ts similarity index 100% rename from app/db/seed/factories/TournamentOrganizationFactory.ts rename to apps/web-react/app/db/seed/factories/TournamentOrganizationFactory.ts diff --git a/app/db/seed/factories/TournamentReportedWeaponFactory.ts b/apps/web-react/app/db/seed/factories/TournamentReportedWeaponFactory.ts similarity index 100% rename from app/db/seed/factories/TournamentReportedWeaponFactory.ts rename to apps/web-react/app/db/seed/factories/TournamentReportedWeaponFactory.ts diff --git a/app/db/seed/factories/TournamentStreamerFactory.ts b/apps/web-react/app/db/seed/factories/TournamentStreamerFactory.ts similarity index 100% rename from app/db/seed/factories/TournamentStreamerFactory.ts rename to apps/web-react/app/db/seed/factories/TournamentStreamerFactory.ts diff --git a/app/db/seed/factories/TournamentTeamFactory.ts b/apps/web-react/app/db/seed/factories/TournamentTeamFactory.ts similarity index 100% rename from app/db/seed/factories/TournamentTeamFactory.ts rename to apps/web-react/app/db/seed/factories/TournamentTeamFactory.ts diff --git a/app/db/seed/factories/TrophyFactory.ts b/apps/web-react/app/db/seed/factories/TrophyFactory.ts similarity index 100% rename from app/db/seed/factories/TrophyFactory.ts rename to apps/web-react/app/db/seed/factories/TrophyFactory.ts diff --git a/app/db/seed/factories/UserFactory.ts b/apps/web-react/app/db/seed/factories/UserFactory.ts similarity index 100% rename from app/db/seed/factories/UserFactory.ts rename to apps/web-react/app/db/seed/factories/UserFactory.ts diff --git a/app/db/seed/factories/UserReportFactory.ts b/apps/web-react/app/db/seed/factories/UserReportFactory.ts similarity index 100% rename from app/db/seed/factories/UserReportFactory.ts rename to apps/web-react/app/db/seed/factories/UserReportFactory.ts diff --git a/app/db/seed/factories/VodFactory.ts b/apps/web-react/app/db/seed/factories/VodFactory.ts similarity index 100% rename from app/db/seed/factories/VodFactory.ts rename to apps/web-react/app/db/seed/factories/VodFactory.ts diff --git a/app/db/seed/factories/XRankPlacementFactory.ts b/apps/web-react/app/db/seed/factories/XRankPlacementFactory.ts similarity index 100% rename from app/db/seed/factories/XRankPlacementFactory.ts rename to apps/web-react/app/db/seed/factories/XRankPlacementFactory.ts diff --git a/app/db/seed/img/alliance-rogue.png b/apps/web-react/app/db/seed/img/alliance-rogue.png similarity index 100% rename from app/db/seed/img/alliance-rogue.png rename to apps/web-react/app/db/seed/img/alliance-rogue.png diff --git a/app/db/seed/img/default.png b/apps/web-react/app/db/seed/img/default.png similarity index 100% rename from app/db/seed/img/default.png rename to apps/web-react/app/db/seed/img/default.png diff --git a/app/db/seed/img/in-the-zone.png b/apps/web-react/app/db/seed/img/in-the-zone.png similarity index 100% rename from app/db/seed/img/in-the-zone.png rename to apps/web-react/app/db/seed/img/in-the-zone.png diff --git a/app/db/seed/img/luti.png b/apps/web-react/app/db/seed/img/luti.png similarity index 100% rename from app/db/seed/img/luti.png rename to apps/web-react/app/db/seed/img/luti.png diff --git a/app/db/seed/img/paddling-pool.png b/apps/web-react/app/db/seed/img/paddling-pool.png similarity index 100% rename from app/db/seed/img/paddling-pool.png rename to apps/web-react/app/db/seed/img/paddling-pool.png diff --git a/app/db/seed/img/picnic.png b/apps/web-react/app/db/seed/img/picnic.png similarity index 100% rename from app/db/seed/img/picnic.png rename to apps/web-react/app/db/seed/img/picnic.png diff --git a/app/db/seed/img/swim-or-sink.png b/apps/web-react/app/db/seed/img/swim-or-sink.png similarity index 100% rename from app/db/seed/img/swim-or-sink.png rename to apps/web-react/app/db/seed/img/swim-or-sink.png diff --git a/app/db/seed/img/the-depths.png b/apps/web-react/app/db/seed/img/the-depths.png similarity index 100% rename from app/db/seed/img/the-depths.png rename to apps/web-react/app/db/seed/img/the-depths.png diff --git a/app/db/seed/index.ts b/apps/web-react/app/db/seed/index.ts similarity index 100% rename from app/db/seed/index.ts rename to apps/web-react/app/db/seed/index.ts diff --git a/app/db/sql.ts b/apps/web-react/app/db/sql.ts similarity index 100% rename from app/db/sql.ts rename to apps/web-react/app/db/sql.ts diff --git a/app/db/tables-json.ts b/apps/web-react/app/db/tables-json.ts similarity index 100% rename from app/db/tables-json.ts rename to apps/web-react/app/db/tables-json.ts diff --git a/app/db/tables.ts b/apps/web-react/app/db/tables.ts similarity index 100% rename from app/db/tables.ts rename to apps/web-react/app/db/tables.ts diff --git a/app/db/wipe.ts b/apps/web-react/app/db/wipe.ts similarity index 100% rename from app/db/wipe.ts rename to apps/web-react/app/db/wipe.ts diff --git a/app/db/write-tracker.ts b/apps/web-react/app/db/write-tracker.ts similarity index 100% rename from app/db/write-tracker.ts rename to apps/web-react/app/db/write-tracker.ts diff --git a/app/entry.client.tsx b/apps/web-react/app/entry.client.tsx similarity index 100% rename from app/entry.client.tsx rename to apps/web-react/app/entry.client.tsx diff --git a/app/entry.server.tsx b/apps/web-react/app/entry.server.tsx similarity index 100% rename from app/entry.server.tsx rename to apps/web-react/app/entry.server.tsx diff --git a/app/features/admin/AdminRepository.server.test.ts b/apps/web-react/app/features/admin/AdminRepository.server.test.ts similarity index 100% rename from app/features/admin/AdminRepository.server.test.ts rename to apps/web-react/app/features/admin/AdminRepository.server.test.ts diff --git a/app/features/admin/AdminRepository.server.ts b/apps/web-react/app/features/admin/AdminRepository.server.ts similarity index 100% rename from app/features/admin/AdminRepository.server.ts rename to apps/web-react/app/features/admin/AdminRepository.server.ts diff --git a/app/features/admin/ExternalStreamRepository.server.ts b/apps/web-react/app/features/admin/ExternalStreamRepository.server.ts similarity index 100% rename from app/features/admin/ExternalStreamRepository.server.ts rename to apps/web-react/app/features/admin/ExternalStreamRepository.server.ts diff --git a/app/features/admin/actions/admin.server.ts b/apps/web-react/app/features/admin/actions/admin.server.ts similarity index 100% rename from app/features/admin/actions/admin.server.ts rename to apps/web-react/app/features/admin/actions/admin.server.ts diff --git a/app/features/admin/actions/admin.streams.server.ts b/apps/web-react/app/features/admin/actions/admin.streams.server.ts similarity index 100% rename from app/features/admin/actions/admin.streams.server.ts rename to apps/web-react/app/features/admin/actions/admin.streams.server.ts diff --git a/app/features/admin/admin-constants.ts b/apps/web-react/app/features/admin/admin-constants.ts similarity index 100% rename from app/features/admin/admin-constants.ts rename to apps/web-react/app/features/admin/admin-constants.ts diff --git a/app/features/admin/admin-schemas.ts b/apps/web-react/app/features/admin/admin-schemas.ts similarity index 100% rename from app/features/admin/admin-schemas.ts rename to apps/web-react/app/features/admin/admin-schemas.ts diff --git a/app/features/admin/admin-search-params.test.ts b/apps/web-react/app/features/admin/admin-search-params.test.ts similarity index 100% rename from app/features/admin/admin-search-params.test.ts rename to apps/web-react/app/features/admin/admin-search-params.test.ts diff --git a/app/features/admin/admin-search-params.ts b/apps/web-react/app/features/admin/admin-search-params.ts similarity index 100% rename from app/features/admin/admin-search-params.ts rename to apps/web-react/app/features/admin/admin-search-params.ts diff --git a/app/features/admin/core/dev-controls.ts b/apps/web-react/app/features/admin/core/dev-controls.ts similarity index 100% rename from app/features/admin/core/dev-controls.ts rename to apps/web-react/app/features/admin/core/dev-controls.ts diff --git a/app/features/admin/core/discord-webhook.server.ts b/apps/web-react/app/features/admin/core/discord-webhook.server.ts similarity index 100% rename from app/features/admin/core/discord-webhook.server.ts rename to apps/web-react/app/features/admin/core/discord-webhook.server.ts diff --git a/app/features/admin/core/plus-tier.server.ts b/apps/web-react/app/features/admin/core/plus-tier.server.ts similarity index 100% rename from app/features/admin/core/plus-tier.server.ts rename to apps/web-react/app/features/admin/core/plus-tier.server.ts diff --git a/app/features/admin/loaders/admin.server.ts b/apps/web-react/app/features/admin/loaders/admin.server.ts similarity index 100% rename from app/features/admin/loaders/admin.server.ts rename to apps/web-react/app/features/admin/loaders/admin.server.ts diff --git a/app/features/admin/loaders/admin.streams.server.ts b/apps/web-react/app/features/admin/loaders/admin.streams.server.ts similarity index 100% rename from app/features/admin/loaders/admin.streams.server.ts rename to apps/web-react/app/features/admin/loaders/admin.streams.server.ts diff --git a/app/features/admin/routes/admin.streams.module.css b/apps/web-react/app/features/admin/routes/admin.streams.module.css similarity index 100% rename from app/features/admin/routes/admin.streams.module.css rename to apps/web-react/app/features/admin/routes/admin.streams.module.css diff --git a/app/features/admin/routes/admin.streams.tsx b/apps/web-react/app/features/admin/routes/admin.streams.tsx similarity index 100% rename from app/features/admin/routes/admin.streams.tsx rename to apps/web-react/app/features/admin/routes/admin.streams.tsx diff --git a/app/features/admin/routes/admin.test.ts b/apps/web-react/app/features/admin/routes/admin.test.ts similarity index 100% rename from app/features/admin/routes/admin.test.ts rename to apps/web-react/app/features/admin/routes/admin.test.ts diff --git a/app/features/admin/routes/admin.tsx b/apps/web-react/app/features/admin/routes/admin.tsx similarity index 100% rename from app/features/admin/routes/admin.tsx rename to apps/web-react/app/features/admin/routes/admin.tsx diff --git a/app/features/admin/routes/generate-images.tsx b/apps/web-react/app/features/admin/routes/generate-images.tsx similarity index 100% rename from app/features/admin/routes/generate-images.tsx rename to apps/web-react/app/features/admin/routes/generate-images.tsx diff --git a/app/features/api-private/core/refresh-caches.server.ts b/apps/web-react/app/features/api-private/core/refresh-caches.server.ts similarity index 100% rename from app/features/api-private/core/refresh-caches.server.ts rename to apps/web-react/app/features/api-private/core/refresh-caches.server.ts diff --git a/app/features/api-private/routes/end-season.ts b/apps/web-react/app/features/api-private/routes/end-season.ts similarity index 100% rename from app/features/api-private/routes/end-season.ts rename to apps/web-react/app/features/api-private/routes/end-season.ts diff --git a/app/features/api-private/routes/patrons.ts b/apps/web-react/app/features/api-private/routes/patrons.ts similarity index 100% rename from app/features/api-private/routes/patrons.ts rename to apps/web-react/app/features/api-private/routes/patrons.ts diff --git a/app/features/api-private/routes/refresh-caches.ts b/apps/web-react/app/features/api-private/routes/refresh-caches.ts similarity index 100% rename from app/features/api-private/routes/refresh-caches.ts rename to apps/web-react/app/features/api-private/routes/refresh-caches.ts diff --git a/app/features/api-private/routes/run-routine.ts b/apps/web-react/app/features/api-private/routes/run-routine.ts similarity index 100% rename from app/features/api-private/routes/run-routine.ts rename to apps/web-react/app/features/api-private/routes/run-routine.ts diff --git a/app/features/api-private/routes/seed.ts b/apps/web-react/app/features/api-private/routes/seed.ts similarity index 100% rename from app/features/api-private/routes/seed.ts rename to apps/web-react/app/features/api-private/routes/seed.ts diff --git a/app/features/api-private/routes/users.ts b/apps/web-react/app/features/api-private/routes/users.ts similarity index 100% rename from app/features/api-private/routes/users.ts rename to apps/web-react/app/features/api-private/routes/users.ts diff --git a/app/features/api-public/api-action-wrapper.server.ts b/apps/web-react/app/features/api-public/api-action-wrapper.server.ts similarity index 100% rename from app/features/api-public/api-action-wrapper.server.ts rename to apps/web-react/app/features/api-public/api-action-wrapper.server.ts diff --git a/app/features/api-public/api-auth-middleware.server.ts b/apps/web-react/app/features/api-public/api-auth-middleware.server.ts similarity index 100% rename from app/features/api-public/api-auth-middleware.server.ts rename to apps/web-react/app/features/api-public/api-auth-middleware.server.ts diff --git a/app/features/api-public/api-cors-middleware.server.ts b/apps/web-react/app/features/api-public/api-cors-middleware.server.ts similarity index 100% rename from app/features/api-public/api-cors-middleware.server.ts rename to apps/web-react/app/features/api-public/api-cors-middleware.server.ts diff --git a/app/features/api-public/api-public-utils.server.ts b/apps/web-react/app/features/api-public/api-public-utils.server.ts similarity index 100% rename from app/features/api-public/api-public-utils.server.ts rename to apps/web-react/app/features/api-public/api-public-utils.server.ts diff --git a/app/features/api-public/routes/api.layout.tsx b/apps/web-react/app/features/api-public/routes/api.layout.tsx similarity index 100% rename from app/features/api-public/routes/api.layout.tsx rename to apps/web-react/app/features/api-public/routes/api.layout.tsx diff --git a/app/features/api-public/routes/calendar.$year.$week.test.ts b/apps/web-react/app/features/api-public/routes/calendar.$year.$week.test.ts similarity index 100% rename from app/features/api-public/routes/calendar.$year.$week.test.ts rename to apps/web-react/app/features/api-public/routes/calendar.$year.$week.test.ts diff --git a/app/features/api-public/routes/calendar.$year.$week.ts b/apps/web-react/app/features/api-public/routes/calendar.$year.$week.ts similarity index 100% rename from app/features/api-public/routes/calendar.$year.$week.ts rename to apps/web-react/app/features/api-public/routes/calendar.$year.$week.ts diff --git a/app/features/api-public/routes/org.$id.ts b/apps/web-react/app/features/api-public/routes/org.$id.ts similarity index 100% rename from app/features/api-public/routes/org.$id.ts rename to apps/web-react/app/features/api-public/routes/org.$id.ts diff --git a/app/features/api-public/routes/sendouq.active-match.$userId.ts b/apps/web-react/app/features/api-public/routes/sendouq.active-match.$userId.ts similarity index 100% rename from app/features/api-public/routes/sendouq.active-match.$userId.ts rename to apps/web-react/app/features/api-public/routes/sendouq.active-match.$userId.ts diff --git a/app/features/api-public/routes/sendouq.match.$matchId.ts b/apps/web-react/app/features/api-public/routes/sendouq.match.$matchId.ts similarity index 100% rename from app/features/api-public/routes/sendouq.match.$matchId.ts rename to apps/web-react/app/features/api-public/routes/sendouq.match.$matchId.ts diff --git a/app/features/api-public/routes/team.$id.ts b/apps/web-react/app/features/api-public/routes/team.$id.ts similarity index 100% rename from app/features/api-public/routes/team.$id.ts rename to apps/web-react/app/features/api-public/routes/team.$id.ts diff --git a/app/features/api-public/routes/tournament-match.$id.ts b/apps/web-react/app/features/api-public/routes/tournament-match.$id.ts similarity index 100% rename from app/features/api-public/routes/tournament-match.$id.ts rename to apps/web-react/app/features/api-public/routes/tournament-match.$id.ts diff --git a/app/features/api-public/routes/tournament.$id.brackets.$bidx.standings.ts b/apps/web-react/app/features/api-public/routes/tournament.$id.brackets.$bidx.standings.ts similarity index 100% rename from app/features/api-public/routes/tournament.$id.brackets.$bidx.standings.ts rename to apps/web-react/app/features/api-public/routes/tournament.$id.brackets.$bidx.standings.ts diff --git a/app/features/api-public/routes/tournament.$id.brackets.$bidx.ts b/apps/web-react/app/features/api-public/routes/tournament.$id.brackets.$bidx.ts similarity index 100% rename from app/features/api-public/routes/tournament.$id.brackets.$bidx.ts rename to apps/web-react/app/features/api-public/routes/tournament.$id.brackets.$bidx.ts diff --git a/app/features/api-public/routes/tournament.$id.casted.ts b/apps/web-react/app/features/api-public/routes/tournament.$id.casted.ts similarity index 100% rename from app/features/api-public/routes/tournament.$id.casted.ts rename to apps/web-react/app/features/api-public/routes/tournament.$id.casted.ts diff --git a/app/features/api-public/routes/tournament.$id.players.ts b/apps/web-react/app/features/api-public/routes/tournament.$id.players.ts similarity index 100% rename from app/features/api-public/routes/tournament.$id.players.ts rename to apps/web-react/app/features/api-public/routes/tournament.$id.players.ts diff --git a/app/features/api-public/routes/tournament.$id.seeds.ts b/apps/web-react/app/features/api-public/routes/tournament.$id.seeds.ts similarity index 100% rename from app/features/api-public/routes/tournament.$id.seeds.ts rename to apps/web-react/app/features/api-public/routes/tournament.$id.seeds.ts diff --git a/app/features/api-public/routes/tournament.$id.starting-brackets.ts b/apps/web-react/app/features/api-public/routes/tournament.$id.starting-brackets.ts similarity index 100% rename from app/features/api-public/routes/tournament.$id.starting-brackets.ts rename to apps/web-react/app/features/api-public/routes/tournament.$id.starting-brackets.ts diff --git a/app/features/api-public/routes/tournament.$id.streams.ts b/apps/web-react/app/features/api-public/routes/tournament.$id.streams.ts similarity index 100% rename from app/features/api-public/routes/tournament.$id.streams.ts rename to apps/web-react/app/features/api-public/routes/tournament.$id.streams.ts diff --git a/app/features/api-public/routes/tournament.$id.teams.$teamId.add-member.ts b/apps/web-react/app/features/api-public/routes/tournament.$id.teams.$teamId.add-member.ts similarity index 100% rename from app/features/api-public/routes/tournament.$id.teams.$teamId.add-member.ts rename to apps/web-react/app/features/api-public/routes/tournament.$id.teams.$teamId.add-member.ts diff --git a/app/features/api-public/routes/tournament.$id.teams.$teamId.remove-member.ts b/apps/web-react/app/features/api-public/routes/tournament.$id.teams.$teamId.remove-member.ts similarity index 100% rename from app/features/api-public/routes/tournament.$id.teams.$teamId.remove-member.ts rename to apps/web-react/app/features/api-public/routes/tournament.$id.teams.$teamId.remove-member.ts diff --git a/app/features/api-public/routes/tournament.$id.teams.$teamId.update-member-ign.ts b/apps/web-react/app/features/api-public/routes/tournament.$id.teams.$teamId.update-member-ign.ts similarity index 100% rename from app/features/api-public/routes/tournament.$id.teams.$teamId.update-member-ign.ts rename to apps/web-react/app/features/api-public/routes/tournament.$id.teams.$teamId.update-member-ign.ts diff --git a/app/features/api-public/routes/tournament.$id.teams.test.ts b/apps/web-react/app/features/api-public/routes/tournament.$id.teams.test.ts similarity index 100% rename from app/features/api-public/routes/tournament.$id.teams.test.ts rename to apps/web-react/app/features/api-public/routes/tournament.$id.teams.test.ts diff --git a/app/features/api-public/routes/tournament.$id.teams.ts b/apps/web-react/app/features/api-public/routes/tournament.$id.teams.ts similarity index 100% rename from app/features/api-public/routes/tournament.$id.teams.ts rename to apps/web-react/app/features/api-public/routes/tournament.$id.teams.ts diff --git a/app/features/api-public/routes/tournament.$id.teams.upsert.test.ts b/apps/web-react/app/features/api-public/routes/tournament.$id.teams.upsert.test.ts similarity index 100% rename from app/features/api-public/routes/tournament.$id.teams.upsert.test.ts rename to apps/web-react/app/features/api-public/routes/tournament.$id.teams.upsert.test.ts diff --git a/app/features/api-public/routes/tournament.$id.teams.upsert.ts b/apps/web-react/app/features/api-public/routes/tournament.$id.teams.upsert.ts similarity index 100% rename from app/features/api-public/routes/tournament.$id.teams.upsert.ts rename to apps/web-react/app/features/api-public/routes/tournament.$id.teams.upsert.ts diff --git a/app/features/api-public/routes/tournament.$id.ts b/apps/web-react/app/features/api-public/routes/tournament.$id.ts similarity index 100% rename from app/features/api-public/routes/tournament.$id.ts rename to apps/web-react/app/features/api-public/routes/tournament.$id.ts diff --git a/app/features/api-public/routes/user.$identifier.ids.ts b/apps/web-react/app/features/api-public/routes/user.$identifier.ids.ts similarity index 100% rename from app/features/api-public/routes/user.$identifier.ids.ts rename to apps/web-react/app/features/api-public/routes/user.$identifier.ids.ts diff --git a/app/features/api-public/routes/user.$identifier.ts b/apps/web-react/app/features/api-public/routes/user.$identifier.ts similarity index 100% rename from app/features/api-public/routes/user.$identifier.ts rename to apps/web-react/app/features/api-public/routes/user.$identifier.ts diff --git a/app/features/api-public/routes/user.$userId.active-match.ts b/apps/web-react/app/features/api-public/routes/user.$userId.active-match.ts similarity index 100% rename from app/features/api-public/routes/user.$userId.active-match.ts rename to apps/web-react/app/features/api-public/routes/user.$userId.active-match.ts diff --git a/app/features/api-public/schema.ts b/apps/web-react/app/features/api-public/schema.ts similarity index 100% rename from app/features/api-public/schema.ts rename to apps/web-react/app/features/api-public/schema.ts diff --git a/app/features/api/ApiRepository.server.test.ts b/apps/web-react/app/features/api/ApiRepository.server.test.ts similarity index 100% rename from app/features/api/ApiRepository.server.test.ts rename to apps/web-react/app/features/api/ApiRepository.server.test.ts diff --git a/app/features/api/ApiRepository.server.ts b/apps/web-react/app/features/api/ApiRepository.server.ts similarity index 100% rename from app/features/api/ApiRepository.server.ts rename to apps/web-react/app/features/api/ApiRepository.server.ts diff --git a/app/features/api/actions/api.server.ts b/apps/web-react/app/features/api/actions/api.server.ts similarity index 100% rename from app/features/api/actions/api.server.ts rename to apps/web-react/app/features/api/actions/api.server.ts diff --git a/app/features/api/api-schemas.ts b/apps/web-react/app/features/api/api-schemas.ts similarity index 100% rename from app/features/api/api-schemas.ts rename to apps/web-react/app/features/api/api-schemas.ts diff --git a/app/features/api/api-types.ts b/apps/web-react/app/features/api/api-types.ts similarity index 100% rename from app/features/api/api-types.ts rename to apps/web-react/app/features/api/api-types.ts diff --git a/app/features/api/core/perms.test.ts b/apps/web-react/app/features/api/core/perms.test.ts similarity index 100% rename from app/features/api/core/perms.test.ts rename to apps/web-react/app/features/api/core/perms.test.ts diff --git a/app/features/api/core/perms.ts b/apps/web-react/app/features/api/core/perms.ts similarity index 100% rename from app/features/api/core/perms.ts rename to apps/web-react/app/features/api/core/perms.ts diff --git a/app/features/api/loaders/api.server.ts b/apps/web-react/app/features/api/loaders/api.server.ts similarity index 100% rename from app/features/api/loaders/api.server.ts rename to apps/web-react/app/features/api/loaders/api.server.ts diff --git a/app/features/api/routes/api.tsx b/apps/web-react/app/features/api/routes/api.tsx similarity index 100% rename from app/features/api/routes/api.tsx rename to apps/web-react/app/features/api/routes/api.tsx diff --git a/app/features/art/ArtRepository.server.test.ts b/apps/web-react/app/features/art/ArtRepository.server.test.ts similarity index 100% rename from app/features/art/ArtRepository.server.test.ts rename to apps/web-react/app/features/art/ArtRepository.server.test.ts diff --git a/app/features/art/ArtRepository.server.ts b/apps/web-react/app/features/art/ArtRepository.server.ts similarity index 100% rename from app/features/art/ArtRepository.server.ts rename to apps/web-react/app/features/art/ArtRepository.server.ts diff --git a/app/features/art/actions/art.new.server.ts b/apps/web-react/app/features/art/actions/art.new.server.ts similarity index 100% rename from app/features/art/actions/art.new.server.ts rename to apps/web-react/app/features/art/actions/art.new.server.ts diff --git a/app/features/art/art-constants.ts b/apps/web-react/app/features/art/art-constants.ts similarity index 100% rename from app/features/art/art-constants.ts rename to apps/web-react/app/features/art/art-constants.ts diff --git a/app/features/art/art-image.server.ts b/apps/web-react/app/features/art/art-image.server.ts similarity index 100% rename from app/features/art/art-image.server.ts rename to apps/web-react/app/features/art/art-image.server.ts diff --git a/app/features/art/art-image.ts b/apps/web-react/app/features/art/art-image.ts similarity index 100% rename from app/features/art/art-image.ts rename to apps/web-react/app/features/art/art-image.ts diff --git a/app/features/art/art-schemas.server.ts b/apps/web-react/app/features/art/art-schemas.server.ts similarity index 100% rename from app/features/art/art-schemas.server.ts rename to apps/web-react/app/features/art/art-schemas.server.ts diff --git a/app/features/art/art-schemas.ts b/apps/web-react/app/features/art/art-schemas.ts similarity index 100% rename from app/features/art/art-schemas.ts rename to apps/web-react/app/features/art/art-schemas.ts diff --git a/app/features/art/art-search-params.test.ts b/apps/web-react/app/features/art/art-search-params.test.ts similarity index 100% rename from app/features/art/art-search-params.test.ts rename to apps/web-react/app/features/art/art-search-params.test.ts diff --git a/app/features/art/art-search-params.ts b/apps/web-react/app/features/art/art-search-params.ts similarity index 100% rename from app/features/art/art-search-params.ts rename to apps/web-react/app/features/art/art-search-params.ts diff --git a/app/features/art/art-types.ts b/apps/web-react/app/features/art/art-types.ts similarity index 100% rename from app/features/art/art-types.ts rename to apps/web-react/app/features/art/art-types.ts diff --git a/app/features/art/art-urls.test.ts b/apps/web-react/app/features/art/art-urls.test.ts similarity index 100% rename from app/features/art/art-urls.test.ts rename to apps/web-react/app/features/art/art-urls.test.ts diff --git a/app/features/art/art-urls.ts b/apps/web-react/app/features/art/art-urls.ts similarity index 100% rename from app/features/art/art-urls.ts rename to apps/web-react/app/features/art/art-urls.ts diff --git a/app/features/art/art-utils.ts b/apps/web-react/app/features/art/art-utils.ts similarity index 100% rename from app/features/art/art-utils.ts rename to apps/web-react/app/features/art/art-utils.ts diff --git a/app/features/art/components/ArtGrid.module.css b/apps/web-react/app/features/art/components/ArtGrid.module.css similarity index 100% rename from app/features/art/components/ArtGrid.module.css rename to apps/web-react/app/features/art/components/ArtGrid.module.css diff --git a/app/features/art/components/ArtGrid.tsx b/apps/web-react/app/features/art/components/ArtGrid.tsx similarity index 100% rename from app/features/art/components/ArtGrid.tsx rename to apps/web-react/app/features/art/components/ArtGrid.tsx diff --git a/app/features/art/components/ArtImageFormField.module.css b/apps/web-react/app/features/art/components/ArtImageFormField.module.css similarity index 100% rename from app/features/art/components/ArtImageFormField.module.css rename to apps/web-react/app/features/art/components/ArtImageFormField.module.css diff --git a/app/features/art/components/ArtImageFormField.tsx b/apps/web-react/app/features/art/components/ArtImageFormField.tsx similarity index 100% rename from app/features/art/components/ArtImageFormField.tsx rename to apps/web-react/app/features/art/components/ArtImageFormField.tsx diff --git a/app/features/art/components/ArtTagsFormField.module.css b/apps/web-react/app/features/art/components/ArtTagsFormField.module.css similarity index 100% rename from app/features/art/components/ArtTagsFormField.module.css rename to apps/web-react/app/features/art/components/ArtTagsFormField.module.css diff --git a/app/features/art/components/ArtTagsFormField.tsx b/apps/web-react/app/features/art/components/ArtTagsFormField.tsx similarity index 100% rename from app/features/art/components/ArtTagsFormField.tsx rename to apps/web-react/app/features/art/components/ArtTagsFormField.tsx diff --git a/app/features/art/components/TagSelect.tsx b/apps/web-react/app/features/art/components/TagSelect.tsx similarity index 100% rename from app/features/art/components/TagSelect.tsx rename to apps/web-react/app/features/art/components/TagSelect.tsx diff --git a/app/features/art/loaders/art.new.server.ts b/apps/web-react/app/features/art/loaders/art.new.server.ts similarity index 100% rename from app/features/art/loaders/art.new.server.ts rename to apps/web-react/app/features/art/loaders/art.new.server.ts diff --git a/app/features/art/loaders/art.server.ts b/apps/web-react/app/features/art/loaders/art.server.ts similarity index 100% rename from app/features/art/loaders/art.server.ts rename to apps/web-react/app/features/art/loaders/art.server.ts diff --git a/app/features/art/routes/art.new.tsx b/apps/web-react/app/features/art/routes/art.new.tsx similarity index 100% rename from app/features/art/routes/art.new.tsx rename to apps/web-react/app/features/art/routes/art.new.tsx diff --git a/app/features/art/routes/art.tsx b/apps/web-react/app/features/art/routes/art.tsx similarity index 100% rename from app/features/art/routes/art.tsx rename to apps/web-react/app/features/art/routes/art.tsx diff --git a/app/features/articles/articles-constants.ts b/apps/web-react/app/features/articles/articles-constants.ts similarity index 100% rename from app/features/articles/articles-constants.ts rename to apps/web-react/app/features/articles/articles-constants.ts diff --git a/app/features/articles/articles-schemas.server.ts b/apps/web-react/app/features/articles/articles-schemas.server.ts similarity index 100% rename from app/features/articles/articles-schemas.server.ts rename to apps/web-react/app/features/articles/articles-schemas.server.ts diff --git a/app/features/articles/core/bySlug.server.ts b/apps/web-react/app/features/articles/core/bySlug.server.ts similarity index 100% rename from app/features/articles/core/bySlug.server.ts rename to apps/web-react/app/features/articles/core/bySlug.server.ts diff --git a/app/features/articles/core/list.server.ts b/apps/web-react/app/features/articles/core/list.server.ts similarity index 100% rename from app/features/articles/core/list.server.ts rename to apps/web-react/app/features/articles/core/list.server.ts diff --git a/app/features/articles/loaders/a.$slug.server.ts b/apps/web-react/app/features/articles/loaders/a.$slug.server.ts similarity index 100% rename from app/features/articles/loaders/a.$slug.server.ts rename to apps/web-react/app/features/articles/loaders/a.$slug.server.ts diff --git a/app/features/articles/loaders/a.server.ts b/apps/web-react/app/features/articles/loaders/a.server.ts similarity index 100% rename from app/features/articles/loaders/a.server.ts rename to apps/web-react/app/features/articles/loaders/a.server.ts diff --git a/app/features/articles/routes/a.$slug.tsx b/apps/web-react/app/features/articles/routes/a.$slug.tsx similarity index 100% rename from app/features/articles/routes/a.$slug.tsx rename to apps/web-react/app/features/articles/routes/a.$slug.tsx diff --git a/app/features/articles/routes/a.module.css b/apps/web-react/app/features/articles/routes/a.module.css similarity index 100% rename from app/features/articles/routes/a.module.css rename to apps/web-react/app/features/articles/routes/a.module.css diff --git a/app/features/articles/routes/a.tsx b/apps/web-react/app/features/articles/routes/a.tsx similarity index 100% rename from app/features/articles/routes/a.tsx rename to apps/web-react/app/features/articles/routes/a.tsx diff --git a/app/features/associations/AssociationRepository.server.ts b/apps/web-react/app/features/associations/AssociationRepository.server.ts similarity index 100% rename from app/features/associations/AssociationRepository.server.ts rename to apps/web-react/app/features/associations/AssociationRepository.server.ts diff --git a/app/features/associations/actions/associations.new.server.ts b/apps/web-react/app/features/associations/actions/associations.new.server.ts similarity index 100% rename from app/features/associations/actions/associations.new.server.ts rename to apps/web-react/app/features/associations/actions/associations.new.server.ts diff --git a/app/features/associations/actions/associations.server.ts b/apps/web-react/app/features/associations/actions/associations.server.ts similarity index 100% rename from app/features/associations/actions/associations.server.ts rename to apps/web-react/app/features/associations/actions/associations.server.ts diff --git a/app/features/associations/associations-constants.ts b/apps/web-react/app/features/associations/associations-constants.ts similarity index 100% rename from app/features/associations/associations-constants.ts rename to apps/web-react/app/features/associations/associations-constants.ts diff --git a/app/features/associations/associations-schemas.ts b/apps/web-react/app/features/associations/associations-schemas.ts similarity index 100% rename from app/features/associations/associations-schemas.ts rename to apps/web-react/app/features/associations/associations-schemas.ts diff --git a/app/features/associations/associations-search-params.test.ts b/apps/web-react/app/features/associations/associations-search-params.test.ts similarity index 100% rename from app/features/associations/associations-search-params.test.ts rename to apps/web-react/app/features/associations/associations-search-params.test.ts diff --git a/app/features/associations/associations-search-params.ts b/apps/web-react/app/features/associations/associations-search-params.ts similarity index 100% rename from app/features/associations/associations-search-params.ts rename to apps/web-react/app/features/associations/associations-search-params.ts diff --git a/app/features/associations/associations-types.ts b/apps/web-react/app/features/associations/associations-types.ts similarity index 100% rename from app/features/associations/associations-types.ts rename to apps/web-react/app/features/associations/associations-types.ts diff --git a/app/features/associations/associations-urls.ts b/apps/web-react/app/features/associations/associations-urls.ts similarity index 100% rename from app/features/associations/associations-urls.ts rename to apps/web-react/app/features/associations/associations-urls.ts diff --git a/app/features/associations/core/Association.test.ts b/apps/web-react/app/features/associations/core/Association.test.ts similarity index 100% rename from app/features/associations/core/Association.test.ts rename to apps/web-react/app/features/associations/core/Association.test.ts diff --git a/app/features/associations/core/Association.ts b/apps/web-react/app/features/associations/core/Association.ts similarity index 100% rename from app/features/associations/core/Association.ts rename to apps/web-react/app/features/associations/core/Association.ts diff --git a/app/features/associations/loaders/associations.server.ts b/apps/web-react/app/features/associations/loaders/associations.server.ts similarity index 100% rename from app/features/associations/loaders/associations.server.ts rename to apps/web-react/app/features/associations/loaders/associations.server.ts diff --git a/app/features/associations/routes/associations.new.tsx b/apps/web-react/app/features/associations/routes/associations.new.tsx similarity index 100% rename from app/features/associations/routes/associations.new.tsx rename to apps/web-react/app/features/associations/routes/associations.new.tsx diff --git a/app/features/associations/routes/associations.tsx b/apps/web-react/app/features/associations/routes/associations.tsx similarity index 100% rename from app/features/associations/routes/associations.tsx rename to apps/web-react/app/features/associations/routes/associations.tsx diff --git a/app/features/auth/LogInLinkRepository.server.test.ts b/apps/web-react/app/features/auth/LogInLinkRepository.server.test.ts similarity index 100% rename from app/features/auth/LogInLinkRepository.server.test.ts rename to apps/web-react/app/features/auth/LogInLinkRepository.server.test.ts diff --git a/app/features/auth/LogInLinkRepository.server.ts b/apps/web-react/app/features/auth/LogInLinkRepository.server.ts similarity index 100% rename from app/features/auth/LogInLinkRepository.server.ts rename to apps/web-react/app/features/auth/LogInLinkRepository.server.ts diff --git a/app/features/auth/core/DiscordStrategy.server.ts b/apps/web-react/app/features/auth/core/DiscordStrategy.server.ts similarity index 100% rename from app/features/auth/core/DiscordStrategy.server.ts rename to apps/web-react/app/features/auth/core/DiscordStrategy.server.ts diff --git a/app/features/auth/core/authenticator.server.ts b/apps/web-react/app/features/auth/core/authenticator.server.ts similarity index 100% rename from app/features/auth/core/authenticator.server.ts rename to apps/web-react/app/features/auth/core/authenticator.server.ts diff --git a/app/features/auth/core/errors.ts b/apps/web-react/app/features/auth/core/errors.ts similarity index 100% rename from app/features/auth/core/errors.ts rename to apps/web-react/app/features/auth/core/errors.ts diff --git a/app/features/auth/core/routes.server.ts b/apps/web-react/app/features/auth/core/routes.server.ts similarity index 100% rename from app/features/auth/core/routes.server.ts rename to apps/web-react/app/features/auth/core/routes.server.ts diff --git a/app/features/auth/core/session.server.ts b/apps/web-react/app/features/auth/core/session.server.ts similarity index 100% rename from app/features/auth/core/session.server.ts rename to apps/web-react/app/features/auth/core/session.server.ts diff --git a/app/features/auth/core/user-context.server.ts b/apps/web-react/app/features/auth/core/user-context.server.ts similarity index 100% rename from app/features/auth/core/user-context.server.ts rename to apps/web-react/app/features/auth/core/user-context.server.ts diff --git a/app/features/auth/core/user-middleware.server.ts b/apps/web-react/app/features/auth/core/user-middleware.server.ts similarity index 100% rename from app/features/auth/core/user-middleware.server.ts rename to apps/web-react/app/features/auth/core/user-middleware.server.ts diff --git a/app/features/auth/core/user.server.ts b/apps/web-react/app/features/auth/core/user.server.ts similarity index 100% rename from app/features/auth/core/user.server.ts rename to apps/web-react/app/features/auth/core/user.server.ts diff --git a/app/features/auth/core/user.ts b/apps/web-react/app/features/auth/core/user.ts similarity index 100% rename from app/features/auth/core/user.ts rename to apps/web-react/app/features/auth/core/user.ts diff --git a/app/features/auth/routes/auth.callback.ts b/apps/web-react/app/features/auth/routes/auth.callback.ts similarity index 100% rename from app/features/auth/routes/auth.callback.ts rename to apps/web-react/app/features/auth/routes/auth.callback.ts diff --git a/app/features/auth/routes/auth.create-link.ts b/apps/web-react/app/features/auth/routes/auth.create-link.ts similarity index 100% rename from app/features/auth/routes/auth.create-link.ts rename to apps/web-react/app/features/auth/routes/auth.create-link.ts diff --git a/app/features/auth/routes/auth.impersonate.stop.ts b/apps/web-react/app/features/auth/routes/auth.impersonate.stop.ts similarity index 100% rename from app/features/auth/routes/auth.impersonate.stop.ts rename to apps/web-react/app/features/auth/routes/auth.impersonate.stop.ts diff --git a/app/features/auth/routes/auth.impersonate.ts b/apps/web-react/app/features/auth/routes/auth.impersonate.ts similarity index 100% rename from app/features/auth/routes/auth.impersonate.ts rename to apps/web-react/app/features/auth/routes/auth.impersonate.ts diff --git a/app/features/auth/routes/auth.login.ts b/apps/web-react/app/features/auth/routes/auth.login.ts similarity index 100% rename from app/features/auth/routes/auth.login.ts rename to apps/web-react/app/features/auth/routes/auth.login.ts diff --git a/app/features/auth/routes/auth.logout.ts b/apps/web-react/app/features/auth/routes/auth.logout.ts similarity index 100% rename from app/features/auth/routes/auth.logout.ts rename to apps/web-react/app/features/auth/routes/auth.logout.ts diff --git a/app/features/auth/routes/auth.ts b/apps/web-react/app/features/auth/routes/auth.ts similarity index 100% rename from app/features/auth/routes/auth.ts rename to apps/web-react/app/features/auth/routes/auth.ts diff --git a/app/features/badges/BadgeRepository.server.test.ts b/apps/web-react/app/features/badges/BadgeRepository.server.test.ts similarity index 100% rename from app/features/badges/BadgeRepository.server.test.ts rename to apps/web-react/app/features/badges/BadgeRepository.server.test.ts diff --git a/app/features/badges/BadgeRepository.server.ts b/apps/web-react/app/features/badges/BadgeRepository.server.ts similarity index 100% rename from app/features/badges/BadgeRepository.server.ts rename to apps/web-react/app/features/badges/BadgeRepository.server.ts diff --git a/app/features/badges/actions/badges.$id.edit.server.ts b/apps/web-react/app/features/badges/actions/badges.$id.edit.server.ts similarity index 100% rename from app/features/badges/actions/badges.$id.edit.server.ts rename to apps/web-react/app/features/badges/actions/badges.$id.edit.server.ts diff --git a/app/features/badges/badges-constants.ts b/apps/web-react/app/features/badges/badges-constants.ts similarity index 100% rename from app/features/badges/badges-constants.ts rename to apps/web-react/app/features/badges/badges-constants.ts diff --git a/app/features/badges/badges-schemas.ts b/apps/web-react/app/features/badges/badges-schemas.ts similarity index 100% rename from app/features/badges/badges-schemas.ts rename to apps/web-react/app/features/badges/badges-schemas.ts diff --git a/app/features/badges/badges-utils.ts b/apps/web-react/app/features/badges/badges-utils.ts similarity index 100% rename from app/features/badges/badges-utils.ts rename to apps/web-react/app/features/badges/badges-utils.ts diff --git a/app/features/badges/badges.module.css b/apps/web-react/app/features/badges/badges.module.css similarity index 100% rename from app/features/badges/badges.module.css rename to apps/web-react/app/features/badges/badges.module.css diff --git a/app/features/badges/components/BadgeDisplay.module.css b/apps/web-react/app/features/badges/components/BadgeDisplay.module.css similarity index 100% rename from app/features/badges/components/BadgeDisplay.module.css rename to apps/web-react/app/features/badges/components/BadgeDisplay.module.css diff --git a/app/features/badges/components/BadgeDisplay.tsx b/apps/web-react/app/features/badges/components/BadgeDisplay.tsx similarity index 100% rename from app/features/badges/components/BadgeDisplay.tsx rename to apps/web-react/app/features/badges/components/BadgeDisplay.tsx diff --git a/app/features/badges/components/BadgesSelector.tsx b/apps/web-react/app/features/badges/components/BadgesSelector.tsx similarity index 100% rename from app/features/badges/components/BadgesSelector.tsx rename to apps/web-react/app/features/badges/components/BadgesSelector.tsx diff --git a/app/features/badges/loaders/badges.$id.server.ts b/apps/web-react/app/features/badges/loaders/badges.$id.server.ts similarity index 100% rename from app/features/badges/loaders/badges.$id.server.ts rename to apps/web-react/app/features/badges/loaders/badges.$id.server.ts diff --git a/app/features/badges/loaders/badges.server.ts b/apps/web-react/app/features/badges/loaders/badges.server.ts similarity index 100% rename from app/features/badges/loaders/badges.server.ts rename to apps/web-react/app/features/badges/loaders/badges.server.ts diff --git a/app/features/badges/routes/badges.$id.edit.tsx b/apps/web-react/app/features/badges/routes/badges.$id.edit.tsx similarity index 100% rename from app/features/badges/routes/badges.$id.edit.tsx rename to apps/web-react/app/features/badges/routes/badges.$id.edit.tsx diff --git a/app/features/badges/routes/badges.$id.tsx b/apps/web-react/app/features/badges/routes/badges.$id.tsx similarity index 100% rename from app/features/badges/routes/badges.$id.tsx rename to apps/web-react/app/features/badges/routes/badges.$id.tsx diff --git a/app/features/badges/routes/badges.tsx b/apps/web-react/app/features/badges/routes/badges.tsx similarity index 100% rename from app/features/badges/routes/badges.tsx rename to apps/web-react/app/features/badges/routes/badges.tsx diff --git a/app/features/ban/core/banned.server.ts b/apps/web-react/app/features/ban/core/banned.server.ts similarity index 100% rename from app/features/ban/core/banned.server.ts rename to apps/web-react/app/features/ban/core/banned.server.ts diff --git a/app/features/ban/core/banned.test.ts b/apps/web-react/app/features/ban/core/banned.test.ts similarity index 100% rename from app/features/ban/core/banned.test.ts rename to apps/web-react/app/features/ban/core/banned.test.ts diff --git a/app/features/ban/loaders/suspended.server.ts b/apps/web-react/app/features/ban/loaders/suspended.server.ts similarity index 100% rename from app/features/ban/loaders/suspended.server.ts rename to apps/web-react/app/features/ban/loaders/suspended.server.ts diff --git a/app/features/ban/routes/suspended.tsx b/apps/web-react/app/features/ban/routes/suspended.tsx similarity index 100% rename from app/features/ban/routes/suspended.tsx rename to apps/web-react/app/features/ban/routes/suspended.tsx diff --git a/app/features/bracket-test/bracket-test.module.css b/apps/web-react/app/features/bracket-test/bracket-test.module.css similarity index 100% rename from app/features/bracket-test/bracket-test.module.css rename to apps/web-react/app/features/bracket-test/bracket-test.module.css diff --git a/app/features/bracket-test/routes/bracket-test.index.tsx b/apps/web-react/app/features/bracket-test/routes/bracket-test.index.tsx similarity index 100% rename from app/features/bracket-test/routes/bracket-test.index.tsx rename to apps/web-react/app/features/bracket-test/routes/bracket-test.index.tsx diff --git a/app/features/bracket-test/routes/bracket-test.tsx b/apps/web-react/app/features/bracket-test/routes/bracket-test.tsx similarity index 100% rename from app/features/bracket-test/routes/bracket-test.tsx rename to apps/web-react/app/features/bracket-test/routes/bracket-test.tsx diff --git a/app/features/build-analyzer/analyzer-constants.ts b/apps/web-react/app/features/build-analyzer/analyzer-constants.ts similarity index 100% rename from app/features/build-analyzer/analyzer-constants.ts rename to apps/web-react/app/features/build-analyzer/analyzer-constants.ts diff --git a/app/features/build-analyzer/analyzer-hooks.ts b/apps/web-react/app/features/build-analyzer/analyzer-hooks.ts similarity index 100% rename from app/features/build-analyzer/analyzer-hooks.ts rename to apps/web-react/app/features/build-analyzer/analyzer-hooks.ts diff --git a/app/features/build-analyzer/analyzer-search-params.test.ts b/apps/web-react/app/features/build-analyzer/analyzer-search-params.test.ts similarity index 100% rename from app/features/build-analyzer/analyzer-search-params.test.ts rename to apps/web-react/app/features/build-analyzer/analyzer-search-params.test.ts diff --git a/app/features/build-analyzer/analyzer-search-params.ts b/apps/web-react/app/features/build-analyzer/analyzer-search-params.ts similarity index 100% rename from app/features/build-analyzer/analyzer-search-params.ts rename to apps/web-react/app/features/build-analyzer/analyzer-search-params.ts diff --git a/app/features/build-analyzer/analyzer-types.ts b/apps/web-react/app/features/build-analyzer/analyzer-types.ts similarity index 100% rename from app/features/build-analyzer/analyzer-types.ts rename to apps/web-react/app/features/build-analyzer/analyzer-types.ts diff --git a/app/features/build-analyzer/analyzer-urls.ts b/apps/web-react/app/features/build-analyzer/analyzer-urls.ts similarity index 100% rename from app/features/build-analyzer/analyzer-urls.ts rename to apps/web-react/app/features/build-analyzer/analyzer-urls.ts diff --git a/app/features/build-analyzer/components/PerInkTankGrid.tsx b/apps/web-react/app/features/build-analyzer/components/PerInkTankGrid.tsx similarity index 100% rename from app/features/build-analyzer/components/PerInkTankGrid.tsx rename to apps/web-react/app/features/build-analyzer/components/PerInkTankGrid.tsx diff --git a/app/features/build-analyzer/core/ability-points.test.ts b/apps/web-react/app/features/build-analyzer/core/ability-points.test.ts similarity index 100% rename from app/features/build-analyzer/core/ability-points.test.ts rename to apps/web-react/app/features/build-analyzer/core/ability-points.test.ts diff --git a/app/features/build-analyzer/core/ability-points.ts b/apps/web-react/app/features/build-analyzer/core/ability-points.ts similarity index 100% rename from app/features/build-analyzer/core/ability-points.ts rename to apps/web-react/app/features/build-analyzer/core/ability-points.ts diff --git a/app/features/build-analyzer/core/abilityChunksCalc.test.ts b/apps/web-react/app/features/build-analyzer/core/abilityChunksCalc.test.ts similarity index 100% rename from app/features/build-analyzer/core/abilityChunksCalc.test.ts rename to apps/web-react/app/features/build-analyzer/core/abilityChunksCalc.test.ts diff --git a/app/features/build-analyzer/core/abilityChunksCalc.ts b/apps/web-react/app/features/build-analyzer/core/abilityChunksCalc.ts similarity index 100% rename from app/features/build-analyzer/core/abilityChunksCalc.ts rename to apps/web-react/app/features/build-analyzer/core/abilityChunksCalc.ts diff --git a/app/features/build-analyzer/core/serializer.ts b/apps/web-react/app/features/build-analyzer/core/serializer.ts similarity index 100% rename from app/features/build-analyzer/core/serializer.ts rename to apps/web-react/app/features/build-analyzer/core/serializer.ts diff --git a/app/features/build-analyzer/core/specialEffects.test.ts b/apps/web-react/app/features/build-analyzer/core/specialEffects.test.ts similarity index 100% rename from app/features/build-analyzer/core/specialEffects.test.ts rename to apps/web-react/app/features/build-analyzer/core/specialEffects.test.ts diff --git a/app/features/build-analyzer/core/specialEffects.ts b/apps/web-react/app/features/build-analyzer/core/specialEffects.ts similarity index 100% rename from app/features/build-analyzer/core/specialEffects.ts rename to apps/web-react/app/features/build-analyzer/core/specialEffects.ts diff --git a/app/features/build-analyzer/core/stats.test.ts b/apps/web-react/app/features/build-analyzer/core/stats.test.ts similarity index 100% rename from app/features/build-analyzer/core/stats.test.ts rename to apps/web-react/app/features/build-analyzer/core/stats.test.ts diff --git a/app/features/build-analyzer/core/stats.ts b/apps/web-react/app/features/build-analyzer/core/stats.ts similarity index 100% rename from app/features/build-analyzer/core/stats.ts rename to apps/web-react/app/features/build-analyzer/core/stats.ts diff --git a/app/features/build-analyzer/core/utils.ts b/apps/web-react/app/features/build-analyzer/core/utils.ts similarity index 100% rename from app/features/build-analyzer/core/utils.ts rename to apps/web-react/app/features/build-analyzer/core/utils.ts diff --git a/app/features/build-analyzer/data/ability-values.ts b/apps/web-react/app/features/build-analyzer/data/ability-values.ts similarity index 100% rename from app/features/build-analyzer/data/ability-values.ts rename to apps/web-react/app/features/build-analyzer/data/ability-values.ts diff --git a/app/features/build-analyzer/data/weapon-params.ts b/apps/web-react/app/features/build-analyzer/data/weapon-params.ts similarity index 100% rename from app/features/build-analyzer/data/weapon-params.ts rename to apps/web-react/app/features/build-analyzer/data/weapon-params.ts diff --git a/app/features/build-analyzer/routes/analyzer.module.css b/apps/web-react/app/features/build-analyzer/routes/analyzer.module.css similarity index 100% rename from app/features/build-analyzer/routes/analyzer.module.css rename to apps/web-react/app/features/build-analyzer/routes/analyzer.module.css diff --git a/app/features/build-analyzer/routes/analyzer.tsx b/apps/web-react/app/features/build-analyzer/routes/analyzer.tsx similarity index 100% rename from app/features/build-analyzer/routes/analyzer.tsx rename to apps/web-react/app/features/build-analyzer/routes/analyzer.tsx diff --git a/app/features/build-stats/build-stats-utils.test.ts b/apps/web-react/app/features/build-stats/build-stats-utils.test.ts similarity index 100% rename from app/features/build-stats/build-stats-utils.test.ts rename to apps/web-react/app/features/build-stats/build-stats-utils.test.ts diff --git a/app/features/build-stats/build-stats-utils.ts b/apps/web-react/app/features/build-stats/build-stats-utils.ts similarity index 100% rename from app/features/build-stats/build-stats-utils.ts rename to apps/web-react/app/features/build-stats/build-stats-utils.ts diff --git a/app/features/build-stats/loaders/builds.$slug.popular.server.ts b/apps/web-react/app/features/build-stats/loaders/builds.$slug.popular.server.ts similarity index 100% rename from app/features/build-stats/loaders/builds.$slug.popular.server.ts rename to apps/web-react/app/features/build-stats/loaders/builds.$slug.popular.server.ts diff --git a/app/features/build-stats/loaders/builds.$slug.stats.server.ts b/apps/web-react/app/features/build-stats/loaders/builds.$slug.stats.server.ts similarity index 100% rename from app/features/build-stats/loaders/builds.$slug.stats.server.ts rename to apps/web-react/app/features/build-stats/loaders/builds.$slug.stats.server.ts diff --git a/app/features/build-stats/routes/builds.$slug.popular.tsx b/apps/web-react/app/features/build-stats/routes/builds.$slug.popular.tsx similarity index 100% rename from app/features/build-stats/routes/builds.$slug.popular.tsx rename to apps/web-react/app/features/build-stats/routes/builds.$slug.popular.tsx diff --git a/app/features/build-stats/routes/builds.$slug.stats.module.css b/apps/web-react/app/features/build-stats/routes/builds.$slug.stats.module.css similarity index 100% rename from app/features/build-stats/routes/builds.$slug.stats.module.css rename to apps/web-react/app/features/build-stats/routes/builds.$slug.stats.module.css diff --git a/app/features/build-stats/routes/builds.$slug.stats.tsx b/apps/web-react/app/features/build-stats/routes/builds.$slug.stats.tsx similarity index 100% rename from app/features/build-stats/routes/builds.$slug.stats.tsx rename to apps/web-react/app/features/build-stats/routes/builds.$slug.stats.tsx diff --git a/app/features/builds/BuildRepository.server.test.ts b/apps/web-react/app/features/builds/BuildRepository.server.test.ts similarity index 100% rename from app/features/builds/BuildRepository.server.test.ts rename to apps/web-react/app/features/builds/BuildRepository.server.test.ts diff --git a/app/features/builds/BuildRepository.server.ts b/apps/web-react/app/features/builds/BuildRepository.server.ts similarity index 100% rename from app/features/builds/BuildRepository.server.ts rename to apps/web-react/app/features/builds/BuildRepository.server.ts diff --git a/app/features/builds/builds-constants.ts b/apps/web-react/app/features/builds/builds-constants.ts similarity index 100% rename from app/features/builds/builds-constants.ts rename to apps/web-react/app/features/builds/builds-constants.ts diff --git a/app/features/builds/builds-schemas.ts b/apps/web-react/app/features/builds/builds-schemas.ts similarity index 100% rename from app/features/builds/builds-schemas.ts rename to apps/web-react/app/features/builds/builds-schemas.ts diff --git a/app/features/builds/builds-search-params.test.ts b/apps/web-react/app/features/builds/builds-search-params.test.ts similarity index 100% rename from app/features/builds/builds-search-params.test.ts rename to apps/web-react/app/features/builds/builds-search-params.test.ts diff --git a/app/features/builds/builds-search-params.ts b/apps/web-react/app/features/builds/builds-search-params.ts similarity index 100% rename from app/features/builds/builds-search-params.ts rename to apps/web-react/app/features/builds/builds-search-params.ts diff --git a/app/features/builds/builds-types.ts b/apps/web-react/app/features/builds/builds-types.ts similarity index 100% rename from app/features/builds/builds-types.ts rename to apps/web-react/app/features/builds/builds-types.ts diff --git a/app/features/builds/core/ability-sorting.server.test.ts b/apps/web-react/app/features/builds/core/ability-sorting.server.test.ts similarity index 100% rename from app/features/builds/core/ability-sorting.server.test.ts rename to apps/web-react/app/features/builds/core/ability-sorting.server.test.ts diff --git a/app/features/builds/core/ability-sorting.server.ts b/apps/web-react/app/features/builds/core/ability-sorting.server.ts similarity index 100% rename from app/features/builds/core/ability-sorting.server.ts rename to apps/web-react/app/features/builds/core/ability-sorting.server.ts diff --git a/app/features/builds/core/filter.server.ts b/apps/web-react/app/features/builds/core/filter.server.ts similarity index 100% rename from app/features/builds/core/filter.server.ts rename to apps/web-react/app/features/builds/core/filter.server.ts diff --git a/app/features/builds/core/filter.test.ts b/apps/web-react/app/features/builds/core/filter.test.ts similarity index 100% rename from app/features/builds/core/filter.test.ts rename to apps/web-react/app/features/builds/core/filter.test.ts diff --git a/app/features/builds/loaders/builds.$slug.server.ts b/apps/web-react/app/features/builds/loaders/builds.$slug.server.ts similarity index 100% rename from app/features/builds/loaders/builds.$slug.server.ts rename to apps/web-react/app/features/builds/loaders/builds.$slug.server.ts diff --git a/app/features/builds/routes/builds.$slug.module.css b/apps/web-react/app/features/builds/routes/builds.$slug.module.css similarity index 100% rename from app/features/builds/routes/builds.$slug.module.css rename to apps/web-react/app/features/builds/routes/builds.$slug.module.css diff --git a/app/features/builds/routes/builds.$slug.tsx b/apps/web-react/app/features/builds/routes/builds.$slug.tsx similarity index 100% rename from app/features/builds/routes/builds.$slug.tsx rename to apps/web-react/app/features/builds/routes/builds.$slug.tsx diff --git a/app/features/builds/routes/builds.module.css b/apps/web-react/app/features/builds/routes/builds.module.css similarity index 100% rename from app/features/builds/routes/builds.module.css rename to apps/web-react/app/features/builds/routes/builds.module.css diff --git a/app/features/builds/routes/builds.tsx b/apps/web-react/app/features/builds/routes/builds.tsx similarity index 100% rename from app/features/builds/routes/builds.tsx rename to apps/web-react/app/features/builds/routes/builds.tsx diff --git a/app/features/calendar/CalendarRepository.server.ts b/apps/web-react/app/features/calendar/CalendarRepository.server.ts similarity index 100% rename from app/features/calendar/CalendarRepository.server.ts rename to apps/web-react/app/features/calendar/CalendarRepository.server.ts diff --git a/app/features/calendar/actions/calendar.$id.report-winners.server.ts b/apps/web-react/app/features/calendar/actions/calendar.$id.report-winners.server.ts similarity index 100% rename from app/features/calendar/actions/calendar.$id.report-winners.server.ts rename to apps/web-react/app/features/calendar/actions/calendar.$id.report-winners.server.ts diff --git a/app/features/calendar/actions/calendar.$id.server.ts b/apps/web-react/app/features/calendar/actions/calendar.$id.server.ts similarity index 100% rename from app/features/calendar/actions/calendar.$id.server.ts rename to apps/web-react/app/features/calendar/actions/calendar.$id.server.ts diff --git a/app/features/calendar/actions/calendar.new.server.ts b/apps/web-react/app/features/calendar/actions/calendar.new.server.ts similarity index 100% rename from app/features/calendar/actions/calendar.new.server.ts rename to apps/web-react/app/features/calendar/actions/calendar.new.server.ts diff --git a/app/features/calendar/actions/calendar.tsx b/apps/web-react/app/features/calendar/actions/calendar.tsx similarity index 100% rename from app/features/calendar/actions/calendar.tsx rename to apps/web-react/app/features/calendar/actions/calendar.tsx diff --git a/app/features/calendar/calendar-constants.ts b/apps/web-react/app/features/calendar/calendar-constants.ts similarity index 100% rename from app/features/calendar/calendar-constants.ts rename to apps/web-react/app/features/calendar/calendar-constants.ts diff --git a/app/features/calendar/calendar-event.module.css b/apps/web-react/app/features/calendar/calendar-event.module.css similarity index 100% rename from app/features/calendar/calendar-event.module.css rename to apps/web-react/app/features/calendar/calendar-event.module.css diff --git a/app/features/calendar/calendar-hooks.ts b/apps/web-react/app/features/calendar/calendar-hooks.ts similarity index 100% rename from app/features/calendar/calendar-hooks.ts rename to apps/web-react/app/features/calendar/calendar-hooks.ts diff --git a/app/features/calendar/calendar-new-schemas.server.ts b/apps/web-react/app/features/calendar/calendar-new-schemas.server.ts similarity index 100% rename from app/features/calendar/calendar-new-schemas.server.ts rename to apps/web-react/app/features/calendar/calendar-new-schemas.server.ts diff --git a/app/features/calendar/calendar-new-schemas.ts b/apps/web-react/app/features/calendar/calendar-new-schemas.ts similarity index 100% rename from app/features/calendar/calendar-new-schemas.ts rename to apps/web-react/app/features/calendar/calendar-new-schemas.ts diff --git a/app/features/calendar/calendar-new.module.css b/apps/web-react/app/features/calendar/calendar-new.module.css similarity index 100% rename from app/features/calendar/calendar-new.module.css rename to apps/web-react/app/features/calendar/calendar-new.module.css diff --git a/app/features/calendar/calendar-progression-form.test.ts b/apps/web-react/app/features/calendar/calendar-progression-form.test.ts similarity index 100% rename from app/features/calendar/calendar-progression-form.test.ts rename to apps/web-react/app/features/calendar/calendar-progression-form.test.ts diff --git a/app/features/calendar/calendar-progression-form.ts b/apps/web-react/app/features/calendar/calendar-progression-form.ts similarity index 100% rename from app/features/calendar/calendar-progression-form.ts rename to apps/web-react/app/features/calendar/calendar-progression-form.ts diff --git a/app/features/calendar/calendar-report-winners-schemas.ts b/apps/web-react/app/features/calendar/calendar-report-winners-schemas.ts similarity index 100% rename from app/features/calendar/calendar-report-winners-schemas.ts rename to apps/web-react/app/features/calendar/calendar-report-winners-schemas.ts diff --git a/app/features/calendar/calendar-schemas.ts b/apps/web-react/app/features/calendar/calendar-schemas.ts similarity index 100% rename from app/features/calendar/calendar-schemas.ts rename to apps/web-react/app/features/calendar/calendar-schemas.ts diff --git a/app/features/calendar/calendar-search-params.test.ts b/apps/web-react/app/features/calendar/calendar-search-params.test.ts similarity index 100% rename from app/features/calendar/calendar-search-params.test.ts rename to apps/web-react/app/features/calendar/calendar-search-params.test.ts diff --git a/app/features/calendar/calendar-search-params.ts b/apps/web-react/app/features/calendar/calendar-search-params.ts similarity index 100% rename from app/features/calendar/calendar-search-params.ts rename to apps/web-react/app/features/calendar/calendar-search-params.ts diff --git a/app/features/calendar/calendar-types.ts b/apps/web-react/app/features/calendar/calendar-types.ts similarity index 100% rename from app/features/calendar/calendar-types.ts rename to apps/web-react/app/features/calendar/calendar-types.ts diff --git a/app/features/calendar/calendar-urls.ts b/apps/web-react/app/features/calendar/calendar-urls.ts similarity index 100% rename from app/features/calendar/calendar-urls.ts rename to apps/web-react/app/features/calendar/calendar-urls.ts diff --git a/app/features/calendar/calendar-utils.test.ts b/apps/web-react/app/features/calendar/calendar-utils.test.ts similarity index 100% rename from app/features/calendar/calendar-utils.test.ts rename to apps/web-react/app/features/calendar/calendar-utils.test.ts diff --git a/app/features/calendar/calendar-utils.ts b/apps/web-react/app/features/calendar/calendar-utils.ts similarity index 100% rename from app/features/calendar/calendar-utils.ts rename to apps/web-react/app/features/calendar/calendar-utils.ts diff --git a/app/features/calendar/components/BracketProgressionFormFields.module.css b/apps/web-react/app/features/calendar/components/BracketProgressionFormFields.module.css similarity index 100% rename from app/features/calendar/components/BracketProgressionFormFields.module.css rename to apps/web-react/app/features/calendar/components/BracketProgressionFormFields.module.css diff --git a/app/features/calendar/components/BracketProgressionFormFields.tsx b/apps/web-react/app/features/calendar/components/BracketProgressionFormFields.tsx similarity index 100% rename from app/features/calendar/components/BracketProgressionFormFields.tsx rename to apps/web-react/app/features/calendar/components/BracketProgressionFormFields.tsx diff --git a/app/features/calendar/components/FiltersBar.tsx b/apps/web-react/app/features/calendar/components/FiltersBar.tsx similarity index 100% rename from app/features/calendar/components/FiltersBar.tsx rename to apps/web-react/app/features/calendar/components/FiltersBar.tsx diff --git a/app/features/calendar/components/Tags.module.css b/apps/web-react/app/features/calendar/components/Tags.module.css similarity index 100% rename from app/features/calendar/components/Tags.module.css rename to apps/web-react/app/features/calendar/components/Tags.module.css diff --git a/app/features/calendar/components/Tags.tsx b/apps/web-react/app/features/calendar/components/Tags.tsx similarity index 100% rename from app/features/calendar/components/Tags.tsx rename to apps/web-react/app/features/calendar/components/Tags.tsx diff --git a/app/features/calendar/components/TournamentCard.module.css b/apps/web-react/app/features/calendar/components/TournamentCard.module.css similarity index 100% rename from app/features/calendar/components/TournamentCard.module.css rename to apps/web-react/app/features/calendar/components/TournamentCard.module.css diff --git a/app/features/calendar/components/TournamentCard.tsx b/apps/web-react/app/features/calendar/components/TournamentCard.tsx similarity index 100% rename from app/features/calendar/components/TournamentCard.tsx rename to apps/web-react/app/features/calendar/components/TournamentCard.tsx diff --git a/app/features/calendar/core/CalendarEvent.test.ts b/apps/web-react/app/features/calendar/core/CalendarEvent.test.ts similarity index 100% rename from app/features/calendar/core/CalendarEvent.test.ts rename to apps/web-react/app/features/calendar/core/CalendarEvent.test.ts diff --git a/app/features/calendar/core/CalendarEvent.ts b/apps/web-react/app/features/calendar/core/CalendarEvent.ts similarity index 100% rename from app/features/calendar/core/CalendarEvent.ts rename to apps/web-react/app/features/calendar/core/CalendarEvent.ts diff --git a/app/features/calendar/core/ICal.server.ts b/apps/web-react/app/features/calendar/core/ICal.server.ts similarity index 100% rename from app/features/calendar/core/ICal.server.ts rename to apps/web-react/app/features/calendar/core/ICal.server.ts diff --git a/app/features/calendar/loaders/calendar.$id.report-winners.server.ts b/apps/web-react/app/features/calendar/loaders/calendar.$id.report-winners.server.ts similarity index 100% rename from app/features/calendar/loaders/calendar.$id.report-winners.server.ts rename to apps/web-react/app/features/calendar/loaders/calendar.$id.report-winners.server.ts diff --git a/app/features/calendar/loaders/calendar.$id.server.ts b/apps/web-react/app/features/calendar/loaders/calendar.$id.server.ts similarity index 100% rename from app/features/calendar/loaders/calendar.$id.server.ts rename to apps/web-react/app/features/calendar/loaders/calendar.$id.server.ts diff --git a/app/features/calendar/loaders/calendar.new.server.ts b/apps/web-react/app/features/calendar/loaders/calendar.new.server.ts similarity index 100% rename from app/features/calendar/loaders/calendar.new.server.ts rename to apps/web-react/app/features/calendar/loaders/calendar.new.server.ts diff --git a/app/features/calendar/loaders/calendar.server.test.ts b/apps/web-react/app/features/calendar/loaders/calendar.server.test.ts similarity index 100% rename from app/features/calendar/loaders/calendar.server.test.ts rename to apps/web-react/app/features/calendar/loaders/calendar.server.test.ts diff --git a/app/features/calendar/loaders/calendar.server.ts b/apps/web-react/app/features/calendar/loaders/calendar.server.ts similarity index 100% rename from app/features/calendar/loaders/calendar.server.ts rename to apps/web-react/app/features/calendar/loaders/calendar.server.ts diff --git a/app/features/calendar/loaders/calendar[.]ics.server.ts b/apps/web-react/app/features/calendar/loaders/calendar[.]ics.server.ts similarity index 100% rename from app/features/calendar/loaders/calendar[.]ics.server.ts rename to apps/web-react/app/features/calendar/loaders/calendar[.]ics.server.ts diff --git a/app/features/calendar/loaders/events.server.ts b/apps/web-react/app/features/calendar/loaders/events.server.ts similarity index 100% rename from app/features/calendar/loaders/events.server.ts rename to apps/web-react/app/features/calendar/loaders/events.server.ts diff --git a/app/features/calendar/routes/calendar.$id.report-winners.tsx b/apps/web-react/app/features/calendar/routes/calendar.$id.report-winners.tsx similarity index 100% rename from app/features/calendar/routes/calendar.$id.report-winners.tsx rename to apps/web-react/app/features/calendar/routes/calendar.$id.report-winners.tsx diff --git a/app/features/calendar/routes/calendar.$id.test.ts b/apps/web-react/app/features/calendar/routes/calendar.$id.test.ts similarity index 100% rename from app/features/calendar/routes/calendar.$id.test.ts rename to apps/web-react/app/features/calendar/routes/calendar.$id.test.ts diff --git a/app/features/calendar/routes/calendar.$id.tsx b/apps/web-react/app/features/calendar/routes/calendar.$id.tsx similarity index 100% rename from app/features/calendar/routes/calendar.$id.tsx rename to apps/web-react/app/features/calendar/routes/calendar.$id.tsx diff --git a/app/features/calendar/routes/calendar.ics.tsx b/apps/web-react/app/features/calendar/routes/calendar.ics.tsx similarity index 100% rename from app/features/calendar/routes/calendar.ics.tsx rename to apps/web-react/app/features/calendar/routes/calendar.ics.tsx diff --git a/app/features/calendar/routes/calendar.module.css b/apps/web-react/app/features/calendar/routes/calendar.module.css similarity index 100% rename from app/features/calendar/routes/calendar.module.css rename to apps/web-react/app/features/calendar/routes/calendar.module.css diff --git a/app/features/calendar/routes/calendar.new.tsx b/apps/web-react/app/features/calendar/routes/calendar.new.tsx similarity index 100% rename from app/features/calendar/routes/calendar.new.tsx rename to apps/web-react/app/features/calendar/routes/calendar.new.tsx diff --git a/app/features/calendar/routes/calendar.tsx b/apps/web-react/app/features/calendar/routes/calendar.tsx similarity index 100% rename from app/features/calendar/routes/calendar.tsx rename to apps/web-react/app/features/calendar/routes/calendar.tsx diff --git a/app/features/calendar/routes/events.module.css b/apps/web-react/app/features/calendar/routes/events.module.css similarity index 100% rename from app/features/calendar/routes/events.module.css rename to apps/web-react/app/features/calendar/routes/events.module.css diff --git a/app/features/calendar/routes/events.tsx b/apps/web-react/app/features/calendar/routes/events.tsx similarity index 100% rename from app/features/calendar/routes/events.tsx rename to apps/web-react/app/features/calendar/routes/events.tsx diff --git a/app/features/chat/ChatProvider.tsx b/apps/web-react/app/features/chat/ChatProvider.tsx similarity index 100% rename from app/features/chat/ChatProvider.tsx rename to apps/web-react/app/features/chat/ChatProvider.tsx diff --git a/app/features/chat/ChatSystemMessage.server.ts b/apps/web-react/app/features/chat/ChatSystemMessage.server.ts similarity index 100% rename from app/features/chat/ChatSystemMessage.server.ts rename to apps/web-react/app/features/chat/ChatSystemMessage.server.ts diff --git a/app/features/chat/chat-constants.test.ts b/apps/web-react/app/features/chat/chat-constants.test.ts similarity index 100% rename from app/features/chat/chat-constants.test.ts rename to apps/web-react/app/features/chat/chat-constants.test.ts diff --git a/app/features/chat/chat-constants.ts b/apps/web-react/app/features/chat/chat-constants.ts similarity index 100% rename from app/features/chat/chat-constants.ts rename to apps/web-react/app/features/chat/chat-constants.ts diff --git a/app/features/chat/chat-hooks.browser.test.tsx b/apps/web-react/app/features/chat/chat-hooks.browser.test.tsx similarity index 100% rename from app/features/chat/chat-hooks.browser.test.tsx rename to apps/web-react/app/features/chat/chat-hooks.browser.test.tsx diff --git a/app/features/chat/chat-hooks.ts b/apps/web-react/app/features/chat/chat-hooks.ts similarity index 100% rename from app/features/chat/chat-hooks.ts rename to apps/web-react/app/features/chat/chat-hooks.ts diff --git a/app/features/chat/chat-last-read.test.ts b/apps/web-react/app/features/chat/chat-last-read.test.ts similarity index 100% rename from app/features/chat/chat-last-read.test.ts rename to apps/web-react/app/features/chat/chat-last-read.test.ts diff --git a/app/features/chat/chat-last-read.ts b/apps/web-react/app/features/chat/chat-last-read.ts similarity index 100% rename from app/features/chat/chat-last-read.ts rename to apps/web-react/app/features/chat/chat-last-read.ts diff --git a/app/features/chat/chat-provider-types.ts b/apps/web-react/app/features/chat/chat-provider-types.ts similarity index 100% rename from app/features/chat/chat-provider-types.ts rename to apps/web-react/app/features/chat/chat-provider-types.ts diff --git a/app/features/chat/chat-search-params.test.ts b/apps/web-react/app/features/chat/chat-search-params.test.ts similarity index 100% rename from app/features/chat/chat-search-params.test.ts rename to apps/web-react/app/features/chat/chat-search-params.test.ts diff --git a/app/features/chat/chat-search-params.ts b/apps/web-react/app/features/chat/chat-search-params.ts similarity index 100% rename from app/features/chat/chat-search-params.ts rename to apps/web-react/app/features/chat/chat-search-params.ts diff --git a/app/features/chat/chat-types.ts b/apps/web-react/app/features/chat/chat-types.ts similarity index 100% rename from app/features/chat/chat-types.ts rename to apps/web-react/app/features/chat/chat-types.ts diff --git a/app/features/chat/chat-utils.test.ts b/apps/web-react/app/features/chat/chat-utils.test.ts similarity index 100% rename from app/features/chat/chat-utils.test.ts rename to apps/web-react/app/features/chat/chat-utils.test.ts diff --git a/app/features/chat/chat-utils.ts b/apps/web-react/app/features/chat/chat-utils.ts similarity index 100% rename from app/features/chat/chat-utils.ts rename to apps/web-react/app/features/chat/chat-utils.ts diff --git a/app/features/chat/components/Chat.browser.test.tsx b/apps/web-react/app/features/chat/components/Chat.browser.test.tsx similarity index 100% rename from app/features/chat/components/Chat.browser.test.tsx rename to apps/web-react/app/features/chat/components/Chat.browser.test.tsx diff --git a/app/features/chat/components/Chat.module.css b/apps/web-react/app/features/chat/components/Chat.module.css similarity index 100% rename from app/features/chat/components/Chat.module.css rename to apps/web-react/app/features/chat/components/Chat.module.css diff --git a/app/features/chat/components/Chat.tsx b/apps/web-react/app/features/chat/components/Chat.tsx similarity index 100% rename from app/features/chat/components/Chat.tsx rename to apps/web-react/app/features/chat/components/Chat.tsx diff --git a/app/features/chat/revalidate-broadcast-throttle.test.ts b/apps/web-react/app/features/chat/revalidate-broadcast-throttle.test.ts similarity index 100% rename from app/features/chat/revalidate-broadcast-throttle.test.ts rename to apps/web-react/app/features/chat/revalidate-broadcast-throttle.test.ts diff --git a/app/features/chat/revalidate-broadcast-throttle.ts b/apps/web-react/app/features/chat/revalidate-broadcast-throttle.ts similarity index 100% rename from app/features/chat/revalidate-broadcast-throttle.ts rename to apps/web-react/app/features/chat/revalidate-broadcast-throttle.ts diff --git a/app/features/chat/revalidation-scope.test.ts b/apps/web-react/app/features/chat/revalidation-scope.test.ts similarity index 100% rename from app/features/chat/revalidation-scope.test.ts rename to apps/web-react/app/features/chat/revalidation-scope.test.ts diff --git a/app/features/chat/revalidation-scope.ts b/apps/web-react/app/features/chat/revalidation-scope.ts similarity index 100% rename from app/features/chat/revalidation-scope.ts rename to apps/web-react/app/features/chat/revalidation-scope.ts diff --git a/app/features/chat/routes/api.chat-users.ts b/apps/web-react/app/features/chat/routes/api.chat-users.ts similarity index 100% rename from app/features/chat/routes/api.chat-users.ts rename to apps/web-react/app/features/chat/routes/api.chat-users.ts diff --git a/app/features/chat/useChatContext.ts b/apps/web-react/app/features/chat/useChatContext.ts similarity index 100% rename from app/features/chat/useChatContext.ts rename to apps/web-react/app/features/chat/useChatContext.ts diff --git a/app/features/comp-analyzer/comp-analyzer-constants.ts b/apps/web-react/app/features/comp-analyzer/comp-analyzer-constants.ts similarity index 100% rename from app/features/comp-analyzer/comp-analyzer-constants.ts rename to apps/web-react/app/features/comp-analyzer/comp-analyzer-constants.ts diff --git a/app/features/comp-analyzer/comp-analyzer-hooks.ts b/apps/web-react/app/features/comp-analyzer/comp-analyzer-hooks.ts similarity index 100% rename from app/features/comp-analyzer/comp-analyzer-hooks.ts rename to apps/web-react/app/features/comp-analyzer/comp-analyzer-hooks.ts diff --git a/app/features/comp-analyzer/comp-analyzer-search-params.test.ts b/apps/web-react/app/features/comp-analyzer/comp-analyzer-search-params.test.ts similarity index 100% rename from app/features/comp-analyzer/comp-analyzer-search-params.test.ts rename to apps/web-react/app/features/comp-analyzer/comp-analyzer-search-params.test.ts diff --git a/app/features/comp-analyzer/comp-analyzer-search-params.ts b/apps/web-react/app/features/comp-analyzer/comp-analyzer-search-params.ts similarity index 100% rename from app/features/comp-analyzer/comp-analyzer-search-params.ts rename to apps/web-react/app/features/comp-analyzer/comp-analyzer-search-params.ts diff --git a/app/features/comp-analyzer/comp-analyzer-types.ts b/apps/web-react/app/features/comp-analyzer/comp-analyzer-types.ts similarity index 100% rename from app/features/comp-analyzer/comp-analyzer-types.ts rename to apps/web-react/app/features/comp-analyzer/comp-analyzer-types.ts diff --git a/app/features/comp-analyzer/components/DamageComboBar.module.css b/apps/web-react/app/features/comp-analyzer/components/DamageComboBar.module.css similarity index 100% rename from app/features/comp-analyzer/components/DamageComboBar.module.css rename to apps/web-react/app/features/comp-analyzer/components/DamageComboBar.module.css diff --git a/app/features/comp-analyzer/components/DamageComboBar.tsx b/apps/web-react/app/features/comp-analyzer/components/DamageComboBar.tsx similarity index 100% rename from app/features/comp-analyzer/components/DamageComboBar.tsx rename to apps/web-react/app/features/comp-analyzer/components/DamageComboBar.tsx diff --git a/app/features/comp-analyzer/components/RangeVisualization.module.css b/apps/web-react/app/features/comp-analyzer/components/RangeVisualization.module.css similarity index 100% rename from app/features/comp-analyzer/components/RangeVisualization.module.css rename to apps/web-react/app/features/comp-analyzer/components/RangeVisualization.module.css diff --git a/app/features/comp-analyzer/components/RangeVisualization.tsx b/apps/web-react/app/features/comp-analyzer/components/RangeVisualization.tsx similarity index 100% rename from app/features/comp-analyzer/components/RangeVisualization.tsx rename to apps/web-react/app/features/comp-analyzer/components/RangeVisualization.tsx diff --git a/app/features/comp-analyzer/components/SelectedWeapons.browser.test.tsx b/apps/web-react/app/features/comp-analyzer/components/SelectedWeapons.browser.test.tsx similarity index 100% rename from app/features/comp-analyzer/components/SelectedWeapons.browser.test.tsx rename to apps/web-react/app/features/comp-analyzer/components/SelectedWeapons.browser.test.tsx diff --git a/app/features/comp-analyzer/components/SelectedWeapons.module.css b/apps/web-react/app/features/comp-analyzer/components/SelectedWeapons.module.css similarity index 100% rename from app/features/comp-analyzer/components/SelectedWeapons.module.css rename to apps/web-react/app/features/comp-analyzer/components/SelectedWeapons.module.css diff --git a/app/features/comp-analyzer/components/SelectedWeapons.tsx b/apps/web-react/app/features/comp-analyzer/components/SelectedWeapons.tsx similarity index 100% rename from app/features/comp-analyzer/components/SelectedWeapons.tsx rename to apps/web-react/app/features/comp-analyzer/components/SelectedWeapons.tsx diff --git a/app/features/comp-analyzer/components/SpecialRangeVisualization.module.css b/apps/web-react/app/features/comp-analyzer/components/SpecialRangeVisualization.module.css similarity index 100% rename from app/features/comp-analyzer/components/SpecialRangeVisualization.module.css rename to apps/web-react/app/features/comp-analyzer/components/SpecialRangeVisualization.module.css diff --git a/app/features/comp-analyzer/components/SpecialRangeVisualization.tsx b/apps/web-react/app/features/comp-analyzer/components/SpecialRangeVisualization.tsx similarity index 100% rename from app/features/comp-analyzer/components/SpecialRangeVisualization.tsx rename to apps/web-react/app/features/comp-analyzer/components/SpecialRangeVisualization.tsx diff --git a/app/features/comp-analyzer/components/WeaponCategories.module.css b/apps/web-react/app/features/comp-analyzer/components/WeaponCategories.module.css similarity index 100% rename from app/features/comp-analyzer/components/WeaponCategories.module.css rename to apps/web-react/app/features/comp-analyzer/components/WeaponCategories.module.css diff --git a/app/features/comp-analyzer/components/WeaponCategories.tsx b/apps/web-react/app/features/comp-analyzer/components/WeaponCategories.tsx similarity index 100% rename from app/features/comp-analyzer/components/WeaponCategories.tsx rename to apps/web-react/app/features/comp-analyzer/components/WeaponCategories.tsx diff --git a/app/features/comp-analyzer/components/WeaponGrid.browser.test.tsx b/apps/web-react/app/features/comp-analyzer/components/WeaponGrid.browser.test.tsx similarity index 100% rename from app/features/comp-analyzer/components/WeaponGrid.browser.test.tsx rename to apps/web-react/app/features/comp-analyzer/components/WeaponGrid.browser.test.tsx diff --git a/app/features/comp-analyzer/components/WeaponGrid.module.css b/apps/web-react/app/features/comp-analyzer/components/WeaponGrid.module.css similarity index 100% rename from app/features/comp-analyzer/components/WeaponGrid.module.css rename to apps/web-react/app/features/comp-analyzer/components/WeaponGrid.module.css diff --git a/app/features/comp-analyzer/components/WeaponGrid.tsx b/apps/web-react/app/features/comp-analyzer/components/WeaponGrid.tsx similarity index 100% rename from app/features/comp-analyzer/components/WeaponGrid.tsx rename to apps/web-react/app/features/comp-analyzer/components/WeaponGrid.tsx diff --git a/app/features/comp-analyzer/core/damage-combinations.test.ts b/apps/web-react/app/features/comp-analyzer/core/damage-combinations.test.ts similarity index 100% rename from app/features/comp-analyzer/core/damage-combinations.test.ts rename to apps/web-react/app/features/comp-analyzer/core/damage-combinations.test.ts diff --git a/app/features/comp-analyzer/core/damage-combinations.ts b/apps/web-react/app/features/comp-analyzer/core/damage-combinations.ts similarity index 100% rename from app/features/comp-analyzer/core/damage-combinations.ts rename to apps/web-react/app/features/comp-analyzer/core/damage-combinations.ts diff --git a/app/features/comp-analyzer/core/special-weapon-range.test.ts b/apps/web-react/app/features/comp-analyzer/core/special-weapon-range.test.ts similarity index 100% rename from app/features/comp-analyzer/core/special-weapon-range.test.ts rename to apps/web-react/app/features/comp-analyzer/core/special-weapon-range.test.ts diff --git a/app/features/comp-analyzer/core/special-weapon-range.ts b/apps/web-react/app/features/comp-analyzer/core/special-weapon-range.ts similarity index 100% rename from app/features/comp-analyzer/core/special-weapon-range.ts rename to apps/web-react/app/features/comp-analyzer/core/special-weapon-range.ts diff --git a/app/features/comp-analyzer/core/weapon-range.test.ts b/apps/web-react/app/features/comp-analyzer/core/weapon-range.test.ts similarity index 100% rename from app/features/comp-analyzer/core/weapon-range.test.ts rename to apps/web-react/app/features/comp-analyzer/core/weapon-range.test.ts diff --git a/app/features/comp-analyzer/core/weapon-range.ts b/apps/web-react/app/features/comp-analyzer/core/weapon-range.ts similarity index 100% rename from app/features/comp-analyzer/core/weapon-range.ts rename to apps/web-react/app/features/comp-analyzer/core/weapon-range.ts diff --git a/app/features/comp-analyzer/routes/comp-analyzer.all-ranges.tsx b/apps/web-react/app/features/comp-analyzer/routes/comp-analyzer.all-ranges.tsx similarity index 100% rename from app/features/comp-analyzer/routes/comp-analyzer.all-ranges.tsx rename to apps/web-react/app/features/comp-analyzer/routes/comp-analyzer.all-ranges.tsx diff --git a/app/features/comp-analyzer/routes/comp-analyzer.tsx b/apps/web-react/app/features/comp-analyzer/routes/comp-analyzer.tsx similarity index 100% rename from app/features/comp-analyzer/routes/comp-analyzer.tsx rename to apps/web-react/app/features/comp-analyzer/routes/comp-analyzer.tsx diff --git a/app/features/components-showcase/components-showcase.module.css b/apps/web-react/app/features/components-showcase/components-showcase.module.css similarity index 100% rename from app/features/components-showcase/components-showcase.module.css rename to apps/web-react/app/features/components-showcase/components-showcase.module.css diff --git a/app/features/components-showcase/example-trophy-model.ts b/apps/web-react/app/features/components-showcase/example-trophy-model.ts similarity index 100% rename from app/features/components-showcase/example-trophy-model.ts rename to apps/web-react/app/features/components-showcase/example-trophy-model.ts diff --git a/app/features/components-showcase/form-examples-schema.ts b/apps/web-react/app/features/components-showcase/form-examples-schema.ts similarity index 100% rename from app/features/components-showcase/form-examples-schema.ts rename to apps/web-react/app/features/components-showcase/form-examples-schema.ts diff --git a/app/features/components-showcase/routes/components.tsx b/apps/web-react/app/features/components-showcase/routes/components.tsx similarity index 100% rename from app/features/components-showcase/routes/components.tsx rename to apps/web-react/app/features/components-showcase/routes/components.tsx diff --git a/app/features/core/streams/streams.server.ts b/apps/web-react/app/features/core/streams/streams.server.ts similarity index 100% rename from app/features/core/streams/streams.server.ts rename to apps/web-react/app/features/core/streams/streams.server.ts diff --git a/app/features/friends/FriendRepository.server.test.ts b/apps/web-react/app/features/friends/FriendRepository.server.test.ts similarity index 100% rename from app/features/friends/FriendRepository.server.test.ts rename to apps/web-react/app/features/friends/FriendRepository.server.test.ts diff --git a/app/features/friends/FriendRepository.server.ts b/apps/web-react/app/features/friends/FriendRepository.server.ts similarity index 100% rename from app/features/friends/FriendRepository.server.ts rename to apps/web-react/app/features/friends/FriendRepository.server.ts diff --git a/app/features/friends/actions/friends.server.ts b/apps/web-react/app/features/friends/actions/friends.server.ts similarity index 100% rename from app/features/friends/actions/friends.server.ts rename to apps/web-react/app/features/friends/actions/friends.server.ts diff --git a/app/features/friends/components/FriendMenu.tsx b/apps/web-react/app/features/friends/components/FriendMenu.tsx similarity index 100% rename from app/features/friends/components/FriendMenu.tsx rename to apps/web-react/app/features/friends/components/FriendMenu.tsx diff --git a/app/features/friends/friends-constants.ts b/apps/web-react/app/features/friends/friends-constants.ts similarity index 100% rename from app/features/friends/friends-constants.ts rename to apps/web-react/app/features/friends/friends-constants.ts diff --git a/app/features/friends/friends-schemas.server.ts b/apps/web-react/app/features/friends/friends-schemas.server.ts similarity index 100% rename from app/features/friends/friends-schemas.server.ts rename to apps/web-react/app/features/friends/friends-schemas.server.ts diff --git a/app/features/friends/friends-schemas.ts b/apps/web-react/app/features/friends/friends-schemas.ts similarity index 100% rename from app/features/friends/friends-schemas.ts rename to apps/web-react/app/features/friends/friends-schemas.ts diff --git a/app/features/friends/friends-search-params.test.ts b/apps/web-react/app/features/friends/friends-search-params.test.ts similarity index 100% rename from app/features/friends/friends-search-params.test.ts rename to apps/web-react/app/features/friends/friends-search-params.test.ts diff --git a/app/features/friends/friends-search-params.ts b/apps/web-react/app/features/friends/friends-search-params.ts similarity index 100% rename from app/features/friends/friends-search-params.ts rename to apps/web-react/app/features/friends/friends-search-params.ts diff --git a/app/features/friends/friends-utils.server.ts b/apps/web-react/app/features/friends/friends-utils.server.ts similarity index 100% rename from app/features/friends/friends-utils.server.ts rename to apps/web-react/app/features/friends/friends-utils.server.ts diff --git a/app/features/friends/loaders/friends.server.ts b/apps/web-react/app/features/friends/loaders/friends.server.ts similarity index 100% rename from app/features/friends/loaders/friends.server.ts rename to apps/web-react/app/features/friends/loaders/friends.server.ts diff --git a/app/features/friends/routes/friends.module.css b/apps/web-react/app/features/friends/routes/friends.module.css similarity index 100% rename from app/features/friends/routes/friends.module.css rename to apps/web-react/app/features/friends/routes/friends.module.css diff --git a/app/features/friends/routes/friends.tsx b/apps/web-react/app/features/friends/routes/friends.tsx similarity index 100% rename from app/features/friends/routes/friends.tsx rename to apps/web-react/app/features/friends/routes/friends.tsx diff --git a/app/features/front-page/components/PWAInstallBanner.module.css b/apps/web-react/app/features/front-page/components/PWAInstallBanner.module.css similarity index 100% rename from app/features/front-page/components/PWAInstallBanner.module.css rename to apps/web-react/app/features/front-page/components/PWAInstallBanner.module.css diff --git a/app/features/front-page/components/PWAInstallBanner.tsx b/apps/web-react/app/features/front-page/components/PWAInstallBanner.tsx similarity index 100% rename from app/features/front-page/components/PWAInstallBanner.tsx rename to apps/web-react/app/features/front-page/components/PWAInstallBanner.tsx diff --git a/app/features/front-page/components/SplatoonRotations.module.css b/apps/web-react/app/features/front-page/components/SplatoonRotations.module.css similarity index 100% rename from app/features/front-page/components/SplatoonRotations.module.css rename to apps/web-react/app/features/front-page/components/SplatoonRotations.module.css diff --git a/app/features/front-page/components/SplatoonRotations.tsx b/apps/web-react/app/features/front-page/components/SplatoonRotations.tsx similarity index 100% rename from app/features/front-page/components/SplatoonRotations.tsx rename to apps/web-react/app/features/front-page/components/SplatoonRotations.tsx diff --git a/app/features/front-page/core/Changelog.server.ts b/apps/web-react/app/features/front-page/core/Changelog.server.ts similarity index 100% rename from app/features/front-page/core/Changelog.server.ts rename to apps/web-react/app/features/front-page/core/Changelog.server.ts diff --git a/app/features/front-page/core/ShowcaseTournaments.server.ts b/apps/web-react/app/features/front-page/core/ShowcaseTournaments.server.ts similarity index 100% rename from app/features/front-page/core/ShowcaseTournaments.server.ts rename to apps/web-react/app/features/front-page/core/ShowcaseTournaments.server.ts diff --git a/app/features/front-page/loaders/index.server.ts b/apps/web-react/app/features/front-page/loaders/index.server.ts similarity index 100% rename from app/features/front-page/loaders/index.server.ts rename to apps/web-react/app/features/front-page/loaders/index.server.ts diff --git a/app/features/front-page/routes/index.tsx b/apps/web-react/app/features/front-page/routes/index.tsx similarity index 100% rename from app/features/front-page/routes/index.tsx rename to apps/web-react/app/features/front-page/routes/index.tsx diff --git a/app/features/front-page/routes/patrons-list.ts b/apps/web-react/app/features/front-page/routes/patrons-list.ts similarity index 100% rename from app/features/front-page/routes/patrons-list.ts rename to apps/web-react/app/features/front-page/routes/patrons-list.ts diff --git a/app/features/img-export/components/BuildGraphic.module.css b/apps/web-react/app/features/img-export/components/BuildGraphic.module.css similarity index 100% rename from app/features/img-export/components/BuildGraphic.module.css rename to apps/web-react/app/features/img-export/components/BuildGraphic.module.css diff --git a/app/features/img-export/components/BuildGraphic.tsx b/apps/web-react/app/features/img-export/components/BuildGraphic.tsx similarity index 100% rename from app/features/img-export/components/BuildGraphic.tsx rename to apps/web-react/app/features/img-export/components/BuildGraphic.tsx diff --git a/app/features/img-export/components/Graphic.module.css b/apps/web-react/app/features/img-export/components/Graphic.module.css similarity index 100% rename from app/features/img-export/components/Graphic.module.css rename to apps/web-react/app/features/img-export/components/Graphic.module.css diff --git a/app/features/img-export/components/Graphic.tsx b/apps/web-react/app/features/img-export/components/Graphic.tsx similarity index 100% rename from app/features/img-export/components/Graphic.tsx rename to apps/web-react/app/features/img-export/components/Graphic.tsx diff --git a/app/features/img-export/components/ImageExportDialog.module.css b/apps/web-react/app/features/img-export/components/ImageExportDialog.module.css similarity index 100% rename from app/features/img-export/components/ImageExportDialog.module.css rename to apps/web-react/app/features/img-export/components/ImageExportDialog.module.css diff --git a/app/features/img-export/components/ImageExportDialog.tsx b/apps/web-react/app/features/img-export/components/ImageExportDialog.tsx similarity index 100% rename from app/features/img-export/components/ImageExportDialog.tsx rename to apps/web-react/app/features/img-export/components/ImageExportDialog.tsx diff --git a/app/features/img-export/components/SeasonSummaryGraphic.module.css b/apps/web-react/app/features/img-export/components/SeasonSummaryGraphic.module.css similarity index 100% rename from app/features/img-export/components/SeasonSummaryGraphic.module.css rename to apps/web-react/app/features/img-export/components/SeasonSummaryGraphic.module.css diff --git a/app/features/img-export/components/SeasonSummaryGraphic.tsx b/apps/web-react/app/features/img-export/components/SeasonSummaryGraphic.tsx similarity index 100% rename from app/features/img-export/components/SeasonSummaryGraphic.tsx rename to apps/web-react/app/features/img-export/components/SeasonSummaryGraphic.tsx diff --git a/app/features/img-export/components/TournamentResultsGraphic.module.css b/apps/web-react/app/features/img-export/components/TournamentResultsGraphic.module.css similarity index 100% rename from app/features/img-export/components/TournamentResultsGraphic.module.css rename to apps/web-react/app/features/img-export/components/TournamentResultsGraphic.module.css diff --git a/app/features/img-export/components/TournamentResultsGraphic.tsx b/apps/web-react/app/features/img-export/components/TournamentResultsGraphic.tsx similarity index 100% rename from app/features/img-export/components/TournamentResultsGraphic.tsx rename to apps/web-react/app/features/img-export/components/TournamentResultsGraphic.tsx diff --git a/app/features/img-export/components/TournamentRunGraphic.module.css b/apps/web-react/app/features/img-export/components/TournamentRunGraphic.module.css similarity index 100% rename from app/features/img-export/components/TournamentRunGraphic.module.css rename to apps/web-react/app/features/img-export/components/TournamentRunGraphic.module.css diff --git a/app/features/img-export/components/TournamentRunGraphic.tsx b/apps/web-react/app/features/img-export/components/TournamentRunGraphic.tsx similarity index 100% rename from app/features/img-export/components/TournamentRunGraphic.tsx rename to apps/web-react/app/features/img-export/components/TournamentRunGraphic.tsx diff --git a/app/features/img-export/core/RunComps.test.ts b/apps/web-react/app/features/img-export/core/RunComps.test.ts similarity index 100% rename from app/features/img-export/core/RunComps.test.ts rename to apps/web-react/app/features/img-export/core/RunComps.test.ts diff --git a/app/features/img-export/core/RunComps.ts b/apps/web-react/app/features/img-export/core/RunComps.ts similarity index 100% rename from app/features/img-export/core/RunComps.ts rename to apps/web-react/app/features/img-export/core/RunComps.ts diff --git a/app/features/img-export/core/SeasonSummary.test.ts b/apps/web-react/app/features/img-export/core/SeasonSummary.test.ts similarity index 100% rename from app/features/img-export/core/SeasonSummary.test.ts rename to apps/web-react/app/features/img-export/core/SeasonSummary.test.ts diff --git a/app/features/img-export/core/SeasonSummary.ts b/apps/web-react/app/features/img-export/core/SeasonSummary.ts similarity index 100% rename from app/features/img-export/core/SeasonSummary.ts rename to apps/web-react/app/features/img-export/core/SeasonSummary.ts diff --git a/app/features/img-upload/ImageRepository.server.test.ts b/apps/web-react/app/features/img-upload/ImageRepository.server.test.ts similarity index 100% rename from app/features/img-upload/ImageRepository.server.test.ts rename to apps/web-react/app/features/img-upload/ImageRepository.server.test.ts diff --git a/app/features/img-upload/ImageRepository.server.ts b/apps/web-react/app/features/img-upload/ImageRepository.server.ts similarity index 100% rename from app/features/img-upload/ImageRepository.server.ts rename to apps/web-react/app/features/img-upload/ImageRepository.server.ts diff --git a/app/features/img-upload/actions/upload.admin.server.ts b/apps/web-react/app/features/img-upload/actions/upload.admin.server.ts similarity index 100% rename from app/features/img-upload/actions/upload.admin.server.ts rename to apps/web-react/app/features/img-upload/actions/upload.admin.server.ts diff --git a/app/features/img-upload/image-bytes.server.ts b/apps/web-react/app/features/img-upload/image-bytes.server.ts similarity index 100% rename from app/features/img-upload/image-bytes.server.ts rename to apps/web-react/app/features/img-upload/image-bytes.server.ts diff --git a/app/features/img-upload/image-field.server.ts b/apps/web-react/app/features/img-upload/image-field.server.ts similarity index 100% rename from app/features/img-upload/image-field.server.ts rename to apps/web-react/app/features/img-upload/image-field.server.ts diff --git a/app/features/img-upload/loaders/upload.admin.server.ts b/apps/web-react/app/features/img-upload/loaders/upload.admin.server.ts similarity index 100% rename from app/features/img-upload/loaders/upload.admin.server.ts rename to apps/web-react/app/features/img-upload/loaders/upload.admin.server.ts diff --git a/app/features/img-upload/routes/upload.admin.tsx b/apps/web-react/app/features/img-upload/routes/upload.admin.tsx similarity index 100% rename from app/features/img-upload/routes/upload.admin.tsx rename to apps/web-react/app/features/img-upload/routes/upload.admin.tsx diff --git a/app/features/img-upload/s3.server.ts b/apps/web-react/app/features/img-upload/s3.server.ts similarity index 100% rename from app/features/img-upload/s3.server.ts rename to apps/web-react/app/features/img-upload/s3.server.ts diff --git a/app/features/img-upload/upload-constants.ts b/apps/web-react/app/features/img-upload/upload-constants.ts similarity index 100% rename from app/features/img-upload/upload-constants.ts rename to apps/web-react/app/features/img-upload/upload-constants.ts diff --git a/app/features/img-upload/upload-schemas.ts b/apps/web-react/app/features/img-upload/upload-schemas.ts similarity index 100% rename from app/features/img-upload/upload-schemas.ts rename to apps/web-react/app/features/img-upload/upload-schemas.ts diff --git a/app/features/info/routes/contributions.tsx b/apps/web-react/app/features/info/routes/contributions.tsx similarity index 100% rename from app/features/info/routes/contributions.tsx rename to apps/web-react/app/features/info/routes/contributions.tsx diff --git a/app/features/info/routes/faq.module.css b/apps/web-react/app/features/info/routes/faq.module.css similarity index 100% rename from app/features/info/routes/faq.module.css rename to apps/web-react/app/features/info/routes/faq.module.css diff --git a/app/features/info/routes/faq.tsx b/apps/web-react/app/features/info/routes/faq.tsx similarity index 100% rename from app/features/info/routes/faq.tsx rename to apps/web-react/app/features/info/routes/faq.tsx diff --git a/app/features/info/routes/support.module.css b/apps/web-react/app/features/info/routes/support.module.css similarity index 100% rename from app/features/info/routes/support.module.css rename to apps/web-react/app/features/info/routes/support.module.css diff --git a/app/features/info/routes/support.tsx b/apps/web-react/app/features/info/routes/support.tsx similarity index 100% rename from app/features/info/routes/support.tsx rename to apps/web-react/app/features/info/routes/support.tsx diff --git a/app/features/info/routes/welcome.module.css b/apps/web-react/app/features/info/routes/welcome.module.css similarity index 100% rename from app/features/info/routes/welcome.module.css rename to apps/web-react/app/features/info/routes/welcome.module.css diff --git a/app/features/info/routes/welcome.tsx b/apps/web-react/app/features/info/routes/welcome.tsx similarity index 100% rename from app/features/info/routes/welcome.tsx rename to apps/web-react/app/features/info/routes/welcome.tsx diff --git a/app/features/layout/LayoutDataProvider.tsx b/apps/web-react/app/features/layout/LayoutDataProvider.tsx similarity index 100% rename from app/features/layout/LayoutDataProvider.tsx rename to apps/web-react/app/features/layout/LayoutDataProvider.tsx diff --git a/app/features/layout/core/layout.server.ts b/apps/web-react/app/features/layout/core/layout.server.ts similarity index 100% rename from app/features/layout/core/layout.server.ts rename to apps/web-react/app/features/layout/core/layout.server.ts diff --git a/app/features/layout/core/sidenav-session.server.ts b/apps/web-react/app/features/layout/core/sidenav-session.server.ts similarity index 100% rename from app/features/layout/core/sidenav-session.server.ts rename to apps/web-react/app/features/layout/core/sidenav-session.server.ts diff --git a/app/features/layout/routes/api.layout.ts b/apps/web-react/app/features/layout/routes/api.layout.ts similarity index 100% rename from app/features/layout/routes/api.layout.ts rename to apps/web-react/app/features/layout/routes/api.layout.ts diff --git a/app/features/layout/routes/sidenav.ts b/apps/web-react/app/features/layout/routes/sidenav.ts similarity index 100% rename from app/features/layout/routes/sidenav.ts rename to apps/web-react/app/features/layout/routes/sidenav.ts diff --git a/app/features/leaderboards/LeaderboardRepository.server.test.ts b/apps/web-react/app/features/leaderboards/LeaderboardRepository.server.test.ts similarity index 100% rename from app/features/leaderboards/LeaderboardRepository.server.test.ts rename to apps/web-react/app/features/leaderboards/LeaderboardRepository.server.test.ts diff --git a/app/features/leaderboards/LeaderboardRepository.server.ts b/apps/web-react/app/features/leaderboards/LeaderboardRepository.server.ts similarity index 100% rename from app/features/leaderboards/LeaderboardRepository.server.ts rename to apps/web-react/app/features/leaderboards/LeaderboardRepository.server.ts diff --git a/app/features/leaderboards/actions/leaderboards.server.ts b/apps/web-react/app/features/leaderboards/actions/leaderboards.server.ts similarity index 100% rename from app/features/leaderboards/actions/leaderboards.server.ts rename to apps/web-react/app/features/leaderboards/actions/leaderboards.server.ts diff --git a/app/features/leaderboards/components/TopTenPlayer.module.css b/apps/web-react/app/features/leaderboards/components/TopTenPlayer.module.css similarity index 100% rename from app/features/leaderboards/components/TopTenPlayer.module.css rename to apps/web-react/app/features/leaderboards/components/TopTenPlayer.module.css diff --git a/app/features/leaderboards/components/TopTenPlayer.tsx b/apps/web-react/app/features/leaderboards/components/TopTenPlayer.tsx similarity index 100% rename from app/features/leaderboards/components/TopTenPlayer.tsx rename to apps/web-react/app/features/leaderboards/components/TopTenPlayer.tsx diff --git a/app/features/leaderboards/core/leaderboards.server.test.ts b/apps/web-react/app/features/leaderboards/core/leaderboards.server.test.ts similarity index 100% rename from app/features/leaderboards/core/leaderboards.server.test.ts rename to apps/web-react/app/features/leaderboards/core/leaderboards.server.test.ts diff --git a/app/features/leaderboards/core/leaderboards.server.ts b/apps/web-react/app/features/leaderboards/core/leaderboards.server.ts similarity index 100% rename from app/features/leaderboards/core/leaderboards.server.ts rename to apps/web-react/app/features/leaderboards/core/leaderboards.server.ts diff --git a/app/features/leaderboards/leaderboards-constants.ts b/apps/web-react/app/features/leaderboards/leaderboards-constants.ts similarity index 100% rename from app/features/leaderboards/leaderboards-constants.ts rename to apps/web-react/app/features/leaderboards/leaderboards-constants.ts diff --git a/app/features/leaderboards/leaderboards-schemas.ts b/apps/web-react/app/features/leaderboards/leaderboards-schemas.ts similarity index 100% rename from app/features/leaderboards/leaderboards-schemas.ts rename to apps/web-react/app/features/leaderboards/leaderboards-schemas.ts diff --git a/app/features/leaderboards/leaderboards-search-params.test.ts b/apps/web-react/app/features/leaderboards/leaderboards-search-params.test.ts similarity index 100% rename from app/features/leaderboards/leaderboards-search-params.test.ts rename to apps/web-react/app/features/leaderboards/leaderboards-search-params.test.ts diff --git a/app/features/leaderboards/leaderboards-search-params.ts b/apps/web-react/app/features/leaderboards/leaderboards-search-params.ts similarity index 100% rename from app/features/leaderboards/leaderboards-search-params.ts rename to apps/web-react/app/features/leaderboards/leaderboards-search-params.ts diff --git a/app/features/leaderboards/leaderboards-urls.test.ts b/apps/web-react/app/features/leaderboards/leaderboards-urls.test.ts similarity index 100% rename from app/features/leaderboards/leaderboards-urls.test.ts rename to apps/web-react/app/features/leaderboards/leaderboards-urls.test.ts diff --git a/app/features/leaderboards/leaderboards-urls.ts b/apps/web-react/app/features/leaderboards/leaderboards-urls.ts similarity index 100% rename from app/features/leaderboards/leaderboards-urls.ts rename to apps/web-react/app/features/leaderboards/leaderboards-urls.ts diff --git a/app/features/leaderboards/leaderboards-utils.ts b/apps/web-react/app/features/leaderboards/leaderboards-utils.ts similarity index 100% rename from app/features/leaderboards/leaderboards-utils.ts rename to apps/web-react/app/features/leaderboards/leaderboards-utils.ts diff --git a/app/features/leaderboards/loaders/leaderboards.server.ts b/apps/web-react/app/features/leaderboards/loaders/leaderboards.server.ts similarity index 100% rename from app/features/leaderboards/loaders/leaderboards.server.ts rename to apps/web-react/app/features/leaderboards/loaders/leaderboards.server.ts diff --git a/app/features/leaderboards/routes/leaderboards.browser.test.tsx b/apps/web-react/app/features/leaderboards/routes/leaderboards.browser.test.tsx similarity index 100% rename from app/features/leaderboards/routes/leaderboards.browser.test.tsx rename to apps/web-react/app/features/leaderboards/routes/leaderboards.browser.test.tsx diff --git a/app/features/leaderboards/routes/leaderboards.module.css b/apps/web-react/app/features/leaderboards/routes/leaderboards.module.css similarity index 100% rename from app/features/leaderboards/routes/leaderboards.module.css rename to apps/web-react/app/features/leaderboards/routes/leaderboards.module.css diff --git a/app/features/leaderboards/routes/leaderboards.tsx b/apps/web-react/app/features/leaderboards/routes/leaderboards.tsx similarity index 100% rename from app/features/leaderboards/routes/leaderboards.tsx rename to apps/web-react/app/features/leaderboards/routes/leaderboards.tsx diff --git a/app/features/leaderboards/top-ten.json b/apps/web-react/app/features/leaderboards/top-ten.json similarity index 100% rename from app/features/leaderboards/top-ten.json rename to apps/web-react/app/features/leaderboards/top-ten.json diff --git a/app/features/lfg/LFGRepository.server.test.ts b/apps/web-react/app/features/lfg/LFGRepository.server.test.ts similarity index 100% rename from app/features/lfg/LFGRepository.server.test.ts rename to apps/web-react/app/features/lfg/LFGRepository.server.test.ts diff --git a/app/features/lfg/LFGRepository.server.ts b/apps/web-react/app/features/lfg/LFGRepository.server.ts similarity index 100% rename from app/features/lfg/LFGRepository.server.ts rename to apps/web-react/app/features/lfg/LFGRepository.server.ts diff --git a/app/features/lfg/actions/lfg.new.server.ts b/apps/web-react/app/features/lfg/actions/lfg.new.server.ts similarity index 100% rename from app/features/lfg/actions/lfg.new.server.ts rename to apps/web-react/app/features/lfg/actions/lfg.new.server.ts diff --git a/app/features/lfg/actions/lfg.server.ts b/apps/web-react/app/features/lfg/actions/lfg.server.ts similarity index 100% rename from app/features/lfg/actions/lfg.server.ts rename to apps/web-react/app/features/lfg/actions/lfg.server.ts diff --git a/app/features/lfg/components/LFGPost.module.css b/apps/web-react/app/features/lfg/components/LFGPost.module.css similarity index 100% rename from app/features/lfg/components/LFGPost.module.css rename to apps/web-react/app/features/lfg/components/LFGPost.module.css diff --git a/app/features/lfg/components/LFGPost.tsx b/apps/web-react/app/features/lfg/components/LFGPost.tsx similarity index 100% rename from app/features/lfg/components/LFGPost.tsx rename to apps/web-react/app/features/lfg/components/LFGPost.tsx diff --git a/app/features/lfg/core/filtering.test.ts b/apps/web-react/app/features/lfg/core/filtering.test.ts similarity index 100% rename from app/features/lfg/core/filtering.test.ts rename to apps/web-react/app/features/lfg/core/filtering.test.ts diff --git a/app/features/lfg/core/filtering.ts b/apps/web-react/app/features/lfg/core/filtering.ts similarity index 100% rename from app/features/lfg/core/filtering.ts rename to apps/web-react/app/features/lfg/core/filtering.ts diff --git a/app/features/lfg/core/timezone.test.ts b/apps/web-react/app/features/lfg/core/timezone.test.ts similarity index 100% rename from app/features/lfg/core/timezone.test.ts rename to apps/web-react/app/features/lfg/core/timezone.test.ts diff --git a/app/features/lfg/core/timezone.ts b/apps/web-react/app/features/lfg/core/timezone.ts similarity index 100% rename from app/features/lfg/core/timezone.ts rename to apps/web-react/app/features/lfg/core/timezone.ts diff --git a/app/features/lfg/lfg-constants.ts b/apps/web-react/app/features/lfg/lfg-constants.ts similarity index 100% rename from app/features/lfg/lfg-constants.ts rename to apps/web-react/app/features/lfg/lfg-constants.ts diff --git a/app/features/lfg/lfg-schemas.ts b/apps/web-react/app/features/lfg/lfg-schemas.ts similarity index 100% rename from app/features/lfg/lfg-schemas.ts rename to apps/web-react/app/features/lfg/lfg-schemas.ts diff --git a/app/features/lfg/lfg-search-params.test.ts b/apps/web-react/app/features/lfg/lfg-search-params.test.ts similarity index 100% rename from app/features/lfg/lfg-search-params.test.ts rename to apps/web-react/app/features/lfg/lfg-search-params.test.ts diff --git a/app/features/lfg/lfg-search-params.ts b/apps/web-react/app/features/lfg/lfg-search-params.ts similarity index 100% rename from app/features/lfg/lfg-search-params.ts rename to apps/web-react/app/features/lfg/lfg-search-params.ts diff --git a/app/features/lfg/lfg-types.ts b/apps/web-react/app/features/lfg/lfg-types.ts similarity index 100% rename from app/features/lfg/lfg-types.ts rename to apps/web-react/app/features/lfg/lfg-types.ts diff --git a/app/features/lfg/lfg-urls.ts b/apps/web-react/app/features/lfg/lfg-urls.ts similarity index 100% rename from app/features/lfg/lfg-urls.ts rename to apps/web-react/app/features/lfg/lfg-urls.ts diff --git a/app/features/lfg/loaders/lfg.new.server.ts b/apps/web-react/app/features/lfg/loaders/lfg.new.server.ts similarity index 100% rename from app/features/lfg/loaders/lfg.new.server.ts rename to apps/web-react/app/features/lfg/loaders/lfg.new.server.ts diff --git a/app/features/lfg/loaders/lfg.server.test.ts b/apps/web-react/app/features/lfg/loaders/lfg.server.test.ts similarity index 100% rename from app/features/lfg/loaders/lfg.server.test.ts rename to apps/web-react/app/features/lfg/loaders/lfg.server.test.ts diff --git a/app/features/lfg/loaders/lfg.server.ts b/apps/web-react/app/features/lfg/loaders/lfg.server.ts similarity index 100% rename from app/features/lfg/loaders/lfg.server.ts rename to apps/web-react/app/features/lfg/loaders/lfg.server.ts diff --git a/app/features/lfg/routes/lfg.module.css b/apps/web-react/app/features/lfg/routes/lfg.module.css similarity index 100% rename from app/features/lfg/routes/lfg.module.css rename to apps/web-react/app/features/lfg/routes/lfg.module.css diff --git a/app/features/lfg/routes/lfg.new.tsx b/apps/web-react/app/features/lfg/routes/lfg.new.tsx similarity index 100% rename from app/features/lfg/routes/lfg.new.tsx rename to apps/web-react/app/features/lfg/routes/lfg.new.tsx diff --git a/app/features/lfg/routes/lfg.tsx b/apps/web-react/app/features/lfg/routes/lfg.tsx similarity index 100% rename from app/features/lfg/routes/lfg.tsx rename to apps/web-react/app/features/lfg/routes/lfg.tsx diff --git a/app/features/links/links.json b/apps/web-react/app/features/links/links.json similarity index 100% rename from app/features/links/links.json rename to apps/web-react/app/features/links/links.json diff --git a/app/features/links/routes/links.module.css b/apps/web-react/app/features/links/routes/links.module.css similarity index 100% rename from app/features/links/routes/links.module.css rename to apps/web-react/app/features/links/routes/links.module.css diff --git a/app/features/links/routes/links.tsx b/apps/web-react/app/features/links/routes/links.tsx similarity index 100% rename from app/features/links/routes/links.tsx rename to apps/web-react/app/features/links/routes/links.tsx diff --git a/app/features/live-streams/LiveStreamRepository.server.ts b/apps/web-react/app/features/live-streams/LiveStreamRepository.server.ts similarity index 100% rename from app/features/live-streams/LiveStreamRepository.server.ts rename to apps/web-react/app/features/live-streams/LiveStreamRepository.server.ts diff --git a/app/features/map-list-generator/core/MapList.test.ts b/apps/web-react/app/features/map-list-generator/core/MapList.test.ts similarity index 100% rename from app/features/map-list-generator/core/MapList.test.ts rename to apps/web-react/app/features/map-list-generator/core/MapList.test.ts diff --git a/app/features/map-list-generator/core/MapList.ts b/apps/web-react/app/features/map-list-generator/core/MapList.ts similarity index 100% rename from app/features/map-list-generator/core/MapList.ts rename to apps/web-react/app/features/map-list-generator/core/MapList.ts diff --git a/app/features/map-list-generator/core/map-pool-serializer/serializer.test.ts b/apps/web-react/app/features/map-list-generator/core/map-pool-serializer/serializer.test.ts similarity index 100% rename from app/features/map-list-generator/core/map-pool-serializer/serializer.test.ts rename to apps/web-react/app/features/map-list-generator/core/map-pool-serializer/serializer.test.ts diff --git a/app/features/map-list-generator/core/map-pool-serializer/serializer.ts b/apps/web-react/app/features/map-list-generator/core/map-pool-serializer/serializer.ts similarity index 100% rename from app/features/map-list-generator/core/map-pool-serializer/serializer.ts rename to apps/web-react/app/features/map-list-generator/core/map-pool-serializer/serializer.ts diff --git a/app/features/map-list-generator/core/map-pool-serializer/types.ts b/apps/web-react/app/features/map-list-generator/core/map-pool-serializer/types.ts similarity index 100% rename from app/features/map-list-generator/core/map-pool-serializer/types.ts rename to apps/web-react/app/features/map-list-generator/core/map-pool-serializer/types.ts diff --git a/app/features/map-list-generator/core/map-pool.ts b/apps/web-react/app/features/map-list-generator/core/map-pool.ts similarity index 100% rename from app/features/map-list-generator/core/map-pool.ts rename to apps/web-react/app/features/map-list-generator/core/map-pool.ts diff --git a/app/features/map-list-generator/map-list-generator-search-params.test.ts b/apps/web-react/app/features/map-list-generator/map-list-generator-search-params.test.ts similarity index 100% rename from app/features/map-list-generator/map-list-generator-search-params.test.ts rename to apps/web-react/app/features/map-list-generator/map-list-generator-search-params.test.ts diff --git a/app/features/map-list-generator/map-list-generator-search-params.ts b/apps/web-react/app/features/map-list-generator/map-list-generator-search-params.ts similarity index 100% rename from app/features/map-list-generator/map-list-generator-search-params.ts rename to apps/web-react/app/features/map-list-generator/map-list-generator-search-params.ts diff --git a/app/features/map-list-generator/map-list-generator-urls.ts b/apps/web-react/app/features/map-list-generator/map-list-generator-urls.ts similarity index 100% rename from app/features/map-list-generator/map-list-generator-urls.ts rename to apps/web-react/app/features/map-list-generator/map-list-generator-urls.ts diff --git a/app/features/map-list-generator/routes/maps.module.css b/apps/web-react/app/features/map-list-generator/routes/maps.module.css similarity index 100% rename from app/features/map-list-generator/routes/maps.module.css rename to apps/web-react/app/features/map-list-generator/routes/maps.module.css diff --git a/app/features/map-list-generator/routes/maps.tsx b/apps/web-react/app/features/map-list-generator/routes/maps.tsx similarity index 100% rename from app/features/map-list-generator/routes/maps.tsx rename to apps/web-react/app/features/map-list-generator/routes/maps.tsx diff --git a/app/features/map-planner/components/Planner.module.css b/apps/web-react/app/features/map-planner/components/Planner.module.css similarity index 100% rename from app/features/map-planner/components/Planner.module.css rename to apps/web-react/app/features/map-planner/components/Planner.module.css diff --git a/app/features/map-planner/components/Planner.tsx b/apps/web-react/app/features/map-planner/components/Planner.tsx similarity index 100% rename from app/features/map-planner/components/Planner.tsx rename to apps/web-react/app/features/map-planner/components/Planner.tsx diff --git a/app/features/map-planner/plans-global.css b/apps/web-react/app/features/map-planner/plans-global.css similarity index 100% rename from app/features/map-planner/plans-global.css rename to apps/web-react/app/features/map-planner/plans-global.css diff --git a/app/features/map-planner/plans-types.ts b/apps/web-react/app/features/map-planner/plans-types.ts similarity index 100% rename from app/features/map-planner/plans-types.ts rename to apps/web-react/app/features/map-planner/plans-types.ts diff --git a/app/features/map-planner/routes/plans.tsx b/apps/web-react/app/features/map-planner/routes/plans.tsx similarity index 100% rename from app/features/map-planner/routes/plans.tsx rename to apps/web-react/app/features/map-planner/routes/plans.tsx diff --git a/app/features/match-page-test/routes/match-page-test.tsx b/apps/web-react/app/features/match-page-test/routes/match-page-test.tsx similarity index 100% rename from app/features/match-page-test/routes/match-page-test.tsx rename to apps/web-react/app/features/match-page-test/routes/match-page-test.tsx diff --git a/app/features/match-profile/MatchProfileRepository.server.test.ts b/apps/web-react/app/features/match-profile/MatchProfileRepository.server.test.ts similarity index 100% rename from app/features/match-profile/MatchProfileRepository.server.test.ts rename to apps/web-react/app/features/match-profile/MatchProfileRepository.server.test.ts diff --git a/app/features/match-profile/MatchProfileRepository.server.ts b/apps/web-react/app/features/match-profile/MatchProfileRepository.server.ts similarity index 100% rename from app/features/match-profile/MatchProfileRepository.server.ts rename to apps/web-react/app/features/match-profile/MatchProfileRepository.server.ts diff --git a/app/features/match-profile/banned-maps.ts b/apps/web-react/app/features/match-profile/banned-maps.ts similarity index 100% rename from app/features/match-profile/banned-maps.ts rename to apps/web-react/app/features/match-profile/banned-maps.ts diff --git a/app/features/match-profile/match-profile-constants.ts b/apps/web-react/app/features/match-profile/match-profile-constants.ts similarity index 100% rename from app/features/match-profile/match-profile-constants.ts rename to apps/web-react/app/features/match-profile/match-profile-constants.ts diff --git a/app/features/match-profile/routes/q.settings.tsx b/apps/web-react/app/features/match-profile/routes/q.settings.tsx similarity index 100% rename from app/features/match-profile/routes/q.settings.tsx rename to apps/web-react/app/features/match-profile/routes/q.settings.tsx diff --git a/app/features/mmr/SkillRepository.server.ts b/apps/web-react/app/features/mmr/SkillRepository.server.ts similarity index 100% rename from app/features/mmr/SkillRepository.server.ts rename to apps/web-react/app/features/mmr/SkillRepository.server.ts diff --git a/app/features/mmr/components/SeasonSelect.tsx b/apps/web-react/app/features/mmr/components/SeasonSelect.tsx similarity index 100% rename from app/features/mmr/components/SeasonSelect.tsx rename to apps/web-react/app/features/mmr/components/SeasonSelect.tsx diff --git a/app/features/mmr/core/Seasons.test.ts b/apps/web-react/app/features/mmr/core/Seasons.test.ts similarity index 100% rename from app/features/mmr/core/Seasons.test.ts rename to apps/web-react/app/features/mmr/core/Seasons.test.ts diff --git a/app/features/mmr/core/Seasons.ts b/apps/web-react/app/features/mmr/core/Seasons.ts similarity index 100% rename from app/features/mmr/core/Seasons.ts rename to apps/web-react/app/features/mmr/core/Seasons.ts diff --git a/app/features/mmr/mmr-constants.ts b/apps/web-react/app/features/mmr/mmr-constants.ts similarity index 100% rename from app/features/mmr/mmr-constants.ts rename to apps/web-react/app/features/mmr/mmr-constants.ts diff --git a/app/features/mmr/mmr-utils.server.ts b/apps/web-react/app/features/mmr/mmr-utils.server.ts similarity index 100% rename from app/features/mmr/mmr-utils.server.ts rename to apps/web-react/app/features/mmr/mmr-utils.server.ts diff --git a/app/features/mmr/mmr-utils.ts b/apps/web-react/app/features/mmr/mmr-utils.ts similarity index 100% rename from app/features/mmr/mmr-utils.ts rename to apps/web-react/app/features/mmr/mmr-utils.ts diff --git a/app/features/mmr/tiered.server.ts b/apps/web-react/app/features/mmr/tiered.server.ts similarity index 100% rename from app/features/mmr/tiered.server.ts rename to apps/web-react/app/features/mmr/tiered.server.ts diff --git a/app/features/notifications/NotificationRepository.server.test.ts b/apps/web-react/app/features/notifications/NotificationRepository.server.test.ts similarity index 100% rename from app/features/notifications/NotificationRepository.server.test.ts rename to apps/web-react/app/features/notifications/NotificationRepository.server.test.ts diff --git a/app/features/notifications/NotificationRepository.server.ts b/apps/web-react/app/features/notifications/NotificationRepository.server.ts similarity index 100% rename from app/features/notifications/NotificationRepository.server.ts rename to apps/web-react/app/features/notifications/NotificationRepository.server.ts diff --git a/app/features/notifications/NotificationsProvider.tsx b/apps/web-react/app/features/notifications/NotificationsProvider.tsx similarity index 100% rename from app/features/notifications/NotificationsProvider.tsx rename to apps/web-react/app/features/notifications/NotificationsProvider.tsx diff --git a/app/features/notifications/components/NotificationList.module.css b/apps/web-react/app/features/notifications/components/NotificationList.module.css similarity index 100% rename from app/features/notifications/components/NotificationList.module.css rename to apps/web-react/app/features/notifications/components/NotificationList.module.css diff --git a/app/features/notifications/components/NotificationList.tsx b/apps/web-react/app/features/notifications/components/NotificationList.tsx similarity index 100% rename from app/features/notifications/components/NotificationList.tsx rename to apps/web-react/app/features/notifications/components/NotificationList.tsx diff --git a/app/features/notifications/core/notify.server.test.ts b/apps/web-react/app/features/notifications/core/notify.server.test.ts similarity index 100% rename from app/features/notifications/core/notify.server.test.ts rename to apps/web-react/app/features/notifications/core/notify.server.test.ts diff --git a/app/features/notifications/core/notify.server.ts b/apps/web-react/app/features/notifications/core/notify.server.ts similarity index 100% rename from app/features/notifications/core/notify.server.ts rename to apps/web-react/app/features/notifications/core/notify.server.ts diff --git a/app/features/notifications/core/pushSubscription.ts b/apps/web-react/app/features/notifications/core/pushSubscription.ts similarity index 100% rename from app/features/notifications/core/pushSubscription.ts rename to apps/web-react/app/features/notifications/core/pushSubscription.ts diff --git a/app/features/notifications/core/resolve.server.ts b/apps/web-react/app/features/notifications/core/resolve.server.ts similarity index 100% rename from app/features/notifications/core/resolve.server.ts rename to apps/web-react/app/features/notifications/core/resolve.server.ts diff --git a/app/features/notifications/core/webPush.server.ts b/apps/web-react/app/features/notifications/core/webPush.server.ts similarity index 100% rename from app/features/notifications/core/webPush.server.ts rename to apps/web-react/app/features/notifications/core/webPush.server.ts diff --git a/app/features/notifications/loaders/notifications.server.ts b/apps/web-react/app/features/notifications/loaders/notifications.server.ts similarity index 100% rename from app/features/notifications/loaders/notifications.server.ts rename to apps/web-react/app/features/notifications/loaders/notifications.server.ts diff --git a/app/features/notifications/notifications-contants.ts b/apps/web-react/app/features/notifications/notifications-contants.ts similarity index 100% rename from app/features/notifications/notifications-contants.ts rename to apps/web-react/app/features/notifications/notifications-contants.ts diff --git a/app/features/notifications/notifications-hooks.browser.test.tsx b/apps/web-react/app/features/notifications/notifications-hooks.browser.test.tsx similarity index 100% rename from app/features/notifications/notifications-hooks.browser.test.tsx rename to apps/web-react/app/features/notifications/notifications-hooks.browser.test.tsx diff --git a/app/features/notifications/notifications-hooks.ts b/apps/web-react/app/features/notifications/notifications-hooks.ts similarity index 100% rename from app/features/notifications/notifications-hooks.ts rename to apps/web-react/app/features/notifications/notifications-hooks.ts diff --git a/app/features/notifications/notifications-schemas.ts b/apps/web-react/app/features/notifications/notifications-schemas.ts similarity index 100% rename from app/features/notifications/notifications-schemas.ts rename to apps/web-react/app/features/notifications/notifications-schemas.ts diff --git a/app/features/notifications/notifications-types.ts b/apps/web-react/app/features/notifications/notifications-types.ts similarity index 100% rename from app/features/notifications/notifications-types.ts rename to apps/web-react/app/features/notifications/notifications-types.ts diff --git a/app/features/notifications/notifications-utils.ts b/apps/web-react/app/features/notifications/notifications-utils.ts similarity index 100% rename from app/features/notifications/notifications-utils.ts rename to apps/web-react/app/features/notifications/notifications-utils.ts diff --git a/app/features/notifications/routes/api.notifications.ts b/apps/web-react/app/features/notifications/routes/api.notifications.ts similarity index 100% rename from app/features/notifications/routes/api.notifications.ts rename to apps/web-react/app/features/notifications/routes/api.notifications.ts diff --git a/app/features/notifications/routes/notifications.module.css b/apps/web-react/app/features/notifications/routes/notifications.module.css similarity index 100% rename from app/features/notifications/routes/notifications.module.css rename to apps/web-react/app/features/notifications/routes/notifications.module.css diff --git a/app/features/notifications/routes/notifications.seen.ts b/apps/web-react/app/features/notifications/routes/notifications.seen.ts similarity index 100% rename from app/features/notifications/routes/notifications.seen.ts rename to apps/web-react/app/features/notifications/routes/notifications.seen.ts diff --git a/app/features/notifications/routes/notifications.subscribe.ts b/apps/web-react/app/features/notifications/routes/notifications.subscribe.ts similarity index 100% rename from app/features/notifications/routes/notifications.subscribe.ts rename to apps/web-react/app/features/notifications/routes/notifications.subscribe.ts diff --git a/app/features/notifications/routes/notifications.tsx b/apps/web-react/app/features/notifications/routes/notifications.tsx similarity index 100% rename from app/features/notifications/routes/notifications.tsx rename to apps/web-react/app/features/notifications/routes/notifications.tsx diff --git a/app/features/object-damage-calculator/calculator-constants.ts b/apps/web-react/app/features/object-damage-calculator/calculator-constants.ts similarity index 100% rename from app/features/object-damage-calculator/calculator-constants.ts rename to apps/web-react/app/features/object-damage-calculator/calculator-constants.ts diff --git a/app/features/object-damage-calculator/calculator-hooks.ts b/apps/web-react/app/features/object-damage-calculator/calculator-hooks.ts similarity index 100% rename from app/features/object-damage-calculator/calculator-hooks.ts rename to apps/web-react/app/features/object-damage-calculator/calculator-hooks.ts diff --git a/app/features/object-damage-calculator/calculator-search-params.test.ts b/apps/web-react/app/features/object-damage-calculator/calculator-search-params.test.ts similarity index 100% rename from app/features/object-damage-calculator/calculator-search-params.test.ts rename to apps/web-react/app/features/object-damage-calculator/calculator-search-params.test.ts diff --git a/app/features/object-damage-calculator/calculator-search-params.ts b/apps/web-react/app/features/object-damage-calculator/calculator-search-params.ts similarity index 100% rename from app/features/object-damage-calculator/calculator-search-params.ts rename to apps/web-react/app/features/object-damage-calculator/calculator-search-params.ts diff --git a/app/features/object-damage-calculator/calculator-types.ts b/apps/web-react/app/features/object-damage-calculator/calculator-types.ts similarity index 100% rename from app/features/object-damage-calculator/calculator-types.ts rename to apps/web-react/app/features/object-damage-calculator/calculator-types.ts diff --git a/app/features/object-damage-calculator/calculator-urls.ts b/apps/web-react/app/features/object-damage-calculator/calculator-urls.ts similarity index 100% rename from app/features/object-damage-calculator/calculator-urls.ts rename to apps/web-react/app/features/object-damage-calculator/calculator-urls.ts diff --git a/app/features/object-damage-calculator/core/objectDamage.test.ts b/apps/web-react/app/features/object-damage-calculator/core/objectDamage.test.ts similarity index 100% rename from app/features/object-damage-calculator/core/objectDamage.test.ts rename to apps/web-react/app/features/object-damage-calculator/core/objectDamage.test.ts diff --git a/app/features/object-damage-calculator/core/objectDamage.ts b/apps/web-react/app/features/object-damage-calculator/core/objectDamage.ts similarity index 100% rename from app/features/object-damage-calculator/core/objectDamage.ts rename to apps/web-react/app/features/object-damage-calculator/core/objectDamage.ts diff --git a/app/features/object-damage-calculator/core/objectHitPoints.ts b/apps/web-react/app/features/object-damage-calculator/core/objectHitPoints.ts similarity index 100% rename from app/features/object-damage-calculator/core/objectHitPoints.ts rename to apps/web-react/app/features/object-damage-calculator/core/objectHitPoints.ts diff --git a/app/features/object-damage-calculator/data/object-dmg.json b/apps/web-react/app/features/object-damage-calculator/data/object-dmg.json similarity index 100% rename from app/features/object-damage-calculator/data/object-dmg.json rename to apps/web-react/app/features/object-damage-calculator/data/object-dmg.json diff --git a/app/features/object-damage-calculator/routes/object-damage-calculator.module.css b/apps/web-react/app/features/object-damage-calculator/routes/object-damage-calculator.module.css similarity index 100% rename from app/features/object-damage-calculator/routes/object-damage-calculator.module.css rename to apps/web-react/app/features/object-damage-calculator/routes/object-damage-calculator.module.css diff --git a/app/features/object-damage-calculator/routes/object-damage-calculator.tsx b/apps/web-react/app/features/object-damage-calculator/routes/object-damage-calculator.tsx similarity index 100% rename from app/features/object-damage-calculator/routes/object-damage-calculator.tsx rename to apps/web-react/app/features/object-damage-calculator/routes/object-damage-calculator.tsx diff --git a/app/features/params/components/ParamComparisonDialog.module.css b/apps/web-react/app/features/params/components/ParamComparisonDialog.module.css similarity index 100% rename from app/features/params/components/ParamComparisonDialog.module.css rename to apps/web-react/app/features/params/components/ParamComparisonDialog.module.css diff --git a/app/features/params/components/ParamComparisonDialog.tsx b/apps/web-react/app/features/params/components/ParamComparisonDialog.tsx similarity index 100% rename from app/features/params/components/ParamComparisonDialog.tsx rename to apps/web-react/app/features/params/components/ParamComparisonDialog.tsx diff --git a/app/features/params/components/WeaponKits.module.css b/apps/web-react/app/features/params/components/WeaponKits.module.css similarity index 100% rename from app/features/params/components/WeaponKits.module.css rename to apps/web-react/app/features/params/components/WeaponKits.module.css diff --git a/app/features/params/components/WeaponKits.tsx b/apps/web-react/app/features/params/components/WeaponKits.tsx similarity index 100% rename from app/features/params/components/WeaponKits.tsx rename to apps/web-react/app/features/params/components/WeaponKits.tsx diff --git a/app/features/params/components/WeaponParamsTable.module.css b/apps/web-react/app/features/params/components/WeaponParamsTable.module.css similarity index 100% rename from app/features/params/components/WeaponParamsTable.module.css rename to apps/web-react/app/features/params/components/WeaponParamsTable.module.css diff --git a/app/features/params/components/WeaponParamsTable.tsx b/apps/web-react/app/features/params/components/WeaponParamsTable.tsx similarity index 100% rename from app/features/params/components/WeaponParamsTable.tsx rename to apps/web-react/app/features/params/components/WeaponParamsTable.tsx diff --git a/app/features/params/components/WeaponParamsView.module.css b/apps/web-react/app/features/params/components/WeaponParamsView.module.css similarity index 100% rename from app/features/params/components/WeaponParamsView.module.css rename to apps/web-react/app/features/params/components/WeaponParamsView.module.css diff --git a/app/features/params/components/WeaponParamsView.tsx b/apps/web-react/app/features/params/components/WeaponParamsView.tsx similarity index 100% rename from app/features/params/components/WeaponParamsView.tsx rename to apps/web-react/app/features/params/components/WeaponParamsView.tsx diff --git a/app/features/params/components/WeaponPatchHistory.module.css b/apps/web-react/app/features/params/components/WeaponPatchHistory.module.css similarity index 100% rename from app/features/params/components/WeaponPatchHistory.module.css rename to apps/web-react/app/features/params/components/WeaponPatchHistory.module.css diff --git a/app/features/params/components/WeaponPatchHistory.tsx b/apps/web-react/app/features/params/components/WeaponPatchHistory.tsx similarity index 100% rename from app/features/params/components/WeaponPatchHistory.tsx rename to apps/web-react/app/features/params/components/WeaponPatchHistory.tsx diff --git a/app/features/params/core/WeaponParams.test.ts b/apps/web-react/app/features/params/core/WeaponParams.test.ts similarity index 100% rename from app/features/params/core/WeaponParams.test.ts rename to apps/web-react/app/features/params/core/WeaponParams.test.ts diff --git a/app/features/params/core/WeaponParams.ts b/apps/web-react/app/features/params/core/WeaponParams.ts similarity index 100% rename from app/features/params/core/WeaponParams.ts rename to apps/web-react/app/features/params/core/WeaponParams.ts diff --git a/app/features/params/core/param-directions.ts b/apps/web-react/app/features/params/core/param-directions.ts similarity index 100% rename from app/features/params/core/param-directions.ts rename to apps/web-react/app/features/params/core/param-directions.ts diff --git a/app/features/params/core/param-explanations.ts b/apps/web-react/app/features/params/core/param-explanations.ts similarity index 100% rename from app/features/params/core/param-explanations.ts rename to apps/web-react/app/features/params/core/param-explanations.ts diff --git a/app/features/params/data/all-version-special-params.json b/apps/web-react/app/features/params/data/all-version-special-params.json similarity index 100% rename from app/features/params/data/all-version-special-params.json rename to apps/web-react/app/features/params/data/all-version-special-params.json diff --git a/app/features/params/data/all-version-sub-params.json b/apps/web-react/app/features/params/data/all-version-sub-params.json similarity index 100% rename from app/features/params/data/all-version-sub-params.json rename to apps/web-react/app/features/params/data/all-version-sub-params.json diff --git a/app/features/params/data/all-version-weapon-params.json b/apps/web-react/app/features/params/data/all-version-weapon-params.json similarity index 100% rename from app/features/params/data/all-version-weapon-params.json rename to apps/web-react/app/features/params/data/all-version-weapon-params.json diff --git a/app/features/params/data/damage-rate-history.json b/apps/web-react/app/features/params/data/damage-rate-history.json similarity index 100% rename from app/features/params/data/damage-rate-history.json rename to apps/web-react/app/features/params/data/damage-rate-history.json diff --git a/app/features/params/loaders/params.$slug.server.ts b/apps/web-react/app/features/params/loaders/params.$slug.server.ts similarity index 100% rename from app/features/params/loaders/params.$slug.server.ts rename to apps/web-react/app/features/params/loaders/params.$slug.server.ts diff --git a/app/features/params/params-search-params.test.ts b/apps/web-react/app/features/params/params-search-params.test.ts similarity index 100% rename from app/features/params/params-search-params.test.ts rename to apps/web-react/app/features/params/params-search-params.test.ts diff --git a/app/features/params/params-search-params.ts b/apps/web-react/app/features/params/params-search-params.ts similarity index 100% rename from app/features/params/params-search-params.ts rename to apps/web-react/app/features/params/params-search-params.ts diff --git a/app/features/params/routes/params.$slug.tsx b/apps/web-react/app/features/params/routes/params.$slug.tsx similarity index 100% rename from app/features/params/routes/params.$slug.tsx rename to apps/web-react/app/features/params/routes/params.$slug.tsx diff --git a/app/features/params/weapon-params-constants.ts b/apps/web-react/app/features/params/weapon-params-constants.ts similarity index 100% rename from app/features/params/weapon-params-constants.ts rename to apps/web-react/app/features/params/weapon-params-constants.ts diff --git a/app/features/params/weapon-params-types.ts b/apps/web-react/app/features/params/weapon-params-types.ts similarity index 100% rename from app/features/params/weapon-params-types.ts rename to apps/web-react/app/features/params/weapon-params-types.ts diff --git a/app/features/plus-suggestions/PlusSuggestionRepository.server.ts b/apps/web-react/app/features/plus-suggestions/PlusSuggestionRepository.server.ts similarity index 100% rename from app/features/plus-suggestions/PlusSuggestionRepository.server.ts rename to apps/web-react/app/features/plus-suggestions/PlusSuggestionRepository.server.ts diff --git a/app/features/plus-suggestions/actions/plus.suggestions.comment.$tier.$userId.server.ts b/apps/web-react/app/features/plus-suggestions/actions/plus.suggestions.comment.$tier.$userId.server.ts similarity index 100% rename from app/features/plus-suggestions/actions/plus.suggestions.comment.$tier.$userId.server.ts rename to apps/web-react/app/features/plus-suggestions/actions/plus.suggestions.comment.$tier.$userId.server.ts diff --git a/app/features/plus-suggestions/actions/plus.suggestions.new.server.ts b/apps/web-react/app/features/plus-suggestions/actions/plus.suggestions.new.server.ts similarity index 100% rename from app/features/plus-suggestions/actions/plus.suggestions.new.server.ts rename to apps/web-react/app/features/plus-suggestions/actions/plus.suggestions.new.server.ts diff --git a/app/features/plus-suggestions/actions/plus.suggestions.server.ts b/apps/web-react/app/features/plus-suggestions/actions/plus.suggestions.server.ts similarity index 100% rename from app/features/plus-suggestions/actions/plus.suggestions.server.ts rename to apps/web-react/app/features/plus-suggestions/actions/plus.suggestions.server.ts diff --git a/app/features/plus-suggestions/loaders/plus.suggestions.server.ts b/apps/web-react/app/features/plus-suggestions/loaders/plus.suggestions.server.ts similarity index 100% rename from app/features/plus-suggestions/loaders/plus.suggestions.server.ts rename to apps/web-react/app/features/plus-suggestions/loaders/plus.suggestions.server.ts diff --git a/app/features/plus-suggestions/plus-suggestions-constants.ts b/apps/web-react/app/features/plus-suggestions/plus-suggestions-constants.ts similarity index 100% rename from app/features/plus-suggestions/plus-suggestions-constants.ts rename to apps/web-react/app/features/plus-suggestions/plus-suggestions-constants.ts diff --git a/app/features/plus-suggestions/plus-suggestions-schemas.server.ts b/apps/web-react/app/features/plus-suggestions/plus-suggestions-schemas.server.ts similarity index 100% rename from app/features/plus-suggestions/plus-suggestions-schemas.server.ts rename to apps/web-react/app/features/plus-suggestions/plus-suggestions-schemas.server.ts diff --git a/app/features/plus-suggestions/plus-suggestions-schemas.ts b/apps/web-react/app/features/plus-suggestions/plus-suggestions-schemas.ts similarity index 100% rename from app/features/plus-suggestions/plus-suggestions-schemas.ts rename to apps/web-react/app/features/plus-suggestions/plus-suggestions-schemas.ts diff --git a/app/features/plus-suggestions/plus-suggestions-search-params.test.ts b/apps/web-react/app/features/plus-suggestions/plus-suggestions-search-params.test.ts similarity index 100% rename from app/features/plus-suggestions/plus-suggestions-search-params.test.ts rename to apps/web-react/app/features/plus-suggestions/plus-suggestions-search-params.test.ts diff --git a/app/features/plus-suggestions/plus-suggestions-search-params.ts b/apps/web-react/app/features/plus-suggestions/plus-suggestions-search-params.ts similarity index 100% rename from app/features/plus-suggestions/plus-suggestions-search-params.ts rename to apps/web-react/app/features/plus-suggestions/plus-suggestions-search-params.ts diff --git a/app/features/plus-suggestions/plus-suggestions-urls.ts b/apps/web-react/app/features/plus-suggestions/plus-suggestions-urls.ts similarity index 100% rename from app/features/plus-suggestions/plus-suggestions-urls.ts rename to apps/web-react/app/features/plus-suggestions/plus-suggestions-urls.ts diff --git a/app/features/plus-suggestions/plus-suggestions-utils.ts b/apps/web-react/app/features/plus-suggestions/plus-suggestions-utils.ts similarity index 100% rename from app/features/plus-suggestions/plus-suggestions-utils.ts rename to apps/web-react/app/features/plus-suggestions/plus-suggestions-utils.ts diff --git a/app/features/plus-suggestions/plus.module.css b/apps/web-react/app/features/plus-suggestions/plus.module.css similarity index 100% rename from app/features/plus-suggestions/plus.module.css rename to apps/web-react/app/features/plus-suggestions/plus.module.css diff --git a/app/features/plus-suggestions/routes/plus.index.ts b/apps/web-react/app/features/plus-suggestions/routes/plus.index.ts similarity index 100% rename from app/features/plus-suggestions/routes/plus.index.ts rename to apps/web-react/app/features/plus-suggestions/routes/plus.index.ts diff --git a/app/features/plus-suggestions/routes/plus.suggestions.browser.test.tsx b/apps/web-react/app/features/plus-suggestions/routes/plus.suggestions.browser.test.tsx similarity index 100% rename from app/features/plus-suggestions/routes/plus.suggestions.browser.test.tsx rename to apps/web-react/app/features/plus-suggestions/routes/plus.suggestions.browser.test.tsx diff --git a/app/features/plus-suggestions/routes/plus.suggestions.comment.$tier.$userId.tsx b/apps/web-react/app/features/plus-suggestions/routes/plus.suggestions.comment.$tier.$userId.tsx similarity index 100% rename from app/features/plus-suggestions/routes/plus.suggestions.comment.$tier.$userId.tsx rename to apps/web-react/app/features/plus-suggestions/routes/plus.suggestions.comment.$tier.$userId.tsx diff --git a/app/features/plus-suggestions/routes/plus.suggestions.new.tsx b/apps/web-react/app/features/plus-suggestions/routes/plus.suggestions.new.tsx similarity index 100% rename from app/features/plus-suggestions/routes/plus.suggestions.new.tsx rename to apps/web-react/app/features/plus-suggestions/routes/plus.suggestions.new.tsx diff --git a/app/features/plus-suggestions/routes/plus.suggestions.tsx b/apps/web-react/app/features/plus-suggestions/routes/plus.suggestions.tsx similarity index 100% rename from app/features/plus-suggestions/routes/plus.suggestions.tsx rename to apps/web-react/app/features/plus-suggestions/routes/plus.suggestions.tsx diff --git a/app/features/plus-suggestions/routes/plus.tsx b/apps/web-react/app/features/plus-suggestions/routes/plus.tsx similarity index 100% rename from app/features/plus-suggestions/routes/plus.tsx rename to apps/web-react/app/features/plus-suggestions/routes/plus.tsx diff --git a/app/features/plus-voting/PlusVotingRepository.server.ts b/apps/web-react/app/features/plus-voting/PlusVotingRepository.server.ts similarity index 100% rename from app/features/plus-voting/PlusVotingRepository.server.ts rename to apps/web-react/app/features/plus-voting/PlusVotingRepository.server.ts diff --git a/app/features/plus-voting/actions/plus.voting.server.ts b/apps/web-react/app/features/plus-voting/actions/plus.voting.server.ts similarity index 100% rename from app/features/plus-voting/actions/plus.voting.server.ts rename to apps/web-react/app/features/plus-voting/actions/plus.voting.server.ts diff --git a/app/features/plus-voting/core/PlusVoting.test.ts b/apps/web-react/app/features/plus-voting/core/PlusVoting.test.ts similarity index 100% rename from app/features/plus-voting/core/PlusVoting.test.ts rename to apps/web-react/app/features/plus-voting/core/PlusVoting.test.ts diff --git a/app/features/plus-voting/core/PlusVoting.ts b/apps/web-react/app/features/plus-voting/core/PlusVoting.ts similarity index 100% rename from app/features/plus-voting/core/PlusVoting.ts rename to apps/web-react/app/features/plus-voting/core/PlusVoting.ts diff --git a/app/features/plus-voting/core/index.ts b/apps/web-react/app/features/plus-voting/core/index.ts similarity index 100% rename from app/features/plus-voting/core/index.ts rename to apps/web-react/app/features/plus-voting/core/index.ts diff --git a/app/features/plus-voting/core/types.ts b/apps/web-react/app/features/plus-voting/core/types.ts similarity index 100% rename from app/features/plus-voting/core/types.ts rename to apps/web-react/app/features/plus-voting/core/types.ts diff --git a/app/features/plus-voting/core/usePlusVoting.ts b/apps/web-react/app/features/plus-voting/core/usePlusVoting.ts similarity index 100% rename from app/features/plus-voting/core/usePlusVoting.ts rename to apps/web-react/app/features/plus-voting/core/usePlusVoting.ts diff --git a/app/features/plus-voting/core/voting-time.ts b/apps/web-react/app/features/plus-voting/core/voting-time.ts similarity index 100% rename from app/features/plus-voting/core/voting-time.ts rename to apps/web-react/app/features/plus-voting/core/voting-time.ts diff --git a/app/features/plus-voting/loaders/plus.voting.results.server.ts b/apps/web-react/app/features/plus-voting/loaders/plus.voting.results.server.ts similarity index 100% rename from app/features/plus-voting/loaders/plus.voting.results.server.ts rename to apps/web-react/app/features/plus-voting/loaders/plus.voting.results.server.ts diff --git a/app/features/plus-voting/loaders/plus.voting.server.ts b/apps/web-react/app/features/plus-voting/loaders/plus.voting.server.ts similarity index 100% rename from app/features/plus-voting/loaders/plus.voting.server.ts rename to apps/web-react/app/features/plus-voting/loaders/plus.voting.server.ts diff --git a/app/features/plus-voting/plus-voting-constants.ts b/apps/web-react/app/features/plus-voting/plus-voting-constants.ts similarity index 100% rename from app/features/plus-voting/plus-voting-constants.ts rename to apps/web-react/app/features/plus-voting/plus-voting-constants.ts diff --git a/app/features/plus-voting/plus-voting-results.module.css b/apps/web-react/app/features/plus-voting/plus-voting-results.module.css similarity index 100% rename from app/features/plus-voting/plus-voting-results.module.css rename to apps/web-react/app/features/plus-voting/plus-voting-results.module.css diff --git a/app/features/plus-voting/plus-voting-schemas.ts b/apps/web-react/app/features/plus-voting/plus-voting-schemas.ts similarity index 100% rename from app/features/plus-voting/plus-voting-schemas.ts rename to apps/web-react/app/features/plus-voting/plus-voting-schemas.ts diff --git a/app/features/plus-voting/routes/plus.list.ts b/apps/web-react/app/features/plus-voting/routes/plus.list.ts similarity index 100% rename from app/features/plus-voting/routes/plus.list.ts rename to apps/web-react/app/features/plus-voting/routes/plus.list.ts diff --git a/app/features/plus-voting/routes/plus.voting.results.tsx b/apps/web-react/app/features/plus-voting/routes/plus.voting.results.tsx similarity index 100% rename from app/features/plus-voting/routes/plus.voting.results.tsx rename to apps/web-react/app/features/plus-voting/routes/plus.voting.results.tsx diff --git a/app/features/plus-voting/routes/plus.voting.tsx b/apps/web-react/app/features/plus-voting/routes/plus.voting.tsx similarity index 100% rename from app/features/plus-voting/routes/plus.voting.tsx rename to apps/web-react/app/features/plus-voting/routes/plus.voting.tsx diff --git a/app/features/scanner-ingest/ScannerIngestRepository.server.test.ts b/apps/web-react/app/features/scanner-ingest/ScannerIngestRepository.server.test.ts similarity index 100% rename from app/features/scanner-ingest/ScannerIngestRepository.server.test.ts rename to apps/web-react/app/features/scanner-ingest/ScannerIngestRepository.server.test.ts diff --git a/app/features/scanner-ingest/ScannerIngestRepository.server.ts b/apps/web-react/app/features/scanner-ingest/ScannerIngestRepository.server.ts similarity index 100% rename from app/features/scanner-ingest/ScannerIngestRepository.server.ts rename to apps/web-react/app/features/scanner-ingest/ScannerIngestRepository.server.ts diff --git a/app/features/scanner-ingest/actions/scanner-ingest.server.ts b/apps/web-react/app/features/scanner-ingest/actions/scanner-ingest.server.ts similarity index 100% rename from app/features/scanner-ingest/actions/scanner-ingest.server.ts rename to apps/web-react/app/features/scanner-ingest/actions/scanner-ingest.server.ts diff --git a/app/features/scanner-ingest/core/Matches.test.ts b/apps/web-react/app/features/scanner-ingest/core/Matches.test.ts similarity index 100% rename from app/features/scanner-ingest/core/Matches.test.ts rename to apps/web-react/app/features/scanner-ingest/core/Matches.test.ts diff --git a/app/features/scanner-ingest/core/Matches.ts b/apps/web-react/app/features/scanner-ingest/core/Matches.ts similarity index 100% rename from app/features/scanner-ingest/core/Matches.ts rename to apps/web-react/app/features/scanner-ingest/core/Matches.ts diff --git a/app/features/scanner-ingest/core/Scoreboards.test.ts b/apps/web-react/app/features/scanner-ingest/core/Scoreboards.test.ts similarity index 100% rename from app/features/scanner-ingest/core/Scoreboards.test.ts rename to apps/web-react/app/features/scanner-ingest/core/Scoreboards.test.ts diff --git a/app/features/scanner-ingest/core/Scoreboards.ts b/apps/web-react/app/features/scanner-ingest/core/Scoreboards.ts similarity index 100% rename from app/features/scanner-ingest/core/Scoreboards.ts rename to apps/web-react/app/features/scanner-ingest/core/Scoreboards.ts diff --git a/app/features/scanner-ingest/core/VodMatches.test.ts b/apps/web-react/app/features/scanner-ingest/core/VodMatches.test.ts similarity index 100% rename from app/features/scanner-ingest/core/VodMatches.test.ts rename to apps/web-react/app/features/scanner-ingest/core/VodMatches.test.ts diff --git a/app/features/scanner-ingest/core/VodMatches.ts b/apps/web-react/app/features/scanner-ingest/core/VodMatches.ts similarity index 100% rename from app/features/scanner-ingest/core/VodMatches.ts rename to apps/web-react/app/features/scanner-ingest/core/VodMatches.ts diff --git a/app/features/scanner-ingest/core/tests/fixtures.ts b/apps/web-react/app/features/scanner-ingest/core/tests/fixtures.ts similarity index 100% rename from app/features/scanner-ingest/core/tests/fixtures.ts rename to apps/web-react/app/features/scanner-ingest/core/tests/fixtures.ts diff --git a/app/features/scanner-ingest/routes/scanner-ingest.ts b/apps/web-react/app/features/scanner-ingest/routes/scanner-ingest.ts similarity index 100% rename from app/features/scanner-ingest/routes/scanner-ingest.ts rename to apps/web-react/app/features/scanner-ingest/routes/scanner-ingest.ts diff --git a/app/features/scanner-ingest/scanner-ingest-schemas.ts b/apps/web-react/app/features/scanner-ingest/scanner-ingest-schemas.ts similarity index 100% rename from app/features/scanner-ingest/scanner-ingest-schemas.ts rename to apps/web-react/app/features/scanner-ingest/scanner-ingest-schemas.ts diff --git a/app/features/scanner-ingest/scanner-ingest-vod-schemas.ts b/apps/web-react/app/features/scanner-ingest/scanner-ingest-vod-schemas.ts similarity index 100% rename from app/features/scanner-ingest/scanner-ingest-vod-schemas.ts rename to apps/web-react/app/features/scanner-ingest/scanner-ingest-vod-schemas.ts diff --git a/app/features/scanner-ingest/tests/harness.ts b/apps/web-react/app/features/scanner-ingest/tests/harness.ts similarity index 100% rename from app/features/scanner-ingest/tests/harness.ts rename to apps/web-react/app/features/scanner-ingest/tests/harness.ts diff --git a/app/features/scanner-ingest/tests/ingest-scenarios.test.ts b/apps/web-react/app/features/scanner-ingest/tests/ingest-scenarios.test.ts similarity index 100% rename from app/features/scanner-ingest/tests/ingest-scenarios.test.ts rename to apps/web-react/app/features/scanner-ingest/tests/ingest-scenarios.test.ts diff --git a/app/features/scanner/README.md b/apps/web-react/app/features/scanner/README.md similarity index 100% rename from app/features/scanner/README.md rename to apps/web-react/app/features/scanner/README.md diff --git a/app/features/scanner/capture/sampler.ts b/apps/web-react/app/features/scanner/capture/sampler.ts similarity index 100% rename from app/features/scanner/capture/sampler.ts rename to apps/web-react/app/features/scanner/capture/sampler.ts diff --git a/app/features/scanner/capture/ticker.worker.ts b/apps/web-react/app/features/scanner/capture/ticker.worker.ts similarity index 100% rename from app/features/scanner/capture/ticker.worker.ts rename to apps/web-react/app/features/scanner/capture/ticker.worker.ts diff --git a/app/features/scanner/capture/vod-frames.ts b/apps/web-react/app/features/scanner/capture/vod-frames.ts similarity index 100% rename from app/features/scanner/capture/vod-frames.ts rename to apps/web-react/app/features/scanner/capture/vod-frames.ts diff --git a/app/features/scanner/components/AbilityGrid.module.css b/apps/web-react/app/features/scanner/components/AbilityGrid.module.css similarity index 100% rename from app/features/scanner/components/AbilityGrid.module.css rename to apps/web-react/app/features/scanner/components/AbilityGrid.module.css diff --git a/app/features/scanner/components/AbilityGrid.tsx b/apps/web-react/app/features/scanner/components/AbilityGrid.tsx similarity index 100% rename from app/features/scanner/components/AbilityGrid.tsx rename to apps/web-react/app/features/scanner/components/AbilityGrid.tsx diff --git a/app/features/scanner/components/DeathCard.module.css b/apps/web-react/app/features/scanner/components/DeathCard.module.css similarity index 100% rename from app/features/scanner/components/DeathCard.module.css rename to apps/web-react/app/features/scanner/components/DeathCard.module.css diff --git a/app/features/scanner/components/DeathCard.tsx b/apps/web-react/app/features/scanner/components/DeathCard.tsx similarity index 100% rename from app/features/scanner/components/DeathCard.tsx rename to apps/web-react/app/features/scanner/components/DeathCard.tsx diff --git a/app/features/scanner/components/EventCard.module.css b/apps/web-react/app/features/scanner/components/EventCard.module.css similarity index 100% rename from app/features/scanner/components/EventCard.module.css rename to apps/web-react/app/features/scanner/components/EventCard.module.css diff --git a/app/features/scanner/components/EventCard.tsx b/apps/web-react/app/features/scanner/components/EventCard.tsx similarity index 100% rename from app/features/scanner/components/EventCard.tsx rename to apps/web-react/app/features/scanner/components/EventCard.tsx diff --git a/app/features/scanner/components/EventTypeIcon.tsx b/apps/web-react/app/features/scanner/components/EventTypeIcon.tsx similarity index 100% rename from app/features/scanner/components/EventTypeIcon.tsx rename to apps/web-react/app/features/scanner/components/EventTypeIcon.tsx diff --git a/app/features/scanner/components/EventsSummary.module.css b/apps/web-react/app/features/scanner/components/EventsSummary.module.css similarity index 100% rename from app/features/scanner/components/EventsSummary.module.css rename to apps/web-react/app/features/scanner/components/EventsSummary.module.css diff --git a/app/features/scanner/components/EventsSummary.tsx b/apps/web-react/app/features/scanner/components/EventsSummary.tsx similarity index 100% rename from app/features/scanner/components/EventsSummary.tsx rename to apps/web-react/app/features/scanner/components/EventsSummary.tsx diff --git a/app/features/scanner/components/FrameThumb.module.css b/apps/web-react/app/features/scanner/components/FrameThumb.module.css similarity index 100% rename from app/features/scanner/components/FrameThumb.module.css rename to apps/web-react/app/features/scanner/components/FrameThumb.module.css diff --git a/app/features/scanner/components/FrameThumb.tsx b/apps/web-react/app/features/scanner/components/FrameThumb.tsx similarity index 100% rename from app/features/scanner/components/FrameThumb.tsx rename to apps/web-react/app/features/scanner/components/FrameThumb.tsx diff --git a/app/features/scanner/components/LivePage.module.css b/apps/web-react/app/features/scanner/components/LivePage.module.css similarity index 100% rename from app/features/scanner/components/LivePage.module.css rename to apps/web-react/app/features/scanner/components/LivePage.module.css diff --git a/app/features/scanner/components/LivePage.tsx b/apps/web-react/app/features/scanner/components/LivePage.tsx similarity index 100% rename from app/features/scanner/components/LivePage.tsx rename to apps/web-react/app/features/scanner/components/LivePage.tsx diff --git a/app/features/scanner/components/MapStartCard.tsx b/apps/web-react/app/features/scanner/components/MapStartCard.tsx similarity index 100% rename from app/features/scanner/components/MapStartCard.tsx rename to apps/web-react/app/features/scanner/components/MapStartCard.tsx diff --git a/app/features/scanner/components/MatchCard.module.css b/apps/web-react/app/features/scanner/components/MatchCard.module.css similarity index 100% rename from app/features/scanner/components/MatchCard.module.css rename to apps/web-react/app/features/scanner/components/MatchCard.module.css diff --git a/app/features/scanner/components/MatchCard.tsx b/apps/web-react/app/features/scanner/components/MatchCard.tsx similarity index 100% rename from app/features/scanner/components/MatchCard.tsx rename to apps/web-react/app/features/scanner/components/MatchCard.tsx diff --git a/app/features/scanner/components/MatchLobbyTabs.module.css b/apps/web-react/app/features/scanner/components/MatchLobbyTabs.module.css similarity index 100% rename from app/features/scanner/components/MatchLobbyTabs.module.css rename to apps/web-react/app/features/scanner/components/MatchLobbyTabs.module.css diff --git a/app/features/scanner/components/MatchLobbyTabs.tsx b/apps/web-react/app/features/scanner/components/MatchLobbyTabs.tsx similarity index 100% rename from app/features/scanner/components/MatchLobbyTabs.tsx rename to apps/web-react/app/features/scanner/components/MatchLobbyTabs.tsx diff --git a/app/features/scanner/components/MetaChips.module.css b/apps/web-react/app/features/scanner/components/MetaChips.module.css similarity index 100% rename from app/features/scanner/components/MetaChips.module.css rename to apps/web-react/app/features/scanner/components/MetaChips.module.css diff --git a/app/features/scanner/components/MetaChips.tsx b/apps/web-react/app/features/scanner/components/MetaChips.tsx similarity index 100% rename from app/features/scanner/components/MetaChips.tsx rename to apps/web-react/app/features/scanner/components/MetaChips.tsx diff --git a/app/features/scanner/components/MinimapCard.module.css b/apps/web-react/app/features/scanner/components/MinimapCard.module.css similarity index 100% rename from app/features/scanner/components/MinimapCard.module.css rename to apps/web-react/app/features/scanner/components/MinimapCard.module.css diff --git a/app/features/scanner/components/MinimapCard.tsx b/apps/web-react/app/features/scanner/components/MinimapCard.tsx similarity index 100% rename from app/features/scanner/components/MinimapCard.tsx rename to apps/web-react/app/features/scanner/components/MinimapCard.tsx diff --git a/app/features/scanner/components/ObjectiveCard.tsx b/apps/web-react/app/features/scanner/components/ObjectiveCard.tsx similarity index 100% rename from app/features/scanner/components/ObjectiveCard.tsx rename to apps/web-react/app/features/scanner/components/ObjectiveCard.tsx diff --git a/app/features/scanner/components/PlayerStatusCard.tsx b/apps/web-react/app/features/scanner/components/PlayerStatusCard.tsx similarity index 100% rename from app/features/scanner/components/PlayerStatusCard.tsx rename to apps/web-react/app/features/scanner/components/PlayerStatusCard.tsx diff --git a/app/features/scanner/components/ScannerApp.module.css b/apps/web-react/app/features/scanner/components/ScannerApp.module.css similarity index 100% rename from app/features/scanner/components/ScannerApp.module.css rename to apps/web-react/app/features/scanner/components/ScannerApp.module.css diff --git a/app/features/scanner/components/ScannerApp.tsx b/apps/web-react/app/features/scanner/components/ScannerApp.tsx similarity index 100% rename from app/features/scanner/components/ScannerApp.tsx rename to apps/web-react/app/features/scanner/components/ScannerApp.tsx diff --git a/app/features/scanner/components/ScoreboardCard.tsx b/apps/web-react/app/features/scanner/components/ScoreboardCard.tsx similarity index 100% rename from app/features/scanner/components/ScoreboardCard.tsx rename to apps/web-react/app/features/scanner/components/ScoreboardCard.tsx diff --git a/app/features/scanner/components/ScoreboardOwnCard.tsx b/apps/web-react/app/features/scanner/components/ScoreboardOwnCard.tsx similarity index 100% rename from app/features/scanner/components/ScoreboardOwnCard.tsx rename to apps/web-react/app/features/scanner/components/ScoreboardOwnCard.tsx diff --git a/app/features/scanner/components/ScreenshotPage.module.css b/apps/web-react/app/features/scanner/components/ScreenshotPage.module.css similarity index 100% rename from app/features/scanner/components/ScreenshotPage.module.css rename to apps/web-react/app/features/scanner/components/ScreenshotPage.module.css diff --git a/app/features/scanner/components/ScreenshotPage.tsx b/apps/web-react/app/features/scanner/components/ScreenshotPage.tsx similarity index 100% rename from app/features/scanner/components/ScreenshotPage.tsx rename to apps/web-react/app/features/scanner/components/ScreenshotPage.tsx diff --git a/app/features/scanner/components/StripWeaponsCard.tsx b/apps/web-react/app/features/scanner/components/StripWeaponsCard.tsx similarity index 100% rename from app/features/scanner/components/StripWeaponsCard.tsx rename to apps/web-react/app/features/scanner/components/StripWeaponsCard.tsx diff --git a/app/features/scanner/components/VodPage.module.css b/apps/web-react/app/features/scanner/components/VodPage.module.css similarity index 100% rename from app/features/scanner/components/VodPage.module.css rename to apps/web-react/app/features/scanner/components/VodPage.module.css diff --git a/app/features/scanner/components/VodPage.tsx b/apps/web-react/app/features/scanner/components/VodPage.tsx similarity index 100% rename from app/features/scanner/components/VodPage.tsx rename to apps/web-react/app/features/scanner/components/VodPage.tsx diff --git a/app/features/scanner/components/dedupe-events.ts b/apps/web-react/app/features/scanner/components/dedupe-events.ts similarity index 100% rename from app/features/scanner/components/dedupe-events.ts rename to apps/web-react/app/features/scanner/components/dedupe-events.ts diff --git a/app/features/scanner/components/events-csv.ts b/apps/web-react/app/features/scanner/components/events-csv.ts similarity index 100% rename from app/features/scanner/components/events-csv.ts rename to apps/web-react/app/features/scanner/components/events-csv.ts diff --git a/app/features/scanner/components/fixture-export.ts b/apps/web-react/app/features/scanner/components/fixture-export.ts similarity index 100% rename from app/features/scanner/components/fixture-export.ts rename to apps/web-react/app/features/scanner/components/fixture-export.ts diff --git a/app/features/scanner/components/format.ts b/apps/web-react/app/features/scanner/components/format.ts similarity index 100% rename from app/features/scanner/components/format.ts rename to apps/web-react/app/features/scanner/components/format.ts diff --git a/app/features/scanner/components/labels.ts b/apps/web-react/app/features/scanner/components/labels.ts similarity index 100% rename from app/features/scanner/components/labels.ts rename to apps/web-react/app/features/scanner/components/labels.ts diff --git a/app/features/scanner/components/player-status-view.ts b/apps/web-react/app/features/scanner/components/player-status-view.ts similarity index 100% rename from app/features/scanner/components/player-status-view.ts rename to apps/web-react/app/features/scanner/components/player-status-view.ts diff --git a/app/features/scanner/components/sendou-ingest.ts b/apps/web-react/app/features/scanner/components/sendou-ingest.ts similarity index 100% rename from app/features/scanner/components/sendou-ingest.ts rename to apps/web-react/app/features/scanner/components/sendou-ingest.ts diff --git a/app/features/scanner/components/sendou-upload.ts b/apps/web-react/app/features/scanner/components/sendou-upload.ts similarity index 100% rename from app/features/scanner/components/sendou-upload.ts rename to apps/web-react/app/features/scanner/components/sendou-upload.ts diff --git a/app/features/scanner/components/thumbnail.ts b/apps/web-react/app/features/scanner/components/thumbnail.ts similarity index 100% rename from app/features/scanner/components/thumbnail.ts rename to apps/web-react/app/features/scanner/components/thumbnail.ts diff --git a/app/features/scanner/core/ability-harvest.ts b/apps/web-react/app/features/scanner/core/ability-harvest.ts similarity index 100% rename from app/features/scanner/core/ability-harvest.ts rename to apps/web-react/app/features/scanner/core/ability-harvest.ts diff --git a/app/features/scanner/core/canonical.ts b/apps/web-react/app/features/scanner/core/canonical.ts similarity index 100% rename from app/features/scanner/core/canonical.ts rename to apps/web-react/app/features/scanner/core/canonical.ts diff --git a/app/features/scanner/core/cv.ts b/apps/web-react/app/features/scanner/core/cv.ts similarity index 100% rename from app/features/scanner/core/cv.ts rename to apps/web-react/app/features/scanner/core/cv.ts diff --git a/app/features/scanner/core/detectors/death/abilities.ts b/apps/web-react/app/features/scanner/core/detectors/death/abilities.ts similarity index 100% rename from app/features/scanner/core/detectors/death/abilities.ts rename to apps/web-react/app/features/scanner/core/detectors/death/abilities.ts diff --git a/app/features/scanner/core/detectors/death/index.ts b/apps/web-react/app/features/scanner/core/detectors/death/index.ts similarity index 100% rename from app/features/scanner/core/detectors/death/index.ts rename to apps/web-react/app/features/scanner/core/detectors/death/index.ts diff --git a/app/features/scanner/core/detectors/death/localized-messages.ts b/apps/web-react/app/features/scanner/core/detectors/death/localized-messages.ts similarity index 100% rename from app/features/scanner/core/detectors/death/localized-messages.ts rename to apps/web-react/app/features/scanner/core/detectors/death/localized-messages.ts diff --git a/app/features/scanner/core/detectors/death/rois.ts b/apps/web-react/app/features/scanner/core/detectors/death/rois.ts similarity index 100% rename from app/features/scanner/core/detectors/death/rois.ts rename to apps/web-react/app/features/scanner/core/detectors/death/rois.ts diff --git a/app/features/scanner/core/detectors/death/weapon-names.ts b/apps/web-react/app/features/scanner/core/detectors/death/weapon-names.ts similarity index 100% rename from app/features/scanner/core/detectors/death/weapon-names.ts rename to apps/web-react/app/features/scanner/core/detectors/death/weapon-names.ts diff --git a/app/features/scanner/core/detectors/map-start/index.ts b/apps/web-react/app/features/scanner/core/detectors/map-start/index.ts similarity index 100% rename from app/features/scanner/core/detectors/map-start/index.ts rename to apps/web-react/app/features/scanner/core/detectors/map-start/index.ts diff --git a/app/features/scanner/core/detectors/map-start/rois.ts b/apps/web-react/app/features/scanner/core/detectors/map-start/rois.ts similarity index 100% rename from app/features/scanner/core/detectors/map-start/rois.ts rename to apps/web-react/app/features/scanner/core/detectors/map-start/rois.ts diff --git a/app/features/scanner/core/detectors/minimap/abilities.ts b/apps/web-react/app/features/scanner/core/detectors/minimap/abilities.ts similarity index 100% rename from app/features/scanner/core/detectors/minimap/abilities.ts rename to apps/web-react/app/features/scanner/core/detectors/minimap/abilities.ts diff --git a/app/features/scanner/core/detectors/minimap/index.ts b/apps/web-react/app/features/scanner/core/detectors/minimap/index.ts similarity index 100% rename from app/features/scanner/core/detectors/minimap/index.ts rename to apps/web-react/app/features/scanner/core/detectors/minimap/index.ts diff --git a/app/features/scanner/core/detectors/minimap/rois.ts b/apps/web-react/app/features/scanner/core/detectors/minimap/rois.ts similarity index 100% rename from app/features/scanner/core/detectors/minimap/rois.ts rename to apps/web-react/app/features/scanner/core/detectors/minimap/rois.ts diff --git a/app/features/scanner/core/detectors/minimap/stage.ts b/apps/web-react/app/features/scanner/core/detectors/minimap/stage.ts similarity index 100% rename from app/features/scanner/core/detectors/minimap/stage.ts rename to apps/web-react/app/features/scanner/core/detectors/minimap/stage.ts diff --git a/app/features/scanner/core/detectors/objective/index.ts b/apps/web-react/app/features/scanner/core/detectors/objective/index.ts similarity index 100% rename from app/features/scanner/core/detectors/objective/index.ts rename to apps/web-react/app/features/scanner/core/detectors/objective/index.ts diff --git a/app/features/scanner/core/detectors/objective/player-status.ts b/apps/web-react/app/features/scanner/core/detectors/objective/player-status.ts similarity index 100% rename from app/features/scanner/core/detectors/objective/player-status.ts rename to apps/web-react/app/features/scanner/core/detectors/objective/player-status.ts diff --git a/app/features/scanner/core/detectors/objective/rois.ts b/apps/web-react/app/features/scanner/core/detectors/objective/rois.ts similarity index 100% rename from app/features/scanner/core/detectors/objective/rois.ts rename to apps/web-react/app/features/scanner/core/detectors/objective/rois.ts diff --git a/app/features/scanner/core/detectors/objective/strip-weapons.ts b/apps/web-react/app/features/scanner/core/detectors/objective/strip-weapons.ts similarity index 100% rename from app/features/scanner/core/detectors/objective/strip-weapons.ts rename to apps/web-react/app/features/scanner/core/detectors/objective/strip-weapons.ts diff --git a/app/features/scanner/core/detectors/registry.ts b/apps/web-react/app/features/scanner/core/detectors/registry.ts similarity index 100% rename from app/features/scanner/core/detectors/registry.ts rename to apps/web-react/app/features/scanner/core/detectors/registry.ts diff --git a/app/features/scanner/core/detectors/scheduler.ts b/apps/web-react/app/features/scanner/core/detectors/scheduler.ts similarity index 100% rename from app/features/scanner/core/detectors/scheduler.ts rename to apps/web-react/app/features/scanner/core/detectors/scheduler.ts diff --git a/app/features/scanner/core/detectors/scoreboard-battle-log-replay/code.ts b/apps/web-react/app/features/scanner/core/detectors/scoreboard-battle-log-replay/code.ts similarity index 100% rename from app/features/scanner/core/detectors/scoreboard-battle-log-replay/code.ts rename to apps/web-react/app/features/scanner/core/detectors/scoreboard-battle-log-replay/code.ts diff --git a/app/features/scanner/core/detectors/scoreboard-battle-log-replay/header.ts b/apps/web-react/app/features/scanner/core/detectors/scoreboard-battle-log-replay/header.ts similarity index 100% rename from app/features/scanner/core/detectors/scoreboard-battle-log-replay/header.ts rename to apps/web-react/app/features/scanner/core/detectors/scoreboard-battle-log-replay/header.ts diff --git a/app/features/scanner/core/detectors/scoreboard-battle-log-replay/index.ts b/apps/web-react/app/features/scanner/core/detectors/scoreboard-battle-log-replay/index.ts similarity index 100% rename from app/features/scanner/core/detectors/scoreboard-battle-log-replay/index.ts rename to apps/web-react/app/features/scanner/core/detectors/scoreboard-battle-log-replay/index.ts diff --git a/app/features/scanner/core/detectors/scoreboard-battle-log-replay/rois.ts b/apps/web-react/app/features/scanner/core/detectors/scoreboard-battle-log-replay/rois.ts similarity index 100% rename from app/features/scanner/core/detectors/scoreboard-battle-log-replay/rois.ts rename to apps/web-react/app/features/scanner/core/detectors/scoreboard-battle-log-replay/rois.ts diff --git a/app/features/scanner/core/detectors/scoreboard-battle-log/index.ts b/apps/web-react/app/features/scanner/core/detectors/scoreboard-battle-log/index.ts similarity index 100% rename from app/features/scanner/core/detectors/scoreboard-battle-log/index.ts rename to apps/web-react/app/features/scanner/core/detectors/scoreboard-battle-log/index.ts diff --git a/app/features/scanner/core/detectors/scoreboard-battle-log/rois.ts b/apps/web-react/app/features/scanner/core/detectors/scoreboard-battle-log/rois.ts similarity index 100% rename from app/features/scanner/core/detectors/scoreboard-battle-log/rois.ts rename to apps/web-react/app/features/scanner/core/detectors/scoreboard-battle-log/rois.ts diff --git a/app/features/scanner/core/detectors/scoreboard-own/abilities.ts b/apps/web-react/app/features/scanner/core/detectors/scoreboard-own/abilities.ts similarity index 100% rename from app/features/scanner/core/detectors/scoreboard-own/abilities.ts rename to apps/web-react/app/features/scanner/core/detectors/scoreboard-own/abilities.ts diff --git a/app/features/scanner/core/detectors/scoreboard-own/index.ts b/apps/web-react/app/features/scanner/core/detectors/scoreboard-own/index.ts similarity index 100% rename from app/features/scanner/core/detectors/scoreboard-own/index.ts rename to apps/web-react/app/features/scanner/core/detectors/scoreboard-own/index.ts diff --git a/app/features/scanner/core/detectors/scoreboard-own/rois.ts b/apps/web-react/app/features/scanner/core/detectors/scoreboard-own/rois.ts similarity index 100% rename from app/features/scanner/core/detectors/scoreboard-own/rois.ts rename to apps/web-react/app/features/scanner/core/detectors/scoreboard-own/rois.ts diff --git a/app/features/scanner/core/detectors/scoreboard/banner.ts b/apps/web-react/app/features/scanner/core/detectors/scoreboard/banner.ts similarity index 100% rename from app/features/scanner/core/detectors/scoreboard/banner.ts rename to apps/web-react/app/features/scanner/core/detectors/scoreboard/banner.ts diff --git a/app/features/scanner/core/detectors/scoreboard/digits.ts b/apps/web-react/app/features/scanner/core/detectors/scoreboard/digits.ts similarity index 100% rename from app/features/scanner/core/detectors/scoreboard/digits.ts rename to apps/web-react/app/features/scanner/core/detectors/scoreboard/digits.ts diff --git a/app/features/scanner/core/detectors/scoreboard/header.ts b/apps/web-react/app/features/scanner/core/detectors/scoreboard/header.ts similarity index 100% rename from app/features/scanner/core/detectors/scoreboard/header.ts rename to apps/web-react/app/features/scanner/core/detectors/scoreboard/header.ts diff --git a/app/features/scanner/core/detectors/scoreboard/index.ts b/apps/web-react/app/features/scanner/core/detectors/scoreboard/index.ts similarity index 100% rename from app/features/scanner/core/detectors/scoreboard/index.ts rename to apps/web-react/app/features/scanner/core/detectors/scoreboard/index.ts diff --git a/app/features/scanner/core/detectors/scoreboard/kits.ts b/apps/web-react/app/features/scanner/core/detectors/scoreboard/kits.ts similarity index 100% rename from app/features/scanner/core/detectors/scoreboard/kits.ts rename to apps/web-react/app/features/scanner/core/detectors/scoreboard/kits.ts diff --git a/app/features/scanner/core/detectors/scoreboard/names.ts b/apps/web-react/app/features/scanner/core/detectors/scoreboard/names.ts similarity index 100% rename from app/features/scanner/core/detectors/scoreboard/names.ts rename to apps/web-react/app/features/scanner/core/detectors/scoreboard/names.ts diff --git a/app/features/scanner/core/detectors/scoreboard/pov.ts b/apps/web-react/app/features/scanner/core/detectors/scoreboard/pov.ts similarity index 100% rename from app/features/scanner/core/detectors/scoreboard/pov.ts rename to apps/web-react/app/features/scanner/core/detectors/scoreboard/pov.ts diff --git a/app/features/scanner/core/detectors/scoreboard/rois.ts b/apps/web-react/app/features/scanner/core/detectors/scoreboard/rois.ts similarity index 100% rename from app/features/scanner/core/detectors/scoreboard/rois.ts rename to apps/web-react/app/features/scanner/core/detectors/scoreboard/rois.ts diff --git a/app/features/scanner/core/detectors/scoreboard/row.ts b/apps/web-react/app/features/scanner/core/detectors/scoreboard/row.ts similarity index 100% rename from app/features/scanner/core/detectors/scoreboard/row.ts rename to apps/web-react/app/features/scanner/core/detectors/scoreboard/row.ts diff --git a/app/features/scanner/core/detectors/scoreboard/specials.ts b/apps/web-react/app/features/scanner/core/detectors/scoreboard/specials.ts similarity index 100% rename from app/features/scanner/core/detectors/scoreboard/specials.ts rename to apps/web-react/app/features/scanner/core/detectors/scoreboard/specials.ts diff --git a/app/features/scanner/core/detectors/scoreboard/weapons.ts b/apps/web-react/app/features/scanner/core/detectors/scoreboard/weapons.ts similarity index 100% rename from app/features/scanner/core/detectors/scoreboard/weapons.ts rename to apps/web-react/app/features/scanner/core/detectors/scoreboard/weapons.ts diff --git a/app/features/scanner/core/detectors/telemetry.ts b/apps/web-react/app/features/scanner/core/detectors/telemetry.ts similarity index 100% rename from app/features/scanner/core/detectors/telemetry.ts rename to apps/web-react/app/features/scanner/core/detectors/telemetry.ts diff --git a/app/features/scanner/core/detectors/types.ts b/apps/web-react/app/features/scanner/core/detectors/types.ts similarity index 100% rename from app/features/scanner/core/detectors/types.ts rename to apps/web-react/app/features/scanner/core/detectors/types.ts diff --git a/app/features/scanner/core/glyphs.ts b/apps/web-react/app/features/scanner/core/glyphs.ts similarity index 100% rename from app/features/scanner/core/glyphs.ts rename to apps/web-react/app/features/scanner/core/glyphs.ts diff --git a/app/features/scanner/core/image.ts b/apps/web-react/app/features/scanner/core/image.ts similarity index 100% rename from app/features/scanner/core/image.ts rename to apps/web-react/app/features/scanner/core/image.ts diff --git a/app/features/scanner/core/ink-color.ts b/apps/web-react/app/features/scanner/core/ink-color.ts similarity index 100% rename from app/features/scanner/core/ink-color.ts rename to apps/web-react/app/features/scanner/core/ink-color.ts diff --git a/app/features/scanner/core/localized-entries.ts b/apps/web-react/app/features/scanner/core/localized-entries.ts similarity index 100% rename from app/features/scanner/core/localized-entries.ts rename to apps/web-react/app/features/scanner/core/localized-entries.ts diff --git a/app/features/scanner/core/localized.ts b/apps/web-react/app/features/scanner/core/localized.ts similarity index 100% rename from app/features/scanner/core/localized.ts rename to apps/web-react/app/features/scanner/core/localized.ts diff --git a/app/features/scanner/core/match-builder.ts b/apps/web-react/app/features/scanner/core/match-builder.ts similarity index 100% rename from app/features/scanner/core/match-builder.ts rename to apps/web-react/app/features/scanner/core/match-builder.ts diff --git a/app/features/scanner/core/match-sets.ts b/apps/web-react/app/features/scanner/core/match-sets.ts similarity index 100% rename from app/features/scanner/core/match-sets.ts rename to apps/web-react/app/features/scanner/core/match-sets.ts diff --git a/app/features/scanner/core/replay-time.ts b/apps/web-react/app/features/scanner/core/replay-time.ts similarity index 100% rename from app/features/scanner/core/replay-time.ts rename to apps/web-react/app/features/scanner/core/replay-time.ts diff --git a/app/features/scanner/core/resources.ts b/apps/web-react/app/features/scanner/core/resources.ts similarity index 100% rename from app/features/scanner/core/resources.ts rename to apps/web-react/app/features/scanner/core/resources.ts diff --git a/app/features/scanner/core/scanner-match.ts b/apps/web-react/app/features/scanner/core/scanner-match.ts similarity index 100% rename from app/features/scanner/core/scanner-match.ts rename to apps/web-react/app/features/scanner/core/scanner-match.ts diff --git a/app/features/scanner/core/slot-row-assignment.ts b/apps/web-react/app/features/scanner/core/slot-row-assignment.ts similarity index 100% rename from app/features/scanner/core/slot-row-assignment.ts rename to apps/web-react/app/features/scanner/core/slot-row-assignment.ts diff --git a/app/features/scanner/core/text.ts b/apps/web-react/app/features/scanner/core/text.ts similarity index 100% rename from app/features/scanner/core/text.ts rename to apps/web-react/app/features/scanner/core/text.ts diff --git a/app/features/scanner/core/timeline/index.ts b/apps/web-react/app/features/scanner/core/timeline/index.ts similarity index 100% rename from app/features/scanner/core/timeline/index.ts rename to apps/web-react/app/features/scanner/core/timeline/index.ts diff --git a/app/features/scanner/core/timeline/same-scoreboard.ts b/apps/web-react/app/features/scanner/core/timeline/same-scoreboard.ts similarity index 100% rename from app/features/scanner/core/timeline/same-scoreboard.ts rename to apps/web-react/app/features/scanner/core/timeline/same-scoreboard.ts diff --git a/app/features/scanner/node/assets-dir.ts b/apps/web-react/app/features/scanner/node/assets-dir.ts similarity index 100% rename from app/features/scanner/node/assets-dir.ts rename to apps/web-react/app/features/scanner/node/assets-dir.ts diff --git a/app/features/scanner/node/fixtures.ts b/apps/web-react/app/features/scanner/node/fixtures.ts similarity index 100% rename from app/features/scanner/node/fixtures.ts rename to apps/web-react/app/features/scanner/node/fixtures.ts diff --git a/app/features/scanner/node/image-io.ts b/apps/web-react/app/features/scanner/node/image-io.ts similarity index 100% rename from app/features/scanner/node/image-io.ts rename to apps/web-react/app/features/scanner/node/image-io.ts diff --git a/app/features/scanner/node/resources.ts b/apps/web-react/app/features/scanner/node/resources.ts similarity index 100% rename from app/features/scanner/node/resources.ts rename to apps/web-react/app/features/scanner/node/resources.ts diff --git a/app/features/scanner/routes/scanner.tsx b/apps/web-react/app/features/scanner/routes/scanner.tsx similarity index 100% rename from app/features/scanner/routes/scanner.tsx rename to apps/web-react/app/features/scanner/routes/scanner.tsx diff --git a/app/features/scanner/scanner-schemas.ts b/apps/web-react/app/features/scanner/scanner-schemas.ts similarity index 100% rename from app/features/scanner/scanner-schemas.ts rename to apps/web-react/app/features/scanner/scanner-schemas.ts diff --git a/app/features/scanner/scanner-search-params.test.ts b/apps/web-react/app/features/scanner/scanner-search-params.test.ts similarity index 100% rename from app/features/scanner/scanner-search-params.test.ts rename to apps/web-react/app/features/scanner/scanner-search-params.test.ts diff --git a/app/features/scanner/scanner-search-params.ts b/apps/web-react/app/features/scanner/scanner-search-params.ts similarity index 100% rename from app/features/scanner/scanner-search-params.ts rename to apps/web-react/app/features/scanner/scanner-search-params.ts diff --git a/app/features/scanner/scanner-types.ts b/apps/web-react/app/features/scanner/scanner-types.ts similarity index 100% rename from app/features/scanner/scanner-types.ts rename to apps/web-react/app/features/scanner/scanner-types.ts diff --git a/app/features/scanner/scanner.module.css b/apps/web-react/app/features/scanner/scanner.module.css similarity index 100% rename from app/features/scanner/scanner.module.css rename to apps/web-react/app/features/scanner/scanner.module.css diff --git a/app/features/scanner/store/db.ts b/apps/web-react/app/features/scanner/store/db.ts similarity index 100% rename from app/features/scanner/store/db.ts rename to apps/web-react/app/features/scanner/store/db.ts diff --git a/app/features/scanner/store/events.ts b/apps/web-react/app/features/scanner/store/events.ts similarity index 100% rename from app/features/scanner/store/events.ts rename to apps/web-react/app/features/scanner/store/events.ts diff --git a/app/features/scanner/store/inspect.ts b/apps/web-react/app/features/scanner/store/inspect.ts similarity index 100% rename from app/features/scanner/store/inspect.ts rename to apps/web-react/app/features/scanner/store/inspect.ts diff --git a/app/features/scanner/store/vods.browser.test.ts b/apps/web-react/app/features/scanner/store/vods.browser.test.ts similarity index 100% rename from app/features/scanner/store/vods.browser.test.ts rename to apps/web-react/app/features/scanner/store/vods.browser.test.ts diff --git a/app/features/scanner/store/vods.ts b/apps/web-react/app/features/scanner/store/vods.ts similarity index 100% rename from app/features/scanner/store/vods.ts rename to apps/web-react/app/features/scanner/store/vods.ts diff --git a/app/features/scanner/tests/ability-harvest.test.ts b/apps/web-react/app/features/scanner/tests/ability-harvest.test.ts similarity index 100% rename from app/features/scanner/tests/ability-harvest.test.ts rename to apps/web-react/app/features/scanner/tests/ability-harvest.test.ts diff --git a/app/features/scanner/tests/banner.test.ts b/apps/web-react/app/features/scanner/tests/banner.test.ts similarity index 100% rename from app/features/scanner/tests/banner.test.ts rename to apps/web-react/app/features/scanner/tests/banner.test.ts diff --git a/app/features/scanner/tests/death.1.test.ts b/apps/web-react/app/features/scanner/tests/death.1.test.ts similarity index 100% rename from app/features/scanner/tests/death.1.test.ts rename to apps/web-react/app/features/scanner/tests/death.1.test.ts diff --git a/app/features/scanner/tests/death.2.test.ts b/apps/web-react/app/features/scanner/tests/death.2.test.ts similarity index 100% rename from app/features/scanner/tests/death.2.test.ts rename to apps/web-react/app/features/scanner/tests/death.2.test.ts diff --git a/app/features/scanner/tests/death.3.test.ts b/apps/web-react/app/features/scanner/tests/death.3.test.ts similarity index 100% rename from app/features/scanner/tests/death.3.test.ts rename to apps/web-react/app/features/scanner/tests/death.3.test.ts diff --git a/app/features/scanner/tests/fixtures/death/classic-squiffer-jp/expected.json b/apps/web-react/app/features/scanner/tests/fixtures/death/classic-squiffer-jp/expected.json similarity index 100% rename from app/features/scanner/tests/fixtures/death/classic-squiffer-jp/expected.json rename to apps/web-react/app/features/scanner/tests/fixtures/death/classic-squiffer-jp/expected.json diff --git a/app/features/scanner/tests/fixtures/death/classic-squiffer-jp/frame.png b/apps/web-react/app/features/scanner/tests/fixtures/death/classic-squiffer-jp/frame.png similarity index 100% rename from app/features/scanner/tests/fixtures/death/classic-squiffer-jp/frame.png rename to apps/web-react/app/features/scanner/tests/fixtures/death/classic-squiffer-jp/frame.png diff --git a/app/features/scanner/tests/fixtures/death/colorful-splashtag/expected.json b/apps/web-react/app/features/scanner/tests/fixtures/death/colorful-splashtag/expected.json similarity index 100% rename from app/features/scanner/tests/fixtures/death/colorful-splashtag/expected.json rename to apps/web-react/app/features/scanner/tests/fixtures/death/colorful-splashtag/expected.json diff --git a/app/features/scanner/tests/fixtures/death/colorful-splashtag/frame.png b/apps/web-react/app/features/scanner/tests/fixtures/death/colorful-splashtag/frame.png similarity index 100% rename from app/features/scanner/tests/fixtures/death/colorful-splashtag/frame.png rename to apps/web-react/app/features/scanner/tests/fixtures/death/colorful-splashtag/frame.png diff --git a/app/features/scanner/tests/fixtures/death/e-liter-4k-jp-720p/expected.json b/apps/web-react/app/features/scanner/tests/fixtures/death/e-liter-4k-jp-720p/expected.json similarity index 100% rename from app/features/scanner/tests/fixtures/death/e-liter-4k-jp-720p/expected.json rename to apps/web-react/app/features/scanner/tests/fixtures/death/e-liter-4k-jp-720p/expected.json diff --git a/app/features/scanner/tests/fixtures/death/e-liter-4k-jp-720p/frame.png b/apps/web-react/app/features/scanner/tests/fixtures/death/e-liter-4k-jp-720p/frame.png similarity index 100% rename from app/features/scanner/tests/fixtures/death/e-liter-4k-jp-720p/frame.png rename to apps/web-react/app/features/scanner/tests/fixtures/death/e-liter-4k-jp-720p/frame.png diff --git a/app/features/scanner/tests/fixtures/death/fxg-supaatan-slosher/expected.json b/apps/web-react/app/features/scanner/tests/fixtures/death/fxg-supaatan-slosher/expected.json similarity index 100% rename from app/features/scanner/tests/fixtures/death/fxg-supaatan-slosher/expected.json rename to apps/web-react/app/features/scanner/tests/fixtures/death/fxg-supaatan-slosher/expected.json diff --git a/app/features/scanner/tests/fixtures/death/fxg-supaatan-slosher/frame.png b/apps/web-react/app/features/scanner/tests/fixtures/death/fxg-supaatan-slosher/frame.png similarity index 100% rename from app/features/scanner/tests/fixtures/death/fxg-supaatan-slosher/frame.png rename to apps/web-react/app/features/scanner/tests/fixtures/death/fxg-supaatan-slosher/frame.png diff --git a/app/features/scanner/tests/fixtures/death/german-booyah-bomb/expected.json b/apps/web-react/app/features/scanner/tests/fixtures/death/german-booyah-bomb/expected.json similarity index 100% rename from app/features/scanner/tests/fixtures/death/german-booyah-bomb/expected.json rename to apps/web-react/app/features/scanner/tests/fixtures/death/german-booyah-bomb/expected.json diff --git a/app/features/scanner/tests/fixtures/death/german-booyah-bomb/frame.png b/apps/web-react/app/features/scanner/tests/fixtures/death/german-booyah-bomb/frame.png similarity index 100% rename from app/features/scanner/tests/fixtures/death/german-booyah-bomb/frame.png rename to apps/web-react/app/features/scanner/tests/fixtures/death/german-booyah-bomb/frame.png diff --git a/app/features/scanner/tests/fixtures/death/headphones/expected.json b/apps/web-react/app/features/scanner/tests/fixtures/death/headphones/expected.json similarity index 100% rename from app/features/scanner/tests/fixtures/death/headphones/expected.json rename to apps/web-react/app/features/scanner/tests/fixtures/death/headphones/expected.json diff --git a/app/features/scanner/tests/fixtures/death/headphones/frame.png b/apps/web-react/app/features/scanner/tests/fixtures/death/headphones/frame.png similarity index 100% rename from app/features/scanner/tests/fixtures/death/headphones/frame.png rename to apps/web-react/app/features/scanner/tests/fixtures/death/headphones/frame.png diff --git a/app/features/scanner/tests/fixtures/death/pink-text-special/expected.json b/apps/web-react/app/features/scanner/tests/fixtures/death/pink-text-special/expected.json similarity index 100% rename from app/features/scanner/tests/fixtures/death/pink-text-special/expected.json rename to apps/web-react/app/features/scanner/tests/fixtures/death/pink-text-special/expected.json diff --git a/app/features/scanner/tests/fixtures/death/pink-text-special/frame.png b/apps/web-react/app/features/scanner/tests/fixtures/death/pink-text-special/frame.png similarity index 100% rename from app/features/scanner/tests/fixtures/death/pink-text-special/frame.png rename to apps/web-react/app/features/scanner/tests/fixtures/death/pink-text-special/frame.png diff --git a/app/features/scanner/tests/fixtures/death/rapid-blaster-deco-heavy-kez/expected.json b/apps/web-react/app/features/scanner/tests/fixtures/death/rapid-blaster-deco-heavy-kez/expected.json similarity index 100% rename from app/features/scanner/tests/fixtures/death/rapid-blaster-deco-heavy-kez/expected.json rename to apps/web-react/app/features/scanner/tests/fixtures/death/rapid-blaster-deco-heavy-kez/expected.json diff --git a/app/features/scanner/tests/fixtures/death/rapid-blaster-deco-heavy-kez/frame.jpg b/apps/web-react/app/features/scanner/tests/fixtures/death/rapid-blaster-deco-heavy-kez/frame.jpg similarity index 100% rename from app/features/scanner/tests/fixtures/death/rapid-blaster-deco-heavy-kez/frame.jpg rename to apps/web-react/app/features/scanner/tests/fixtures/death/rapid-blaster-deco-heavy-kez/frame.jpg diff --git a/app/features/scanner/tests/fixtures/death/splattershot-tezuka/expected.json b/apps/web-react/app/features/scanner/tests/fixtures/death/splattershot-tezuka/expected.json similarity index 100% rename from app/features/scanner/tests/fixtures/death/splattershot-tezuka/expected.json rename to apps/web-react/app/features/scanner/tests/fixtures/death/splattershot-tezuka/expected.json diff --git a/app/features/scanner/tests/fixtures/death/splattershot-tezuka/frame.jpg b/apps/web-react/app/features/scanner/tests/fixtures/death/splattershot-tezuka/frame.jpg similarity index 100% rename from app/features/scanner/tests/fixtures/death/splattershot-tezuka/frame.jpg rename to apps/web-react/app/features/scanner/tests/fixtures/death/splattershot-tezuka/frame.jpg diff --git a/app/features/scanner/tests/fixtures/death/ultra-stamp-jp-720p/expected.json b/apps/web-react/app/features/scanner/tests/fixtures/death/ultra-stamp-jp-720p/expected.json similarity index 100% rename from app/features/scanner/tests/fixtures/death/ultra-stamp-jp-720p/expected.json rename to apps/web-react/app/features/scanner/tests/fixtures/death/ultra-stamp-jp-720p/expected.json diff --git a/app/features/scanner/tests/fixtures/death/ultra-stamp-jp-720p/frame.png b/apps/web-react/app/features/scanner/tests/fixtures/death/ultra-stamp-jp-720p/frame.png similarity index 100% rename from app/features/scanner/tests/fixtures/death/ultra-stamp-jp-720p/frame.png rename to apps/web-react/app/features/scanner/tests/fixtures/death/ultra-stamp-jp-720p/frame.png diff --git a/app/features/scanner/tests/fixtures/death/wipeout-52-gal/expected.json b/apps/web-react/app/features/scanner/tests/fixtures/death/wipeout-52-gal/expected.json similarity index 100% rename from app/features/scanner/tests/fixtures/death/wipeout-52-gal/expected.json rename to apps/web-react/app/features/scanner/tests/fixtures/death/wipeout-52-gal/expected.json diff --git a/app/features/scanner/tests/fixtures/death/wipeout-52-gal/frame.png b/apps/web-react/app/features/scanner/tests/fixtures/death/wipeout-52-gal/frame.png similarity index 100% rename from app/features/scanner/tests/fixtures/death/wipeout-52-gal/frame.png rename to apps/web-react/app/features/scanner/tests/fixtures/death/wipeout-52-gal/frame.png diff --git a/app/features/scanner/tests/fixtures/death/z-f-splatterscope-vod/expected.json b/apps/web-react/app/features/scanner/tests/fixtures/death/z-f-splatterscope-vod/expected.json similarity index 100% rename from app/features/scanner/tests/fixtures/death/z-f-splatterscope-vod/expected.json rename to apps/web-react/app/features/scanner/tests/fixtures/death/z-f-splatterscope-vod/expected.json diff --git a/app/features/scanner/tests/fixtures/death/z-f-splatterscope-vod/frame.png b/apps/web-react/app/features/scanner/tests/fixtures/death/z-f-splatterscope-vod/frame.png similarity index 100% rename from app/features/scanner/tests/fixtures/death/z-f-splatterscope-vod/frame.png rename to apps/web-react/app/features/scanner/tests/fixtures/death/z-f-splatterscope-vod/frame.png diff --git a/app/features/scanner/tests/fixtures/map-start/german-splat-zones-robo-rom-en/expected.json b/apps/web-react/app/features/scanner/tests/fixtures/map-start/german-splat-zones-robo-rom-en/expected.json similarity index 100% rename from app/features/scanner/tests/fixtures/map-start/german-splat-zones-robo-rom-en/expected.json rename to apps/web-react/app/features/scanner/tests/fixtures/map-start/german-splat-zones-robo-rom-en/expected.json diff --git a/app/features/scanner/tests/fixtures/map-start/german-splat-zones-robo-rom-en/frame.png b/apps/web-react/app/features/scanner/tests/fixtures/map-start/german-splat-zones-robo-rom-en/frame.png similarity index 100% rename from app/features/scanner/tests/fixtures/map-start/german-splat-zones-robo-rom-en/frame.png rename to apps/web-react/app/features/scanner/tests/fixtures/map-start/german-splat-zones-robo-rom-en/frame.png diff --git a/app/features/scanner/tests/fixtures/map-start/splat-zones-mahi/expected.json b/apps/web-react/app/features/scanner/tests/fixtures/map-start/splat-zones-mahi/expected.json similarity index 100% rename from app/features/scanner/tests/fixtures/map-start/splat-zones-mahi/expected.json rename to apps/web-react/app/features/scanner/tests/fixtures/map-start/splat-zones-mahi/expected.json diff --git a/app/features/scanner/tests/fixtures/map-start/splat-zones-mahi/frame.png b/apps/web-react/app/features/scanner/tests/fixtures/map-start/splat-zones-mahi/frame.png similarity index 100% rename from app/features/scanner/tests/fixtures/map-start/splat-zones-mahi/frame.png rename to apps/web-react/app/features/scanner/tests/fixtures/map-start/splat-zones-mahi/frame.png diff --git a/app/features/scanner/tests/fixtures/map-start/splat-zones-undertow-spillway/expected.json b/apps/web-react/app/features/scanner/tests/fixtures/map-start/splat-zones-undertow-spillway/expected.json similarity index 100% rename from app/features/scanner/tests/fixtures/map-start/splat-zones-undertow-spillway/expected.json rename to apps/web-react/app/features/scanner/tests/fixtures/map-start/splat-zones-undertow-spillway/expected.json diff --git a/app/features/scanner/tests/fixtures/map-start/splat-zones-undertow-spillway/frame.png b/apps/web-react/app/features/scanner/tests/fixtures/map-start/splat-zones-undertow-spillway/frame.png similarity index 100% rename from app/features/scanner/tests/fixtures/map-start/splat-zones-undertow-spillway/frame.png rename to apps/web-react/app/features/scanner/tests/fixtures/map-start/splat-zones-undertow-spillway/frame.png diff --git a/app/features/scanner/tests/fixtures/minimap/pov-umami-map-open-phantom-splats/expected.json b/apps/web-react/app/features/scanner/tests/fixtures/minimap/pov-umami-map-open-phantom-splats/expected.json similarity index 100% rename from app/features/scanner/tests/fixtures/minimap/pov-umami-map-open-phantom-splats/expected.json rename to apps/web-react/app/features/scanner/tests/fixtures/minimap/pov-umami-map-open-phantom-splats/expected.json diff --git a/app/features/scanner/tests/fixtures/minimap/pov-umami-map-open-phantom-splats/frame.png b/apps/web-react/app/features/scanner/tests/fixtures/minimap/pov-umami-map-open-phantom-splats/frame.png similarity index 100% rename from app/features/scanner/tests/fixtures/minimap/pov-umami-map-open-phantom-splats/frame.png rename to apps/web-react/app/features/scanner/tests/fixtures/minimap/pov-umami-map-open-phantom-splats/frame.png diff --git a/app/features/scanner/tests/fixtures/minimap/snix-special-ready/expected.json b/apps/web-react/app/features/scanner/tests/fixtures/minimap/snix-special-ready/expected.json similarity index 100% rename from app/features/scanner/tests/fixtures/minimap/snix-special-ready/expected.json rename to apps/web-react/app/features/scanner/tests/fixtures/minimap/snix-special-ready/expected.json diff --git a/app/features/scanner/tests/fixtures/minimap/snix-special-ready/frame.png b/apps/web-react/app/features/scanner/tests/fixtures/minimap/snix-special-ready/frame.png similarity index 100% rename from app/features/scanner/tests/fixtures/minimap/snix-special-ready/frame.png rename to apps/web-react/app/features/scanner/tests/fixtures/minimap/snix-special-ready/frame.png diff --git a/app/features/scanner/tests/fixtures/minimap/spectator-area-cup-round1/expected.json b/apps/web-react/app/features/scanner/tests/fixtures/minimap/spectator-area-cup-round1/expected.json similarity index 100% rename from app/features/scanner/tests/fixtures/minimap/spectator-area-cup-round1/expected.json rename to apps/web-react/app/features/scanner/tests/fixtures/minimap/spectator-area-cup-round1/expected.json diff --git a/app/features/scanner/tests/fixtures/minimap/spectator-area-cup-round1/frame.jpg b/apps/web-react/app/features/scanner/tests/fixtures/minimap/spectator-area-cup-round1/frame.jpg similarity index 100% rename from app/features/scanner/tests/fixtures/minimap/spectator-area-cup-round1/frame.jpg rename to apps/web-react/app/features/scanner/tests/fixtures/minimap/spectator-area-cup-round1/frame.jpg diff --git a/app/features/scanner/tests/fixtures/minimap/spectator-area-cup-winners-qf/expected.json b/apps/web-react/app/features/scanner/tests/fixtures/minimap/spectator-area-cup-winners-qf/expected.json similarity index 100% rename from app/features/scanner/tests/fixtures/minimap/spectator-area-cup-winners-qf/expected.json rename to apps/web-react/app/features/scanner/tests/fixtures/minimap/spectator-area-cup-winners-qf/expected.json diff --git a/app/features/scanner/tests/fixtures/minimap/spectator-area-cup-winners-qf/frame.png b/apps/web-react/app/features/scanner/tests/fixtures/minimap/spectator-area-cup-winners-qf/frame.png similarity index 100% rename from app/features/scanner/tests/fixtures/minimap/spectator-area-cup-winners-qf/frame.png rename to apps/web-react/app/features/scanner/tests/fixtures/minimap/spectator-area-cup-winners-qf/frame.png diff --git a/app/features/scanner/tests/fixtures/minimap/spectator-pxg/expected.json b/apps/web-react/app/features/scanner/tests/fixtures/minimap/spectator-pxg/expected.json similarity index 100% rename from app/features/scanner/tests/fixtures/minimap/spectator-pxg/expected.json rename to apps/web-react/app/features/scanner/tests/fixtures/minimap/spectator-pxg/expected.json diff --git a/app/features/scanner/tests/fixtures/minimap/spectator-pxg/frame.png b/apps/web-react/app/features/scanner/tests/fixtures/minimap/spectator-pxg/frame.png similarity index 100% rename from app/features/scanner/tests/fixtures/minimap/spectator-pxg/frame.png rename to apps/web-react/app/features/scanner/tests/fixtures/minimap/spectator-pxg/frame.png diff --git a/app/features/scanner/tests/fixtures/minimap/spectator-sws26-swiss/expected.json b/apps/web-react/app/features/scanner/tests/fixtures/minimap/spectator-sws26-swiss/expected.json similarity index 100% rename from app/features/scanner/tests/fixtures/minimap/spectator-sws26-swiss/expected.json rename to apps/web-react/app/features/scanner/tests/fixtures/minimap/spectator-sws26-swiss/expected.json diff --git a/app/features/scanner/tests/fixtures/minimap/spectator-sws26-swiss/frame.png b/apps/web-react/app/features/scanner/tests/fixtures/minimap/spectator-sws26-swiss/frame.png similarity index 100% rename from app/features/scanner/tests/fixtures/minimap/spectator-sws26-swiss/frame.png rename to apps/web-react/app/features/scanner/tests/fixtures/minimap/spectator-sws26-swiss/frame.png diff --git a/app/features/scanner/tests/fixtures/minimap/stonks-cross-both-teams/expected.json b/apps/web-react/app/features/scanner/tests/fixtures/minimap/stonks-cross-both-teams/expected.json similarity index 100% rename from app/features/scanner/tests/fixtures/minimap/stonks-cross-both-teams/expected.json rename to apps/web-react/app/features/scanner/tests/fixtures/minimap/stonks-cross-both-teams/expected.json diff --git a/app/features/scanner/tests/fixtures/minimap/stonks-cross-both-teams/frame.jpg b/apps/web-react/app/features/scanner/tests/fixtures/minimap/stonks-cross-both-teams/frame.jpg similarity index 100% rename from app/features/scanner/tests/fixtures/minimap/stonks-cross-both-teams/frame.jpg rename to apps/web-react/app/features/scanner/tests/fixtures/minimap/stonks-cross-both-teams/frame.jpg diff --git a/app/features/scanner/tests/fixtures/objective/splat-zones-barnacle-dime-bright-plate/expected.json b/apps/web-react/app/features/scanner/tests/fixtures/objective/splat-zones-barnacle-dime-bright-plate/expected.json similarity index 100% rename from app/features/scanner/tests/fixtures/objective/splat-zones-barnacle-dime-bright-plate/expected.json rename to apps/web-react/app/features/scanner/tests/fixtures/objective/splat-zones-barnacle-dime-bright-plate/expected.json diff --git a/app/features/scanner/tests/fixtures/objective/splat-zones-barnacle-dime-bright-plate/frame.png b/apps/web-react/app/features/scanner/tests/fixtures/objective/splat-zones-barnacle-dime-bright-plate/frame.png similarity index 100% rename from app/features/scanner/tests/fixtures/objective/splat-zones-barnacle-dime-bright-plate/frame.png rename to apps/web-react/app/features/scanner/tests/fixtures/objective/splat-zones-barnacle-dime-bright-plate/frame.png diff --git a/app/features/scanner/tests/fixtures/objective/splat-zones-barnacle-dime-double-penalty/expected.json b/apps/web-react/app/features/scanner/tests/fixtures/objective/splat-zones-barnacle-dime-double-penalty/expected.json similarity index 100% rename from app/features/scanner/tests/fixtures/objective/splat-zones-barnacle-dime-double-penalty/expected.json rename to apps/web-react/app/features/scanner/tests/fixtures/objective/splat-zones-barnacle-dime-double-penalty/expected.json diff --git a/app/features/scanner/tests/fixtures/objective/splat-zones-barnacle-dime-double-penalty/frame.png b/apps/web-react/app/features/scanner/tests/fixtures/objective/splat-zones-barnacle-dime-double-penalty/frame.png similarity index 100% rename from app/features/scanner/tests/fixtures/objective/splat-zones-barnacle-dime-double-penalty/frame.png rename to apps/web-react/app/features/scanner/tests/fixtures/objective/splat-zones-barnacle-dime-double-penalty/frame.png diff --git a/app/features/scanner/tests/fixtures/objective/splat-zones-barnacle-dime-penalty/expected.json b/apps/web-react/app/features/scanner/tests/fixtures/objective/splat-zones-barnacle-dime-penalty/expected.json similarity index 100% rename from app/features/scanner/tests/fixtures/objective/splat-zones-barnacle-dime-penalty/expected.json rename to apps/web-react/app/features/scanner/tests/fixtures/objective/splat-zones-barnacle-dime-penalty/expected.json diff --git a/app/features/scanner/tests/fixtures/objective/splat-zones-barnacle-dime-penalty/frame.png b/apps/web-react/app/features/scanner/tests/fixtures/objective/splat-zones-barnacle-dime-penalty/frame.png similarity index 100% rename from app/features/scanner/tests/fixtures/objective/splat-zones-barnacle-dime-penalty/frame.png rename to apps/web-react/app/features/scanner/tests/fixtures/objective/splat-zones-barnacle-dime-penalty/frame.png diff --git a/app/features/scanner/tests/fixtures/objective/splat-zones-barnacle-dime-start/expected.json b/apps/web-react/app/features/scanner/tests/fixtures/objective/splat-zones-barnacle-dime-start/expected.json similarity index 100% rename from app/features/scanner/tests/fixtures/objective/splat-zones-barnacle-dime-start/expected.json rename to apps/web-react/app/features/scanner/tests/fixtures/objective/splat-zones-barnacle-dime-start/expected.json diff --git a/app/features/scanner/tests/fixtures/objective/splat-zones-barnacle-dime-start/frame.png b/apps/web-react/app/features/scanner/tests/fixtures/objective/splat-zones-barnacle-dime-start/frame.png similarity index 100% rename from app/features/scanner/tests/fixtures/objective/splat-zones-barnacle-dime-start/frame.png rename to apps/web-react/app/features/scanner/tests/fixtures/objective/splat-zones-barnacle-dime-start/frame.png diff --git a/app/features/scanner/tests/fixtures/objective/splat-zones-cast-lime-control-blur-left/expected.json b/apps/web-react/app/features/scanner/tests/fixtures/objective/splat-zones-cast-lime-control-blur-left/expected.json similarity index 100% rename from app/features/scanner/tests/fixtures/objective/splat-zones-cast-lime-control-blur-left/expected.json rename to apps/web-react/app/features/scanner/tests/fixtures/objective/splat-zones-cast-lime-control-blur-left/expected.json diff --git a/app/features/scanner/tests/fixtures/objective/splat-zones-cast-lime-control-blur-left/frame.png b/apps/web-react/app/features/scanner/tests/fixtures/objective/splat-zones-cast-lime-control-blur-left/frame.png similarity index 100% rename from app/features/scanner/tests/fixtures/objective/splat-zones-cast-lime-control-blur-left/frame.png rename to apps/web-react/app/features/scanner/tests/fixtures/objective/splat-zones-cast-lime-control-blur-left/frame.png diff --git a/app/features/scanner/tests/fixtures/objective/splat-zones-cast-lime-control-blur-right/expected.json b/apps/web-react/app/features/scanner/tests/fixtures/objective/splat-zones-cast-lime-control-blur-right/expected.json similarity index 100% rename from app/features/scanner/tests/fixtures/objective/splat-zones-cast-lime-control-blur-right/expected.json rename to apps/web-react/app/features/scanner/tests/fixtures/objective/splat-zones-cast-lime-control-blur-right/expected.json diff --git a/app/features/scanner/tests/fixtures/objective/splat-zones-cast-lime-control-blur-right/frame.png b/apps/web-react/app/features/scanner/tests/fixtures/objective/splat-zones-cast-lime-control-blur-right/frame.png similarity index 100% rename from app/features/scanner/tests/fixtures/objective/splat-zones-cast-lime-control-blur-right/frame.png rename to apps/web-react/app/features/scanner/tests/fixtures/objective/splat-zones-cast-lime-control-blur-right/frame.png diff --git a/app/features/scanner/tests/fixtures/objective/splat-zones-cast-overhead-purple-right/expected.json b/apps/web-react/app/features/scanner/tests/fixtures/objective/splat-zones-cast-overhead-purple-right/expected.json similarity index 100% rename from app/features/scanner/tests/fixtures/objective/splat-zones-cast-overhead-purple-right/expected.json rename to apps/web-react/app/features/scanner/tests/fixtures/objective/splat-zones-cast-overhead-purple-right/expected.json diff --git a/app/features/scanner/tests/fixtures/objective/splat-zones-cast-overhead-purple-right/frame.png b/apps/web-react/app/features/scanner/tests/fixtures/objective/splat-zones-cast-overhead-purple-right/frame.png similarity index 100% rename from app/features/scanner/tests/fixtures/objective/splat-zones-cast-overhead-purple-right/frame.png rename to apps/web-react/app/features/scanner/tests/fixtures/objective/splat-zones-cast-overhead-purple-right/frame.png diff --git a/app/features/scanner/tests/fixtures/objective/splat-zones-cast-specced-purple-left/expected.json b/apps/web-react/app/features/scanner/tests/fixtures/objective/splat-zones-cast-specced-purple-left/expected.json similarity index 100% rename from app/features/scanner/tests/fixtures/objective/splat-zones-cast-specced-purple-left/expected.json rename to apps/web-react/app/features/scanner/tests/fixtures/objective/splat-zones-cast-specced-purple-left/expected.json diff --git a/app/features/scanner/tests/fixtures/objective/splat-zones-cast-specced-purple-left/frame.png b/apps/web-react/app/features/scanner/tests/fixtures/objective/splat-zones-cast-specced-purple-left/frame.png similarity index 100% rename from app/features/scanner/tests/fixtures/objective/splat-zones-cast-specced-purple-left/frame.png rename to apps/web-react/app/features/scanner/tests/fixtures/objective/splat-zones-cast-specced-purple-left/frame.png diff --git a/app/features/scanner/tests/fixtures/objective/splat-zones-mako-mart/expected.json b/apps/web-react/app/features/scanner/tests/fixtures/objective/splat-zones-mako-mart/expected.json similarity index 100% rename from app/features/scanner/tests/fixtures/objective/splat-zones-mako-mart/expected.json rename to apps/web-react/app/features/scanner/tests/fixtures/objective/splat-zones-mako-mart/expected.json diff --git a/app/features/scanner/tests/fixtures/objective/splat-zones-mako-mart/frame.png b/apps/web-react/app/features/scanner/tests/fixtures/objective/splat-zones-mako-mart/frame.png similarity index 100% rename from app/features/scanner/tests/fixtures/objective/splat-zones-mako-mart/frame.png rename to apps/web-react/app/features/scanner/tests/fixtures/objective/splat-zones-mako-mart/frame.png diff --git a/app/features/scanner/tests/fixtures/player-status/cast-areacup-badgeless-all-alive/expected.json b/apps/web-react/app/features/scanner/tests/fixtures/player-status/cast-areacup-badgeless-all-alive/expected.json similarity index 100% rename from app/features/scanner/tests/fixtures/player-status/cast-areacup-badgeless-all-alive/expected.json rename to apps/web-react/app/features/scanner/tests/fixtures/player-status/cast-areacup-badgeless-all-alive/expected.json diff --git a/app/features/scanner/tests/fixtures/player-status/cast-areacup-badgeless-all-alive/frame.png b/apps/web-react/app/features/scanner/tests/fixtures/player-status/cast-areacup-badgeless-all-alive/frame.png similarity index 100% rename from app/features/scanner/tests/fixtures/player-status/cast-areacup-badgeless-all-alive/frame.png rename to apps/web-react/app/features/scanner/tests/fixtures/player-status/cast-areacup-badgeless-all-alive/frame.png diff --git a/app/features/scanner/tests/fixtures/player-status/cast-areacup-false-splat-on-alive-outer-slot/expected.json b/apps/web-react/app/features/scanner/tests/fixtures/player-status/cast-areacup-false-splat-on-alive-outer-slot/expected.json similarity index 100% rename from app/features/scanner/tests/fixtures/player-status/cast-areacup-false-splat-on-alive-outer-slot/expected.json rename to apps/web-react/app/features/scanner/tests/fixtures/player-status/cast-areacup-false-splat-on-alive-outer-slot/expected.json diff --git a/app/features/scanner/tests/fixtures/player-status/cast-areacup-false-splat-on-alive-outer-slot/frame.png b/apps/web-react/app/features/scanner/tests/fixtures/player-status/cast-areacup-false-splat-on-alive-outer-slot/frame.png similarity index 100% rename from app/features/scanner/tests/fixtures/player-status/cast-areacup-false-splat-on-alive-outer-slot/frame.png rename to apps/web-react/app/features/scanner/tests/fixtures/player-status/cast-areacup-false-splat-on-alive-outer-slot/frame.png diff --git a/app/features/scanner/tests/fixtures/player-status/cast-areacup-gauge-overlay-outer-splat-dark/expected.json b/apps/web-react/app/features/scanner/tests/fixtures/player-status/cast-areacup-gauge-overlay-outer-splat-dark/expected.json similarity index 100% rename from app/features/scanner/tests/fixtures/player-status/cast-areacup-gauge-overlay-outer-splat-dark/expected.json rename to apps/web-react/app/features/scanner/tests/fixtures/player-status/cast-areacup-gauge-overlay-outer-splat-dark/expected.json diff --git a/app/features/scanner/tests/fixtures/player-status/cast-areacup-gauge-overlay-outer-splat-dark/frame.png b/apps/web-react/app/features/scanner/tests/fixtures/player-status/cast-areacup-gauge-overlay-outer-splat-dark/frame.png similarity index 100% rename from app/features/scanner/tests/fixtures/player-status/cast-areacup-gauge-overlay-outer-splat-dark/frame.png rename to apps/web-react/app/features/scanner/tests/fixtures/player-status/cast-areacup-gauge-overlay-outer-splat-dark/frame.png diff --git a/app/features/scanner/tests/fixtures/player-status/cast-areacup-gauge-overlay-outer-splat-sky/expected.json b/apps/web-react/app/features/scanner/tests/fixtures/player-status/cast-areacup-gauge-overlay-outer-splat-sky/expected.json similarity index 100% rename from app/features/scanner/tests/fixtures/player-status/cast-areacup-gauge-overlay-outer-splat-sky/expected.json rename to apps/web-react/app/features/scanner/tests/fixtures/player-status/cast-areacup-gauge-overlay-outer-splat-sky/expected.json diff --git a/app/features/scanner/tests/fixtures/player-status/cast-areacup-gauge-overlay-outer-splat-sky/frame.png b/apps/web-react/app/features/scanner/tests/fixtures/player-status/cast-areacup-gauge-overlay-outer-splat-sky/frame.png similarity index 100% rename from app/features/scanner/tests/fixtures/player-status/cast-areacup-gauge-overlay-outer-splat-sky/frame.png rename to apps/web-react/app/features/scanner/tests/fixtures/player-status/cast-areacup-gauge-overlay-outer-splat-sky/frame.png diff --git a/app/features/scanner/tests/fixtures/player-status/cast-areacup-gauge-overlay-ready-wash/expected.json b/apps/web-react/app/features/scanner/tests/fixtures/player-status/cast-areacup-gauge-overlay-ready-wash/expected.json similarity index 100% rename from app/features/scanner/tests/fixtures/player-status/cast-areacup-gauge-overlay-ready-wash/expected.json rename to apps/web-react/app/features/scanner/tests/fixtures/player-status/cast-areacup-gauge-overlay-ready-wash/expected.json diff --git a/app/features/scanner/tests/fixtures/player-status/cast-areacup-gauge-overlay-ready-wash/frame.png b/apps/web-react/app/features/scanner/tests/fixtures/player-status/cast-areacup-gauge-overlay-ready-wash/frame.png similarity index 100% rename from app/features/scanner/tests/fixtures/player-status/cast-areacup-gauge-overlay-ready-wash/frame.png rename to apps/web-react/app/features/scanner/tests/fixtures/player-status/cast-areacup-gauge-overlay-ready-wash/frame.png diff --git a/app/features/scanner/tests/fixtures/player-status/cast-areacup-mirror-gauge-overlay-false-star-after-respawn/expected.json b/apps/web-react/app/features/scanner/tests/fixtures/player-status/cast-areacup-mirror-gauge-overlay-false-star-after-respawn/expected.json similarity index 100% rename from app/features/scanner/tests/fixtures/player-status/cast-areacup-mirror-gauge-overlay-false-star-after-respawn/expected.json rename to apps/web-react/app/features/scanner/tests/fixtures/player-status/cast-areacup-mirror-gauge-overlay-false-star-after-respawn/expected.json diff --git a/app/features/scanner/tests/fixtures/player-status/cast-areacup-mirror-gauge-overlay-false-star-after-respawn/frame.png b/apps/web-react/app/features/scanner/tests/fixtures/player-status/cast-areacup-mirror-gauge-overlay-false-star-after-respawn/frame.png similarity index 100% rename from app/features/scanner/tests/fixtures/player-status/cast-areacup-mirror-gauge-overlay-false-star-after-respawn/frame.png rename to apps/web-react/app/features/scanner/tests/fixtures/player-status/cast-areacup-mirror-gauge-overlay-false-star-after-respawn/frame.png diff --git a/app/features/scanner/tests/fixtures/player-status/cast-areacup-mirror-gauge-overlay-ready-spent/expected.json b/apps/web-react/app/features/scanner/tests/fixtures/player-status/cast-areacup-mirror-gauge-overlay-ready-spent/expected.json similarity index 100% rename from app/features/scanner/tests/fixtures/player-status/cast-areacup-mirror-gauge-overlay-ready-spent/expected.json rename to apps/web-react/app/features/scanner/tests/fixtures/player-status/cast-areacup-mirror-gauge-overlay-ready-spent/expected.json diff --git a/app/features/scanner/tests/fixtures/player-status/cast-areacup-mirror-gauge-overlay-ready-spent/frame.png b/apps/web-react/app/features/scanner/tests/fixtures/player-status/cast-areacup-mirror-gauge-overlay-ready-spent/frame.png similarity index 100% rename from app/features/scanner/tests/fixtures/player-status/cast-areacup-mirror-gauge-overlay-ready-spent/frame.png rename to apps/web-react/app/features/scanner/tests/fixtures/player-status/cast-areacup-mirror-gauge-overlay-ready-spent/frame.png diff --git a/app/features/scanner/tests/fixtures/player-status/cast-areacup-mirror-overhead-splat-each-side/expected.json b/apps/web-react/app/features/scanner/tests/fixtures/player-status/cast-areacup-mirror-overhead-splat-each-side/expected.json similarity index 100% rename from app/features/scanner/tests/fixtures/player-status/cast-areacup-mirror-overhead-splat-each-side/expected.json rename to apps/web-react/app/features/scanner/tests/fixtures/player-status/cast-areacup-mirror-overhead-splat-each-side/expected.json diff --git a/app/features/scanner/tests/fixtures/player-status/cast-areacup-mirror-overhead-splat-each-side/frame.png b/apps/web-react/app/features/scanner/tests/fixtures/player-status/cast-areacup-mirror-overhead-splat-each-side/frame.png similarity index 100% rename from app/features/scanner/tests/fixtures/player-status/cast-areacup-mirror-overhead-splat-each-side/frame.png rename to apps/web-react/app/features/scanner/tests/fixtures/player-status/cast-areacup-mirror-overhead-splat-each-side/frame.png diff --git a/app/features/scanner/tests/fixtures/player-status/cast-areacup-overhead-lead-banner-alive/expected.json b/apps/web-react/app/features/scanner/tests/fixtures/player-status/cast-areacup-overhead-lead-banner-alive/expected.json similarity index 100% rename from app/features/scanner/tests/fixtures/player-status/cast-areacup-overhead-lead-banner-alive/expected.json rename to apps/web-react/app/features/scanner/tests/fixtures/player-status/cast-areacup-overhead-lead-banner-alive/expected.json diff --git a/app/features/scanner/tests/fixtures/player-status/cast-areacup-overhead-lead-banner-alive/frame.png b/apps/web-react/app/features/scanner/tests/fixtures/player-status/cast-areacup-overhead-lead-banner-alive/frame.png similarity index 100% rename from app/features/scanner/tests/fixtures/player-status/cast-areacup-overhead-lead-banner-alive/frame.png rename to apps/web-react/app/features/scanner/tests/fixtures/player-status/cast-areacup-overhead-lead-banner-alive/frame.png diff --git a/app/features/scanner/tests/fixtures/player-status/cast-areacup-overhead-pale-backdrop-alive/expected.json b/apps/web-react/app/features/scanner/tests/fixtures/player-status/cast-areacup-overhead-pale-backdrop-alive/expected.json similarity index 100% rename from app/features/scanner/tests/fixtures/player-status/cast-areacup-overhead-pale-backdrop-alive/expected.json rename to apps/web-react/app/features/scanner/tests/fixtures/player-status/cast-areacup-overhead-pale-backdrop-alive/expected.json diff --git a/app/features/scanner/tests/fixtures/player-status/cast-areacup-overhead-pale-backdrop-alive/frame.png b/apps/web-react/app/features/scanner/tests/fixtures/player-status/cast-areacup-overhead-pale-backdrop-alive/frame.png similarity index 100% rename from app/features/scanner/tests/fixtures/player-status/cast-areacup-overhead-pale-backdrop-alive/frame.png rename to apps/web-react/app/features/scanner/tests/fixtures/player-status/cast-areacup-overhead-pale-backdrop-alive/frame.png diff --git a/app/features/scanner/tests/fixtures/player-status/cast-areacup-overhead-ready-wash/expected.json b/apps/web-react/app/features/scanner/tests/fixtures/player-status/cast-areacup-overhead-ready-wash/expected.json similarity index 100% rename from app/features/scanner/tests/fixtures/player-status/cast-areacup-overhead-ready-wash/expected.json rename to apps/web-react/app/features/scanner/tests/fixtures/player-status/cast-areacup-overhead-ready-wash/expected.json diff --git a/app/features/scanner/tests/fixtures/player-status/cast-areacup-overhead-ready-wash/frame.png b/apps/web-react/app/features/scanner/tests/fixtures/player-status/cast-areacup-overhead-ready-wash/frame.png similarity index 100% rename from app/features/scanner/tests/fixtures/player-status/cast-areacup-overhead-ready-wash/frame.png rename to apps/web-react/app/features/scanner/tests/fixtures/player-status/cast-areacup-overhead-ready-wash/frame.png diff --git a/app/features/scanner/tests/fixtures/player-status/cast-areacup-overhead-wash-read-as-pov/expected.json b/apps/web-react/app/features/scanner/tests/fixtures/player-status/cast-areacup-overhead-wash-read-as-pov/expected.json similarity index 100% rename from app/features/scanner/tests/fixtures/player-status/cast-areacup-overhead-wash-read-as-pov/expected.json rename to apps/web-react/app/features/scanner/tests/fixtures/player-status/cast-areacup-overhead-wash-read-as-pov/expected.json diff --git a/app/features/scanner/tests/fixtures/player-status/cast-areacup-overhead-wash-read-as-pov/frame.png b/apps/web-react/app/features/scanner/tests/fixtures/player-status/cast-areacup-overhead-wash-read-as-pov/frame.png similarity index 100% rename from app/features/scanner/tests/fixtures/player-status/cast-areacup-overhead-wash-read-as-pov/frame.png rename to apps/web-react/app/features/scanner/tests/fixtures/player-status/cast-areacup-overhead-wash-read-as-pov/frame.png diff --git a/app/features/scanner/tests/fixtures/player-status/cast-areacup-ready-trough-two-dead/expected.json b/apps/web-react/app/features/scanner/tests/fixtures/player-status/cast-areacup-ready-trough-two-dead/expected.json similarity index 100% rename from app/features/scanner/tests/fixtures/player-status/cast-areacup-ready-trough-two-dead/expected.json rename to apps/web-react/app/features/scanner/tests/fixtures/player-status/cast-areacup-ready-trough-two-dead/expected.json diff --git a/app/features/scanner/tests/fixtures/player-status/cast-areacup-ready-trough-two-dead/frame.png b/apps/web-react/app/features/scanner/tests/fixtures/player-status/cast-areacup-ready-trough-two-dead/frame.png similarity index 100% rename from app/features/scanner/tests/fixtures/player-status/cast-areacup-ready-trough-two-dead/frame.png rename to apps/web-react/app/features/scanner/tests/fixtures/player-status/cast-areacup-ready-trough-two-dead/frame.png diff --git a/app/features/scanner/tests/fixtures/player-status/cast-areacup-splat-on-inked-backdrop/expected.json b/apps/web-react/app/features/scanner/tests/fixtures/player-status/cast-areacup-splat-on-inked-backdrop/expected.json similarity index 100% rename from app/features/scanner/tests/fixtures/player-status/cast-areacup-splat-on-inked-backdrop/expected.json rename to apps/web-react/app/features/scanner/tests/fixtures/player-status/cast-areacup-splat-on-inked-backdrop/expected.json diff --git a/app/features/scanner/tests/fixtures/player-status/cast-areacup-splat-on-inked-backdrop/frame.png b/apps/web-react/app/features/scanner/tests/fixtures/player-status/cast-areacup-splat-on-inked-backdrop/frame.png similarity index 100% rename from app/features/scanner/tests/fixtures/player-status/cast-areacup-splat-on-inked-backdrop/frame.png rename to apps/web-react/app/features/scanner/tests/fixtures/player-status/cast-areacup-splat-on-inked-backdrop/frame.png diff --git a/app/features/scanner/tests/fixtures/player-status/cast-sws26-three-dead-one-special/expected.json b/apps/web-react/app/features/scanner/tests/fixtures/player-status/cast-sws26-three-dead-one-special/expected.json similarity index 100% rename from app/features/scanner/tests/fixtures/player-status/cast-sws26-three-dead-one-special/expected.json rename to apps/web-react/app/features/scanner/tests/fixtures/player-status/cast-sws26-three-dead-one-special/expected.json diff --git a/app/features/scanner/tests/fixtures/player-status/cast-sws26-three-dead-one-special/frame.png b/apps/web-react/app/features/scanner/tests/fixtures/player-status/cast-sws26-three-dead-one-special/frame.png similarity index 100% rename from app/features/scanner/tests/fixtures/player-status/cast-sws26-three-dead-one-special/frame.png rename to apps/web-react/app/features/scanner/tests/fixtures/player-status/cast-sws26-three-dead-one-special/frame.png diff --git a/app/features/scanner/tests/fixtures/player-status/cast-triton-false-star-at-match-start/expected.json b/apps/web-react/app/features/scanner/tests/fixtures/player-status/cast-triton-false-star-at-match-start/expected.json similarity index 100% rename from app/features/scanner/tests/fixtures/player-status/cast-triton-false-star-at-match-start/expected.json rename to apps/web-react/app/features/scanner/tests/fixtures/player-status/cast-triton-false-star-at-match-start/expected.json diff --git a/app/features/scanner/tests/fixtures/player-status/cast-triton-false-star-at-match-start/frame.png b/apps/web-react/app/features/scanner/tests/fixtures/player-status/cast-triton-false-star-at-match-start/frame.png similarity index 100% rename from app/features/scanner/tests/fixtures/player-status/cast-triton-false-star-at-match-start/frame.png rename to apps/web-react/app/features/scanner/tests/fixtures/player-status/cast-triton-false-star-at-match-start/frame.png diff --git a/app/features/scanner/tests/fixtures/player-status/cast-triton-layout-flip-pov-misreads-right-team/expected.json b/apps/web-react/app/features/scanner/tests/fixtures/player-status/cast-triton-layout-flip-pov-misreads-right-team/expected.json similarity index 100% rename from app/features/scanner/tests/fixtures/player-status/cast-triton-layout-flip-pov-misreads-right-team/expected.json rename to apps/web-react/app/features/scanner/tests/fixtures/player-status/cast-triton-layout-flip-pov-misreads-right-team/expected.json diff --git a/app/features/scanner/tests/fixtures/player-status/cast-triton-layout-flip-pov-misreads-right-team/frame.png b/apps/web-react/app/features/scanner/tests/fixtures/player-status/cast-triton-layout-flip-pov-misreads-right-team/frame.png similarity index 100% rename from app/features/scanner/tests/fixtures/player-status/cast-triton-layout-flip-pov-misreads-right-team/frame.png rename to apps/web-react/app/features/scanner/tests/fixtures/player-status/cast-triton-layout-flip-pov-misreads-right-team/frame.png diff --git a/app/features/scanner/tests/fixtures/player-status/cast-triton-phantom-splat-on-alive-slot/expected.json b/apps/web-react/app/features/scanner/tests/fixtures/player-status/cast-triton-phantom-splat-on-alive-slot/expected.json similarity index 100% rename from app/features/scanner/tests/fixtures/player-status/cast-triton-phantom-splat-on-alive-slot/expected.json rename to apps/web-react/app/features/scanner/tests/fixtures/player-status/cast-triton-phantom-splat-on-alive-slot/expected.json diff --git a/app/features/scanner/tests/fixtures/player-status/cast-triton-phantom-splat-on-alive-slot/frame.png b/apps/web-react/app/features/scanner/tests/fixtures/player-status/cast-triton-phantom-splat-on-alive-slot/frame.png similarity index 100% rename from app/features/scanner/tests/fixtures/player-status/cast-triton-phantom-splat-on-alive-slot/frame.png rename to apps/web-react/app/features/scanner/tests/fixtures/player-status/cast-triton-phantom-splat-on-alive-slot/frame.png diff --git a/app/features/scanner/tests/fixtures/player-status/pov-umami-phantom-star-right-slot0/expected.json b/apps/web-react/app/features/scanner/tests/fixtures/player-status/pov-umami-phantom-star-right-slot0/expected.json similarity index 100% rename from app/features/scanner/tests/fixtures/player-status/pov-umami-phantom-star-right-slot0/expected.json rename to apps/web-react/app/features/scanner/tests/fixtures/player-status/pov-umami-phantom-star-right-slot0/expected.json diff --git a/app/features/scanner/tests/fixtures/player-status/pov-umami-phantom-star-right-slot0/frame.png b/apps/web-react/app/features/scanner/tests/fixtures/player-status/pov-umami-phantom-star-right-slot0/frame.png similarity index 100% rename from app/features/scanner/tests/fixtures/player-status/pov-umami-phantom-star-right-slot0/frame.png rename to apps/web-react/app/features/scanner/tests/fixtures/player-status/pov-umami-phantom-star-right-slot0/frame.png diff --git a/app/features/scanner/tests/fixtures/player-status/pov-umami-three-splats-cast-geometry/expected.json b/apps/web-react/app/features/scanner/tests/fixtures/player-status/pov-umami-three-splats-cast-geometry/expected.json similarity index 100% rename from app/features/scanner/tests/fixtures/player-status/pov-umami-three-splats-cast-geometry/expected.json rename to apps/web-react/app/features/scanner/tests/fixtures/player-status/pov-umami-three-splats-cast-geometry/expected.json diff --git a/app/features/scanner/tests/fixtures/player-status/pov-umami-three-splats-cast-geometry/frame.png b/apps/web-react/app/features/scanner/tests/fixtures/player-status/pov-umami-three-splats-cast-geometry/frame.png similarity index 100% rename from app/features/scanner/tests/fixtures/player-status/pov-umami-three-splats-cast-geometry/frame.png rename to apps/web-react/app/features/scanner/tests/fixtures/player-status/pov-umami-three-splats-cast-geometry/frame.png diff --git a/app/features/scanner/tests/fixtures/player-status/pov-wahoo-world-special-dead/expected.json b/apps/web-react/app/features/scanner/tests/fixtures/player-status/pov-wahoo-world-special-dead/expected.json similarity index 100% rename from app/features/scanner/tests/fixtures/player-status/pov-wahoo-world-special-dead/expected.json rename to apps/web-react/app/features/scanner/tests/fixtures/player-status/pov-wahoo-world-special-dead/expected.json diff --git a/app/features/scanner/tests/fixtures/player-status/pov-wahoo-world-special-dead/frame.png b/apps/web-react/app/features/scanner/tests/fixtures/player-status/pov-wahoo-world-special-dead/frame.png similarity index 100% rename from app/features/scanner/tests/fixtures/player-status/pov-wahoo-world-special-dead/frame.png rename to apps/web-react/app/features/scanner/tests/fixtures/player-status/pov-wahoo-world-special-dead/frame.png diff --git a/app/features/scanner/tests/fixtures/scoreboard-battle-log-replay/anarchy-open-rainmaker-knockout-museum/expected.json b/apps/web-react/app/features/scanner/tests/fixtures/scoreboard-battle-log-replay/anarchy-open-rainmaker-knockout-museum/expected.json similarity index 100% rename from app/features/scanner/tests/fixtures/scoreboard-battle-log-replay/anarchy-open-rainmaker-knockout-museum/expected.json rename to apps/web-react/app/features/scanner/tests/fixtures/scoreboard-battle-log-replay/anarchy-open-rainmaker-knockout-museum/expected.json diff --git a/app/features/scanner/tests/fixtures/scoreboard-battle-log-replay/anarchy-open-rainmaker-knockout-museum/frame.png b/apps/web-react/app/features/scanner/tests/fixtures/scoreboard-battle-log-replay/anarchy-open-rainmaker-knockout-museum/frame.png similarity index 100% rename from app/features/scanner/tests/fixtures/scoreboard-battle-log-replay/anarchy-open-rainmaker-knockout-museum/frame.png rename to apps/web-react/app/features/scanner/tests/fixtures/scoreboard-battle-log-replay/anarchy-open-rainmaker-knockout-museum/frame.png diff --git a/app/features/scanner/tests/fixtures/scoreboard-battle-log-replay/french-eeltail-alley/expected.json b/apps/web-react/app/features/scanner/tests/fixtures/scoreboard-battle-log-replay/french-eeltail-alley/expected.json similarity index 100% rename from app/features/scanner/tests/fixtures/scoreboard-battle-log-replay/french-eeltail-alley/expected.json rename to apps/web-react/app/features/scanner/tests/fixtures/scoreboard-battle-log-replay/french-eeltail-alley/expected.json diff --git a/app/features/scanner/tests/fixtures/scoreboard-battle-log-replay/french-eeltail-alley/frame.png b/apps/web-react/app/features/scanner/tests/fixtures/scoreboard-battle-log-replay/french-eeltail-alley/frame.png similarity index 100% rename from app/features/scanner/tests/fixtures/scoreboard-battle-log-replay/french-eeltail-alley/frame.png rename to apps/web-react/app/features/scanner/tests/fixtures/scoreboard-battle-log-replay/french-eeltail-alley/frame.png diff --git a/app/features/scanner/tests/fixtures/scoreboard-battle-log-replay/low-res-2/expected.json b/apps/web-react/app/features/scanner/tests/fixtures/scoreboard-battle-log-replay/low-res-2/expected.json similarity index 100% rename from app/features/scanner/tests/fixtures/scoreboard-battle-log-replay/low-res-2/expected.json rename to apps/web-react/app/features/scanner/tests/fixtures/scoreboard-battle-log-replay/low-res-2/expected.json diff --git a/app/features/scanner/tests/fixtures/scoreboard-battle-log-replay/low-res-2/frame.png b/apps/web-react/app/features/scanner/tests/fixtures/scoreboard-battle-log-replay/low-res-2/frame.png similarity index 100% rename from app/features/scanner/tests/fixtures/scoreboard-battle-log-replay/low-res-2/frame.png rename to apps/web-react/app/features/scanner/tests/fixtures/scoreboard-battle-log-replay/low-res-2/frame.png diff --git a/app/features/scanner/tests/fixtures/scoreboard-battle-log-replay/low-res/expected.json b/apps/web-react/app/features/scanner/tests/fixtures/scoreboard-battle-log-replay/low-res/expected.json similarity index 100% rename from app/features/scanner/tests/fixtures/scoreboard-battle-log-replay/low-res/expected.json rename to apps/web-react/app/features/scanner/tests/fixtures/scoreboard-battle-log-replay/low-res/expected.json diff --git a/app/features/scanner/tests/fixtures/scoreboard-battle-log-replay/low-res/frame.png b/apps/web-react/app/features/scanner/tests/fixtures/scoreboard-battle-log-replay/low-res/frame.png similarity index 100% rename from app/features/scanner/tests/fixtures/scoreboard-battle-log-replay/low-res/frame.png rename to apps/web-react/app/features/scanner/tests/fixtures/scoreboard-battle-log-replay/low-res/frame.png diff --git a/app/features/scanner/tests/fixtures/scoreboard-battle-log-replay/private-battle-crableg-capital/expected.json b/apps/web-react/app/features/scanner/tests/fixtures/scoreboard-battle-log-replay/private-battle-crableg-capital/expected.json similarity index 100% rename from app/features/scanner/tests/fixtures/scoreboard-battle-log-replay/private-battle-crableg-capital/expected.json rename to apps/web-react/app/features/scanner/tests/fixtures/scoreboard-battle-log-replay/private-battle-crableg-capital/expected.json diff --git a/app/features/scanner/tests/fixtures/scoreboard-battle-log-replay/private-battle-crableg-capital/frame.png b/apps/web-react/app/features/scanner/tests/fixtures/scoreboard-battle-log-replay/private-battle-crableg-capital/frame.png similarity index 100% rename from app/features/scanner/tests/fixtures/scoreboard-battle-log-replay/private-battle-crableg-capital/frame.png rename to apps/web-react/app/features/scanner/tests/fixtures/scoreboard-battle-log-replay/private-battle-crableg-capital/frame.png diff --git a/app/features/scanner/tests/fixtures/scoreboard-battle-log-replay/private-battle-makomart/expected.json b/apps/web-react/app/features/scanner/tests/fixtures/scoreboard-battle-log-replay/private-battle-makomart/expected.json similarity index 100% rename from app/features/scanner/tests/fixtures/scoreboard-battle-log-replay/private-battle-makomart/expected.json rename to apps/web-react/app/features/scanner/tests/fixtures/scoreboard-battle-log-replay/private-battle-makomart/expected.json diff --git a/app/features/scanner/tests/fixtures/scoreboard-battle-log-replay/private-battle-makomart/frame.png b/apps/web-react/app/features/scanner/tests/fixtures/scoreboard-battle-log-replay/private-battle-makomart/frame.png similarity index 100% rename from app/features/scanner/tests/fixtures/scoreboard-battle-log-replay/private-battle-makomart/frame.png rename to apps/web-react/app/features/scanner/tests/fixtures/scoreboard-battle-log-replay/private-battle-makomart/frame.png diff --git a/app/features/scanner/tests/fixtures/scoreboard-battle-log-replay/private-battle-splat-zones-hagglefish/expected.json b/apps/web-react/app/features/scanner/tests/fixtures/scoreboard-battle-log-replay/private-battle-splat-zones-hagglefish/expected.json similarity index 100% rename from app/features/scanner/tests/fixtures/scoreboard-battle-log-replay/private-battle-splat-zones-hagglefish/expected.json rename to apps/web-react/app/features/scanner/tests/fixtures/scoreboard-battle-log-replay/private-battle-splat-zones-hagglefish/expected.json diff --git a/app/features/scanner/tests/fixtures/scoreboard-battle-log-replay/private-battle-splat-zones-hagglefish/frame.jpeg b/apps/web-react/app/features/scanner/tests/fixtures/scoreboard-battle-log-replay/private-battle-splat-zones-hagglefish/frame.jpeg similarity index 100% rename from app/features/scanner/tests/fixtures/scoreboard-battle-log-replay/private-battle-splat-zones-hagglefish/frame.jpeg rename to apps/web-react/app/features/scanner/tests/fixtures/scoreboard-battle-log-replay/private-battle-splat-zones-hagglefish/frame.jpeg diff --git a/app/features/scanner/tests/fixtures/scoreboard-battle-log-replay/private-battle-splat-zones-marlin/expected.json b/apps/web-react/app/features/scanner/tests/fixtures/scoreboard-battle-log-replay/private-battle-splat-zones-marlin/expected.json similarity index 100% rename from app/features/scanner/tests/fixtures/scoreboard-battle-log-replay/private-battle-splat-zones-marlin/expected.json rename to apps/web-react/app/features/scanner/tests/fixtures/scoreboard-battle-log-replay/private-battle-splat-zones-marlin/expected.json diff --git a/app/features/scanner/tests/fixtures/scoreboard-battle-log-replay/private-battle-splat-zones-marlin/frame.png b/apps/web-react/app/features/scanner/tests/fixtures/scoreboard-battle-log-replay/private-battle-splat-zones-marlin/frame.png similarity index 100% rename from app/features/scanner/tests/fixtures/scoreboard-battle-log-replay/private-battle-splat-zones-marlin/frame.png rename to apps/web-react/app/features/scanner/tests/fixtures/scoreboard-battle-log-replay/private-battle-splat-zones-marlin/frame.png diff --git a/app/features/scanner/tests/fixtures/scoreboard-battle-log-replay/x-battle-rainmaker-brinewater-1404/expected.json b/apps/web-react/app/features/scanner/tests/fixtures/scoreboard-battle-log-replay/x-battle-rainmaker-brinewater-1404/expected.json similarity index 100% rename from app/features/scanner/tests/fixtures/scoreboard-battle-log-replay/x-battle-rainmaker-brinewater-1404/expected.json rename to apps/web-react/app/features/scanner/tests/fixtures/scoreboard-battle-log-replay/x-battle-rainmaker-brinewater-1404/expected.json diff --git a/app/features/scanner/tests/fixtures/scoreboard-battle-log-replay/x-battle-rainmaker-brinewater-1404/frame.png b/apps/web-react/app/features/scanner/tests/fixtures/scoreboard-battle-log-replay/x-battle-rainmaker-brinewater-1404/frame.png similarity index 100% rename from app/features/scanner/tests/fixtures/scoreboard-battle-log-replay/x-battle-rainmaker-brinewater-1404/frame.png rename to apps/web-react/app/features/scanner/tests/fixtures/scoreboard-battle-log-replay/x-battle-rainmaker-brinewater-1404/frame.png diff --git a/app/features/scanner/tests/fixtures/scoreboard-battle-log-replay/x-battle-rainmaker-brinewater-1411/expected.json b/apps/web-react/app/features/scanner/tests/fixtures/scoreboard-battle-log-replay/x-battle-rainmaker-brinewater-1411/expected.json similarity index 100% rename from app/features/scanner/tests/fixtures/scoreboard-battle-log-replay/x-battle-rainmaker-brinewater-1411/expected.json rename to apps/web-react/app/features/scanner/tests/fixtures/scoreboard-battle-log-replay/x-battle-rainmaker-brinewater-1411/expected.json diff --git a/app/features/scanner/tests/fixtures/scoreboard-battle-log-replay/x-battle-rainmaker-brinewater-1411/frame.png b/apps/web-react/app/features/scanner/tests/fixtures/scoreboard-battle-log-replay/x-battle-rainmaker-brinewater-1411/frame.png similarity index 100% rename from app/features/scanner/tests/fixtures/scoreboard-battle-log-replay/x-battle-rainmaker-brinewater-1411/frame.png rename to apps/web-react/app/features/scanner/tests/fixtures/scoreboard-battle-log-replay/x-battle-rainmaker-brinewater-1411/frame.png diff --git a/app/features/scanner/tests/fixtures/scoreboard-battle-log-replay/x-battle-rainmaker-brinewater-1416/expected.json b/apps/web-react/app/features/scanner/tests/fixtures/scoreboard-battle-log-replay/x-battle-rainmaker-brinewater-1416/expected.json similarity index 100% rename from app/features/scanner/tests/fixtures/scoreboard-battle-log-replay/x-battle-rainmaker-brinewater-1416/expected.json rename to apps/web-react/app/features/scanner/tests/fixtures/scoreboard-battle-log-replay/x-battle-rainmaker-brinewater-1416/expected.json diff --git a/app/features/scanner/tests/fixtures/scoreboard-battle-log-replay/x-battle-rainmaker-brinewater-1416/frame.png b/apps/web-react/app/features/scanner/tests/fixtures/scoreboard-battle-log-replay/x-battle-rainmaker-brinewater-1416/frame.png similarity index 100% rename from app/features/scanner/tests/fixtures/scoreboard-battle-log-replay/x-battle-rainmaker-brinewater-1416/frame.png rename to apps/web-react/app/features/scanner/tests/fixtures/scoreboard-battle-log-replay/x-battle-rainmaker-brinewater-1416/frame.png diff --git a/app/features/scanner/tests/fixtures/scoreboard-battle-log-replay/x-battle-rainmaker-brinewater-1422/expected.json b/apps/web-react/app/features/scanner/tests/fixtures/scoreboard-battle-log-replay/x-battle-rainmaker-brinewater-1422/expected.json similarity index 100% rename from app/features/scanner/tests/fixtures/scoreboard-battle-log-replay/x-battle-rainmaker-brinewater-1422/expected.json rename to apps/web-react/app/features/scanner/tests/fixtures/scoreboard-battle-log-replay/x-battle-rainmaker-brinewater-1422/expected.json diff --git a/app/features/scanner/tests/fixtures/scoreboard-battle-log-replay/x-battle-rainmaker-brinewater-1422/frame.png b/apps/web-react/app/features/scanner/tests/fixtures/scoreboard-battle-log-replay/x-battle-rainmaker-brinewater-1422/frame.png similarity index 100% rename from app/features/scanner/tests/fixtures/scoreboard-battle-log-replay/x-battle-rainmaker-brinewater-1422/frame.png rename to apps/web-react/app/features/scanner/tests/fixtures/scoreboard-battle-log-replay/x-battle-rainmaker-brinewater-1422/frame.png diff --git a/app/features/scanner/tests/fixtures/scoreboard-battle-log-replay/x-battle-rainmaker-urchin-1434/expected.json b/apps/web-react/app/features/scanner/tests/fixtures/scoreboard-battle-log-replay/x-battle-rainmaker-urchin-1434/expected.json similarity index 100% rename from app/features/scanner/tests/fixtures/scoreboard-battle-log-replay/x-battle-rainmaker-urchin-1434/expected.json rename to apps/web-react/app/features/scanner/tests/fixtures/scoreboard-battle-log-replay/x-battle-rainmaker-urchin-1434/expected.json diff --git a/app/features/scanner/tests/fixtures/scoreboard-battle-log-replay/x-battle-rainmaker-urchin-1434/frame.png b/apps/web-react/app/features/scanner/tests/fixtures/scoreboard-battle-log-replay/x-battle-rainmaker-urchin-1434/frame.png similarity index 100% rename from app/features/scanner/tests/fixtures/scoreboard-battle-log-replay/x-battle-rainmaker-urchin-1434/frame.png rename to apps/web-react/app/features/scanner/tests/fixtures/scoreboard-battle-log-replay/x-battle-rainmaker-urchin-1434/frame.png diff --git a/app/features/scanner/tests/fixtures/scoreboard-battle-log/private-battle-rainmaker-lemuria-hub/expected.json b/apps/web-react/app/features/scanner/tests/fixtures/scoreboard-battle-log/private-battle-rainmaker-lemuria-hub/expected.json similarity index 100% rename from app/features/scanner/tests/fixtures/scoreboard-battle-log/private-battle-rainmaker-lemuria-hub/expected.json rename to apps/web-react/app/features/scanner/tests/fixtures/scoreboard-battle-log/private-battle-rainmaker-lemuria-hub/expected.json diff --git a/app/features/scanner/tests/fixtures/scoreboard-battle-log/private-battle-rainmaker-lemuria-hub/frame.png b/apps/web-react/app/features/scanner/tests/fixtures/scoreboard-battle-log/private-battle-rainmaker-lemuria-hub/frame.png similarity index 100% rename from app/features/scanner/tests/fixtures/scoreboard-battle-log/private-battle-rainmaker-lemuria-hub/frame.png rename to apps/web-react/app/features/scanner/tests/fixtures/scoreboard-battle-log/private-battle-rainmaker-lemuria-hub/frame.png diff --git a/app/features/scanner/tests/fixtures/scoreboard-battle-log/private-battle-splat-zones-makomart/expected.json b/apps/web-react/app/features/scanner/tests/fixtures/scoreboard-battle-log/private-battle-splat-zones-makomart/expected.json similarity index 100% rename from app/features/scanner/tests/fixtures/scoreboard-battle-log/private-battle-splat-zones-makomart/expected.json rename to apps/web-react/app/features/scanner/tests/fixtures/scoreboard-battle-log/private-battle-splat-zones-makomart/expected.json diff --git a/app/features/scanner/tests/fixtures/scoreboard-battle-log/private-battle-splat-zones-makomart/frame.png b/apps/web-react/app/features/scanner/tests/fixtures/scoreboard-battle-log/private-battle-splat-zones-makomart/frame.png similarity index 100% rename from app/features/scanner/tests/fixtures/scoreboard-battle-log/private-battle-splat-zones-makomart/frame.png rename to apps/web-react/app/features/scanner/tests/fixtures/scoreboard-battle-log/private-battle-splat-zones-makomart/frame.png diff --git a/app/features/scanner/tests/fixtures/scoreboard-battle-log/private-battle-splat-zones-robo-rom-en/expected.json b/apps/web-react/app/features/scanner/tests/fixtures/scoreboard-battle-log/private-battle-splat-zones-robo-rom-en/expected.json similarity index 100% rename from app/features/scanner/tests/fixtures/scoreboard-battle-log/private-battle-splat-zones-robo-rom-en/expected.json rename to apps/web-react/app/features/scanner/tests/fixtures/scoreboard-battle-log/private-battle-splat-zones-robo-rom-en/expected.json diff --git a/app/features/scanner/tests/fixtures/scoreboard-battle-log/private-battle-splat-zones-robo-rom-en/frame.png b/apps/web-react/app/features/scanner/tests/fixtures/scoreboard-battle-log/private-battle-splat-zones-robo-rom-en/frame.png similarity index 100% rename from app/features/scanner/tests/fixtures/scoreboard-battle-log/private-battle-splat-zones-robo-rom-en/frame.png rename to apps/web-react/app/features/scanner/tests/fixtures/scoreboard-battle-log/private-battle-splat-zones-robo-rom-en/frame.png diff --git a/app/features/scanner/tests/fixtures/scoreboard-battle-log/private-battle-splat-zones-wahoo-world/expected.json b/apps/web-react/app/features/scanner/tests/fixtures/scoreboard-battle-log/private-battle-splat-zones-wahoo-world/expected.json similarity index 100% rename from app/features/scanner/tests/fixtures/scoreboard-battle-log/private-battle-splat-zones-wahoo-world/expected.json rename to apps/web-react/app/features/scanner/tests/fixtures/scoreboard-battle-log/private-battle-splat-zones-wahoo-world/expected.json diff --git a/app/features/scanner/tests/fixtures/scoreboard-battle-log/private-battle-splat-zones-wahoo-world/frame.png b/apps/web-react/app/features/scanner/tests/fixtures/scoreboard-battle-log/private-battle-splat-zones-wahoo-world/frame.png similarity index 100% rename from app/features/scanner/tests/fixtures/scoreboard-battle-log/private-battle-splat-zones-wahoo-world/frame.png rename to apps/web-react/app/features/scanner/tests/fixtures/scoreboard-battle-log/private-battle-splat-zones-wahoo-world/frame.png diff --git a/app/features/scanner/tests/fixtures/scoreboard-battle-log/x-battle-clam-blitz-lemuria/expected.json b/apps/web-react/app/features/scanner/tests/fixtures/scoreboard-battle-log/x-battle-clam-blitz-lemuria/expected.json similarity index 100% rename from app/features/scanner/tests/fixtures/scoreboard-battle-log/x-battle-clam-blitz-lemuria/expected.json rename to apps/web-react/app/features/scanner/tests/fixtures/scoreboard-battle-log/x-battle-clam-blitz-lemuria/expected.json diff --git a/app/features/scanner/tests/fixtures/scoreboard-battle-log/x-battle-clam-blitz-lemuria/frame.png b/apps/web-react/app/features/scanner/tests/fixtures/scoreboard-battle-log/x-battle-clam-blitz-lemuria/frame.png similarity index 100% rename from app/features/scanner/tests/fixtures/scoreboard-battle-log/x-battle-clam-blitz-lemuria/frame.png rename to apps/web-react/app/features/scanner/tests/fixtures/scoreboard-battle-log/x-battle-clam-blitz-lemuria/frame.png diff --git a/app/features/scanner/tests/fixtures/scoreboard-own/order-slosher-replica/expected.json b/apps/web-react/app/features/scanner/tests/fixtures/scoreboard-own/order-slosher-replica/expected.json similarity index 100% rename from app/features/scanner/tests/fixtures/scoreboard-own/order-slosher-replica/expected.json rename to apps/web-react/app/features/scanner/tests/fixtures/scoreboard-own/order-slosher-replica/expected.json diff --git a/app/features/scanner/tests/fixtures/scoreboard-own/order-slosher-replica/frame.png b/apps/web-react/app/features/scanner/tests/fixtures/scoreboard-own/order-slosher-replica/frame.png similarity index 100% rename from app/features/scanner/tests/fixtures/scoreboard-own/order-slosher-replica/frame.png rename to apps/web-react/app/features/scanner/tests/fixtures/scoreboard-own/order-slosher-replica/frame.png diff --git a/app/features/scanner/tests/fixtures/scoreboard-own/private-battle-splat-zones-museum/expected.json b/apps/web-react/app/features/scanner/tests/fixtures/scoreboard-own/private-battle-splat-zones-museum/expected.json similarity index 100% rename from app/features/scanner/tests/fixtures/scoreboard-own/private-battle-splat-zones-museum/expected.json rename to apps/web-react/app/features/scanner/tests/fixtures/scoreboard-own/private-battle-splat-zones-museum/expected.json diff --git a/app/features/scanner/tests/fixtures/scoreboard-own/private-battle-splat-zones-museum/frame.png b/apps/web-react/app/features/scanner/tests/fixtures/scoreboard-own/private-battle-splat-zones-museum/frame.png similarity index 100% rename from app/features/scanner/tests/fixtures/scoreboard-own/private-battle-splat-zones-museum/frame.png rename to apps/web-react/app/features/scanner/tests/fixtures/scoreboard-own/private-battle-splat-zones-museum/frame.png diff --git a/app/features/scanner/tests/fixtures/scoreboard/german-private-battle-clam-blitz/expected.json b/apps/web-react/app/features/scanner/tests/fixtures/scoreboard/german-private-battle-clam-blitz/expected.json similarity index 100% rename from app/features/scanner/tests/fixtures/scoreboard/german-private-battle-clam-blitz/expected.json rename to apps/web-react/app/features/scanner/tests/fixtures/scoreboard/german-private-battle-clam-blitz/expected.json diff --git a/app/features/scanner/tests/fixtures/scoreboard/german-private-battle-clam-blitz/frame.png b/apps/web-react/app/features/scanner/tests/fixtures/scoreboard/german-private-battle-clam-blitz/frame.png similarity index 100% rename from app/features/scanner/tests/fixtures/scoreboard/german-private-battle-clam-blitz/frame.png rename to apps/web-react/app/features/scanner/tests/fixtures/scoreboard/german-private-battle-clam-blitz/frame.png diff --git a/app/features/scanner/tests/fixtures/scoreboard/private-battle-splat-zones-ko-hagglefish/expected.json b/apps/web-react/app/features/scanner/tests/fixtures/scoreboard/private-battle-splat-zones-ko-hagglefish/expected.json similarity index 100% rename from app/features/scanner/tests/fixtures/scoreboard/private-battle-splat-zones-ko-hagglefish/expected.json rename to apps/web-react/app/features/scanner/tests/fixtures/scoreboard/private-battle-splat-zones-ko-hagglefish/expected.json diff --git a/app/features/scanner/tests/fixtures/scoreboard/private-battle-splat-zones-ko-hagglefish/frame.png b/apps/web-react/app/features/scanner/tests/fixtures/scoreboard/private-battle-splat-zones-ko-hagglefish/frame.png similarity index 100% rename from app/features/scanner/tests/fixtures/scoreboard/private-battle-splat-zones-ko-hagglefish/frame.png rename to apps/web-react/app/features/scanner/tests/fixtures/scoreboard/private-battle-splat-zones-ko-hagglefish/frame.png diff --git a/app/features/scanner/tests/fixtures/scoreboard/private-battle-splat-zones-ko-kera-2/expected.json b/apps/web-react/app/features/scanner/tests/fixtures/scoreboard/private-battle-splat-zones-ko-kera-2/expected.json similarity index 100% rename from app/features/scanner/tests/fixtures/scoreboard/private-battle-splat-zones-ko-kera-2/expected.json rename to apps/web-react/app/features/scanner/tests/fixtures/scoreboard/private-battle-splat-zones-ko-kera-2/expected.json diff --git a/app/features/scanner/tests/fixtures/scoreboard/private-battle-splat-zones-ko-kera-2/frame.png b/apps/web-react/app/features/scanner/tests/fixtures/scoreboard/private-battle-splat-zones-ko-kera-2/frame.png similarity index 100% rename from app/features/scanner/tests/fixtures/scoreboard/private-battle-splat-zones-ko-kera-2/frame.png rename to apps/web-react/app/features/scanner/tests/fixtures/scoreboard/private-battle-splat-zones-ko-kera-2/frame.png diff --git a/app/features/scanner/tests/fixtures/scoreboard/private-battle-splat-zones-ko-kera/expected.json b/apps/web-react/app/features/scanner/tests/fixtures/scoreboard/private-battle-splat-zones-ko-kera/expected.json similarity index 100% rename from app/features/scanner/tests/fixtures/scoreboard/private-battle-splat-zones-ko-kera/expected.json rename to apps/web-react/app/features/scanner/tests/fixtures/scoreboard/private-battle-splat-zones-ko-kera/expected.json diff --git a/app/features/scanner/tests/fixtures/scoreboard/private-battle-splat-zones-ko-kera/frame.png b/apps/web-react/app/features/scanner/tests/fixtures/scoreboard/private-battle-splat-zones-ko-kera/frame.png similarity index 100% rename from app/features/scanner/tests/fixtures/scoreboard/private-battle-splat-zones-ko-kera/frame.png rename to apps/web-react/app/features/scanner/tests/fixtures/scoreboard/private-battle-splat-zones-ko-kera/frame.png diff --git a/app/features/scanner/tests/fixtures/scoreboard/private-battle-splat-zones-umami/expected.json b/apps/web-react/app/features/scanner/tests/fixtures/scoreboard/private-battle-splat-zones-umami/expected.json similarity index 100% rename from app/features/scanner/tests/fixtures/scoreboard/private-battle-splat-zones-umami/expected.json rename to apps/web-react/app/features/scanner/tests/fixtures/scoreboard/private-battle-splat-zones-umami/expected.json diff --git a/app/features/scanner/tests/fixtures/scoreboard/private-battle-splat-zones-umami/frame.png b/apps/web-react/app/features/scanner/tests/fixtures/scoreboard/private-battle-splat-zones-umami/frame.png similarity index 100% rename from app/features/scanner/tests/fixtures/scoreboard/private-battle-splat-zones-umami/frame.png rename to apps/web-react/app/features/scanner/tests/fixtures/scoreboard/private-battle-splat-zones-umami/frame.png diff --git a/app/features/scanner/tests/fixtures/scoreboard/private-battle-triton-cup-154-sendou/expected.json b/apps/web-react/app/features/scanner/tests/fixtures/scoreboard/private-battle-triton-cup-154-sendou/expected.json similarity index 100% rename from app/features/scanner/tests/fixtures/scoreboard/private-battle-triton-cup-154-sendou/expected.json rename to apps/web-react/app/features/scanner/tests/fixtures/scoreboard/private-battle-triton-cup-154-sendou/expected.json diff --git a/app/features/scanner/tests/fixtures/scoreboard/private-battle-triton-cup-154-sendou/frame.png b/apps/web-react/app/features/scanner/tests/fixtures/scoreboard/private-battle-triton-cup-154-sendou/frame.png similarity index 100% rename from app/features/scanner/tests/fixtures/scoreboard/private-battle-triton-cup-154-sendou/frame.png rename to apps/web-react/app/features/scanner/tests/fixtures/scoreboard/private-battle-triton-cup-154-sendou/frame.png diff --git a/app/features/scanner/tests/fixtures/scoreboard/robot/expected.json b/apps/web-react/app/features/scanner/tests/fixtures/scoreboard/robot/expected.json similarity index 100% rename from app/features/scanner/tests/fixtures/scoreboard/robot/expected.json rename to apps/web-react/app/features/scanner/tests/fixtures/scoreboard/robot/expected.json diff --git a/app/features/scanner/tests/fixtures/scoreboard/robot/frame.png b/apps/web-react/app/features/scanner/tests/fixtures/scoreboard/robot/frame.png similarity index 100% rename from app/features/scanner/tests/fixtures/scoreboard/robot/frame.png rename to apps/web-react/app/features/scanner/tests/fixtures/scoreboard/robot/frame.png diff --git a/app/features/scanner/tests/fixtures/scoreboard/special-symbols/expected.json b/apps/web-react/app/features/scanner/tests/fixtures/scoreboard/special-symbols/expected.json similarity index 100% rename from app/features/scanner/tests/fixtures/scoreboard/special-symbols/expected.json rename to apps/web-react/app/features/scanner/tests/fixtures/scoreboard/special-symbols/expected.json diff --git a/app/features/scanner/tests/fixtures/scoreboard/special-symbols/frame.png b/apps/web-react/app/features/scanner/tests/fixtures/scoreboard/special-symbols/frame.png similarity index 100% rename from app/features/scanner/tests/fixtures/scoreboard/special-symbols/frame.png rename to apps/web-react/app/features/scanner/tests/fixtures/scoreboard/special-symbols/frame.png diff --git a/app/features/scanner/tests/fixtures/scoreboard/splash-sploosh/expected.json b/apps/web-react/app/features/scanner/tests/fixtures/scoreboard/splash-sploosh/expected.json similarity index 100% rename from app/features/scanner/tests/fixtures/scoreboard/splash-sploosh/expected.json rename to apps/web-react/app/features/scanner/tests/fixtures/scoreboard/splash-sploosh/expected.json diff --git a/app/features/scanner/tests/fixtures/scoreboard/splash-sploosh/frame.png b/apps/web-react/app/features/scanner/tests/fixtures/scoreboard/splash-sploosh/frame.png similarity index 100% rename from app/features/scanner/tests/fixtures/scoreboard/splash-sploosh/frame.png rename to apps/web-react/app/features/scanner/tests/fixtures/scoreboard/splash-sploosh/frame.png diff --git a/app/features/scanner/tests/fixtures/scoreboard/xbattle-splat-zones-ko-capture/expected.json b/apps/web-react/app/features/scanner/tests/fixtures/scoreboard/xbattle-splat-zones-ko-capture/expected.json similarity index 100% rename from app/features/scanner/tests/fixtures/scoreboard/xbattle-splat-zones-ko-capture/expected.json rename to apps/web-react/app/features/scanner/tests/fixtures/scoreboard/xbattle-splat-zones-ko-capture/expected.json diff --git a/app/features/scanner/tests/fixtures/scoreboard/xbattle-splat-zones-ko-capture/frame.png b/apps/web-react/app/features/scanner/tests/fixtures/scoreboard/xbattle-splat-zones-ko-capture/frame.png similarity index 100% rename from app/features/scanner/tests/fixtures/scoreboard/xbattle-splat-zones-ko-capture/frame.png rename to apps/web-react/app/features/scanner/tests/fixtures/scoreboard/xbattle-splat-zones-ko-capture/frame.png diff --git a/app/features/scanner/tests/fixtures/scoreboard/xbattle-splat-zones-ko/expected.json b/apps/web-react/app/features/scanner/tests/fixtures/scoreboard/xbattle-splat-zones-ko/expected.json similarity index 100% rename from app/features/scanner/tests/fixtures/scoreboard/xbattle-splat-zones-ko/expected.json rename to apps/web-react/app/features/scanner/tests/fixtures/scoreboard/xbattle-splat-zones-ko/expected.json diff --git a/app/features/scanner/tests/fixtures/scoreboard/xbattle-splat-zones-ko/frame.jpg b/apps/web-react/app/features/scanner/tests/fixtures/scoreboard/xbattle-splat-zones-ko/frame.jpg similarity index 100% rename from app/features/scanner/tests/fixtures/scoreboard/xbattle-splat-zones-ko/frame.jpg rename to apps/web-react/app/features/scanner/tests/fixtures/scoreboard/xbattle-splat-zones-ko/frame.jpg diff --git a/app/features/scanner/tests/fixtures/strip-weapons/triton-mahi-allalive-4m33/expected.json b/apps/web-react/app/features/scanner/tests/fixtures/strip-weapons/triton-mahi-allalive-4m33/expected.json similarity index 100% rename from app/features/scanner/tests/fixtures/strip-weapons/triton-mahi-allalive-4m33/expected.json rename to apps/web-react/app/features/scanner/tests/fixtures/strip-weapons/triton-mahi-allalive-4m33/expected.json diff --git a/app/features/scanner/tests/fixtures/strip-weapons/triton-mahi-allalive-4m33/frame.png b/apps/web-react/app/features/scanner/tests/fixtures/strip-weapons/triton-mahi-allalive-4m33/frame.png similarity index 100% rename from app/features/scanner/tests/fixtures/strip-weapons/triton-mahi-allalive-4m33/frame.png rename to apps/web-react/app/features/scanner/tests/fixtures/strip-weapons/triton-mahi-allalive-4m33/frame.png diff --git a/app/features/scanner/tests/fixtures/strip-weapons/triton-mahi-allalive-4m59/expected.json b/apps/web-react/app/features/scanner/tests/fixtures/strip-weapons/triton-mahi-allalive-4m59/expected.json similarity index 100% rename from app/features/scanner/tests/fixtures/strip-weapons/triton-mahi-allalive-4m59/expected.json rename to apps/web-react/app/features/scanner/tests/fixtures/strip-weapons/triton-mahi-allalive-4m59/expected.json diff --git a/app/features/scanner/tests/fixtures/strip-weapons/triton-mahi-allalive-4m59/frame.png b/apps/web-react/app/features/scanner/tests/fixtures/strip-weapons/triton-mahi-allalive-4m59/frame.png similarity index 100% rename from app/features/scanner/tests/fixtures/strip-weapons/triton-mahi-allalive-4m59/frame.png rename to apps/web-react/app/features/scanner/tests/fixtures/strip-weapons/triton-mahi-allalive-4m59/frame.png diff --git a/app/features/scanner/tests/fixtures/strip-weapons/triton-mahi-twodead-4m17/expected.json b/apps/web-react/app/features/scanner/tests/fixtures/strip-weapons/triton-mahi-twodead-4m17/expected.json similarity index 100% rename from app/features/scanner/tests/fixtures/strip-weapons/triton-mahi-twodead-4m17/expected.json rename to apps/web-react/app/features/scanner/tests/fixtures/strip-weapons/triton-mahi-twodead-4m17/expected.json diff --git a/app/features/scanner/tests/fixtures/strip-weapons/triton-mahi-twodead-4m17/frame.png b/apps/web-react/app/features/scanner/tests/fixtures/strip-weapons/triton-mahi-twodead-4m17/frame.png similarity index 100% rename from app/features/scanner/tests/fixtures/strip-weapons/triton-mahi-twodead-4m17/frame.png rename to apps/web-react/app/features/scanner/tests/fixtures/strip-weapons/triton-mahi-twodead-4m17/frame.png diff --git a/app/features/scanner/tests/logic/dedupe-events.test.ts b/apps/web-react/app/features/scanner/tests/logic/dedupe-events.test.ts similarity index 100% rename from app/features/scanner/tests/logic/dedupe-events.test.ts rename to apps/web-react/app/features/scanner/tests/logic/dedupe-events.test.ts diff --git a/app/features/scanner/tests/logic/match-builder.test.ts b/apps/web-react/app/features/scanner/tests/logic/match-builder.test.ts similarity index 100% rename from app/features/scanner/tests/logic/match-builder.test.ts rename to apps/web-react/app/features/scanner/tests/logic/match-builder.test.ts diff --git a/app/features/scanner/tests/logic/match-sets.test.ts b/apps/web-react/app/features/scanner/tests/logic/match-sets.test.ts similarity index 100% rename from app/features/scanner/tests/logic/match-sets.test.ts rename to apps/web-react/app/features/scanner/tests/logic/match-sets.test.ts diff --git a/app/features/scanner/tests/logic/scheduler.test.ts b/apps/web-react/app/features/scanner/tests/logic/scheduler.test.ts similarity index 100% rename from app/features/scanner/tests/logic/scheduler.test.ts rename to apps/web-react/app/features/scanner/tests/logic/scheduler.test.ts diff --git a/app/features/scanner/tests/map-start.test.ts b/apps/web-react/app/features/scanner/tests/map-start.test.ts similarity index 100% rename from app/features/scanner/tests/map-start.test.ts rename to apps/web-react/app/features/scanner/tests/map-start.test.ts diff --git a/app/features/scanner/tests/minimap.test.ts b/apps/web-react/app/features/scanner/tests/minimap.test.ts similarity index 100% rename from app/features/scanner/tests/minimap.test.ts rename to apps/web-react/app/features/scanner/tests/minimap.test.ts diff --git a/app/features/scanner/tests/node-test-compat.ts b/apps/web-react/app/features/scanner/tests/node-test-compat.ts similarity index 100% rename from app/features/scanner/tests/node-test-compat.ts rename to apps/web-react/app/features/scanner/tests/node-test-compat.ts diff --git a/app/features/scanner/tests/objective.test.ts b/apps/web-react/app/features/scanner/tests/objective.test.ts similarity index 100% rename from app/features/scanner/tests/objective.test.ts rename to apps/web-react/app/features/scanner/tests/objective.test.ts diff --git a/app/features/scanner/tests/opencv-smoke.test.ts b/apps/web-react/app/features/scanner/tests/opencv-smoke.test.ts similarity index 100% rename from app/features/scanner/tests/opencv-smoke.test.ts rename to apps/web-react/app/features/scanner/tests/opencv-smoke.test.ts diff --git a/app/features/scanner/tests/player-status.test.ts b/apps/web-react/app/features/scanner/tests/player-status.test.ts similarity index 100% rename from app/features/scanner/tests/player-status.test.ts rename to apps/web-react/app/features/scanner/tests/player-status.test.ts diff --git a/app/features/scanner/tests/replay-time.test.ts b/apps/web-react/app/features/scanner/tests/replay-time.test.ts similarity index 100% rename from app/features/scanner/tests/replay-time.test.ts rename to apps/web-react/app/features/scanner/tests/replay-time.test.ts diff --git a/app/features/scanner/tests/scoreboard-battle-log-replay.1.test.ts b/apps/web-react/app/features/scanner/tests/scoreboard-battle-log-replay.1.test.ts similarity index 100% rename from app/features/scanner/tests/scoreboard-battle-log-replay.1.test.ts rename to apps/web-react/app/features/scanner/tests/scoreboard-battle-log-replay.1.test.ts diff --git a/app/features/scanner/tests/scoreboard-battle-log-replay.2.test.ts b/apps/web-react/app/features/scanner/tests/scoreboard-battle-log-replay.2.test.ts similarity index 100% rename from app/features/scanner/tests/scoreboard-battle-log-replay.2.test.ts rename to apps/web-react/app/features/scanner/tests/scoreboard-battle-log-replay.2.test.ts diff --git a/app/features/scanner/tests/scoreboard-battle-log.test.ts b/apps/web-react/app/features/scanner/tests/scoreboard-battle-log.test.ts similarity index 100% rename from app/features/scanner/tests/scoreboard-battle-log.test.ts rename to apps/web-react/app/features/scanner/tests/scoreboard-battle-log.test.ts diff --git a/app/features/scanner/tests/scoreboard-own.test.ts b/apps/web-react/app/features/scanner/tests/scoreboard-own.test.ts similarity index 100% rename from app/features/scanner/tests/scoreboard-own.test.ts rename to apps/web-react/app/features/scanner/tests/scoreboard-own.test.ts diff --git a/app/features/scanner/tests/scoreboard.test.ts b/apps/web-react/app/features/scanner/tests/scoreboard.test.ts similarity index 100% rename from app/features/scanner/tests/scoreboard.test.ts rename to apps/web-react/app/features/scanner/tests/scoreboard.test.ts diff --git a/app/features/scanner/tests/sendou-upload.test.ts b/apps/web-react/app/features/scanner/tests/sendou-upload.test.ts similarity index 100% rename from app/features/scanner/tests/sendou-upload.test.ts rename to apps/web-react/app/features/scanner/tests/sendou-upload.test.ts diff --git a/app/features/scanner/tests/strip-weapons.test.ts b/apps/web-react/app/features/scanner/tests/strip-weapons.test.ts similarity index 100% rename from app/features/scanner/tests/strip-weapons.test.ts rename to apps/web-react/app/features/scanner/tests/strip-weapons.test.ts diff --git a/app/features/scanner/tests/suites/death.ts b/apps/web-react/app/features/scanner/tests/suites/death.ts similarity index 100% rename from app/features/scanner/tests/suites/death.ts rename to apps/web-react/app/features/scanner/tests/suites/death.ts diff --git a/app/features/scanner/tests/suites/scoreboard-battle-log-replay.ts b/apps/web-react/app/features/scanner/tests/suites/scoreboard-battle-log-replay.ts similarity index 100% rename from app/features/scanner/tests/suites/scoreboard-battle-log-replay.ts rename to apps/web-react/app/features/scanner/tests/suites/scoreboard-battle-log-replay.ts diff --git a/app/features/scanner/tests/timeline.test.ts b/apps/web-react/app/features/scanner/tests/timeline.test.ts similarity index 100% rename from app/features/scanner/tests/timeline.test.ts rename to apps/web-react/app/features/scanner/tests/timeline.test.ts diff --git a/app/features/scanner/worker/analyzer.worker.ts b/apps/web-react/app/features/scanner/worker/analyzer.worker.ts similarity index 100% rename from app/features/scanner/worker/analyzer.worker.ts rename to apps/web-react/app/features/scanner/worker/analyzer.worker.ts diff --git a/app/features/scanner/worker/client.ts b/apps/web-react/app/features/scanner/worker/client.ts similarity index 100% rename from app/features/scanner/worker/client.ts rename to apps/web-react/app/features/scanner/worker/client.ts diff --git a/app/features/scanner/worker/protocol.ts b/apps/web-react/app/features/scanner/worker/protocol.ts similarity index 100% rename from app/features/scanner/worker/protocol.ts rename to apps/web-react/app/features/scanner/worker/protocol.ts diff --git a/app/features/scanner/worker/resources.ts b/apps/web-react/app/features/scanner/worker/resources.ts similarity index 100% rename from app/features/scanner/worker/resources.ts rename to apps/web-react/app/features/scanner/worker/resources.ts diff --git a/app/features/scrims/ScrimMapListRepository.server.ts b/apps/web-react/app/features/scrims/ScrimMapListRepository.server.ts similarity index 100% rename from app/features/scrims/ScrimMapListRepository.server.ts rename to apps/web-react/app/features/scrims/ScrimMapListRepository.server.ts diff --git a/app/features/scrims/ScrimMapRepository.server.ts b/apps/web-react/app/features/scrims/ScrimMapRepository.server.ts similarity index 100% rename from app/features/scrims/ScrimMapRepository.server.ts rename to apps/web-react/app/features/scrims/ScrimMapRepository.server.ts diff --git a/app/features/scrims/ScrimPickupRosterRepository.server.test.ts b/apps/web-react/app/features/scrims/ScrimPickupRosterRepository.server.test.ts similarity index 100% rename from app/features/scrims/ScrimPickupRosterRepository.server.test.ts rename to apps/web-react/app/features/scrims/ScrimPickupRosterRepository.server.test.ts diff --git a/app/features/scrims/ScrimPickupRosterRepository.server.ts b/apps/web-react/app/features/scrims/ScrimPickupRosterRepository.server.ts similarity index 100% rename from app/features/scrims/ScrimPickupRosterRepository.server.ts rename to apps/web-react/app/features/scrims/ScrimPickupRosterRepository.server.ts diff --git a/app/features/scrims/ScrimPostRepository.server.test.ts b/apps/web-react/app/features/scrims/ScrimPostRepository.server.test.ts similarity index 100% rename from app/features/scrims/ScrimPostRepository.server.test.ts rename to apps/web-react/app/features/scrims/ScrimPostRepository.server.test.ts diff --git a/app/features/scrims/ScrimPostRepository.server.ts b/apps/web-react/app/features/scrims/ScrimPostRepository.server.ts similarity index 100% rename from app/features/scrims/ScrimPostRepository.server.ts rename to apps/web-react/app/features/scrims/ScrimPostRepository.server.ts diff --git a/app/features/scrims/actions/scrims.$id.server.ts b/apps/web-react/app/features/scrims/actions/scrims.$id.server.ts similarity index 100% rename from app/features/scrims/actions/scrims.$id.server.ts rename to apps/web-react/app/features/scrims/actions/scrims.$id.server.ts diff --git a/app/features/scrims/actions/scrims.new.server.ts b/apps/web-react/app/features/scrims/actions/scrims.new.server.ts similarity index 100% rename from app/features/scrims/actions/scrims.new.server.ts rename to apps/web-react/app/features/scrims/actions/scrims.new.server.ts diff --git a/app/features/scrims/actions/scrims.request.server.test.ts b/apps/web-react/app/features/scrims/actions/scrims.request.server.test.ts similarity index 100% rename from app/features/scrims/actions/scrims.request.server.test.ts rename to apps/web-react/app/features/scrims/actions/scrims.request.server.test.ts diff --git a/app/features/scrims/actions/scrims.server.ts b/apps/web-react/app/features/scrims/actions/scrims.server.ts similarity index 100% rename from app/features/scrims/actions/scrims.server.ts rename to apps/web-react/app/features/scrims/actions/scrims.server.ts diff --git a/app/features/scrims/components/PickMapDialog.tsx b/apps/web-react/app/features/scrims/components/PickMapDialog.tsx similarity index 100% rename from app/features/scrims/components/PickMapDialog.tsx rename to apps/web-react/app/features/scrims/components/PickMapDialog.tsx diff --git a/app/features/scrims/components/ScrimCard.module.css b/apps/web-react/app/features/scrims/components/ScrimCard.module.css similarity index 100% rename from app/features/scrims/components/ScrimCard.module.css rename to apps/web-react/app/features/scrims/components/ScrimCard.module.css diff --git a/app/features/scrims/components/ScrimCard.tsx b/apps/web-react/app/features/scrims/components/ScrimCard.tsx similarity index 100% rename from app/features/scrims/components/ScrimCard.tsx rename to apps/web-react/app/features/scrims/components/ScrimCard.tsx diff --git a/app/features/scrims/components/ScrimMapListForm.tsx b/apps/web-react/app/features/scrims/components/ScrimMapListForm.tsx similarity index 100% rename from app/features/scrims/components/ScrimMapListForm.tsx rename to apps/web-react/app/features/scrims/components/ScrimMapListForm.tsx diff --git a/app/features/scrims/components/ScrimMapListManager.module.css b/apps/web-react/app/features/scrims/components/ScrimMapListManager.module.css similarity index 100% rename from app/features/scrims/components/ScrimMapListManager.module.css rename to apps/web-react/app/features/scrims/components/ScrimMapListManager.module.css diff --git a/app/features/scrims/components/ScrimMapListManager.tsx b/apps/web-react/app/features/scrims/components/ScrimMapListManager.tsx similarity index 100% rename from app/features/scrims/components/ScrimMapListManager.tsx rename to apps/web-react/app/features/scrims/components/ScrimMapListManager.tsx diff --git a/app/features/scrims/components/ScrimMatchActionTab.module.css b/apps/web-react/app/features/scrims/components/ScrimMatchActionTab.module.css similarity index 100% rename from app/features/scrims/components/ScrimMatchActionTab.module.css rename to apps/web-react/app/features/scrims/components/ScrimMatchActionTab.module.css diff --git a/app/features/scrims/components/ScrimMatchActionTab.tsx b/apps/web-react/app/features/scrims/components/ScrimMatchActionTab.tsx similarity index 100% rename from app/features/scrims/components/ScrimMatchActionTab.tsx rename to apps/web-react/app/features/scrims/components/ScrimMatchActionTab.tsx diff --git a/app/features/scrims/components/ScrimMatchBanner.tsx b/apps/web-react/app/features/scrims/components/ScrimMatchBanner.tsx similarity index 100% rename from app/features/scrims/components/ScrimMatchBanner.tsx rename to apps/web-react/app/features/scrims/components/ScrimMatchBanner.tsx diff --git a/app/features/scrims/components/ScrimMatchHeader.tsx b/apps/web-react/app/features/scrims/components/ScrimMatchHeader.tsx similarity index 100% rename from app/features/scrims/components/ScrimMatchHeader.tsx rename to apps/web-react/app/features/scrims/components/ScrimMatchHeader.tsx diff --git a/app/features/scrims/components/ScrimMatchStatsTab.module.css b/apps/web-react/app/features/scrims/components/ScrimMatchStatsTab.module.css similarity index 100% rename from app/features/scrims/components/ScrimMatchStatsTab.module.css rename to apps/web-react/app/features/scrims/components/ScrimMatchStatsTab.module.css diff --git a/app/features/scrims/components/ScrimMatchStatsTab.tsx b/apps/web-react/app/features/scrims/components/ScrimMatchStatsTab.tsx similarity index 100% rename from app/features/scrims/components/ScrimMatchStatsTab.tsx rename to apps/web-react/app/features/scrims/components/ScrimMatchStatsTab.tsx diff --git a/app/features/scrims/components/ScrimMatchTabs.tsx b/apps/web-react/app/features/scrims/components/ScrimMatchTabs.tsx similarity index 100% rename from app/features/scrims/components/ScrimMatchTabs.tsx rename to apps/web-react/app/features/scrims/components/ScrimMatchTabs.tsx diff --git a/app/features/scrims/components/ScrimRequestModal.tsx b/apps/web-react/app/features/scrims/components/ScrimRequestModal.tsx similarity index 100% rename from app/features/scrims/components/ScrimRequestModal.tsx rename to apps/web-react/app/features/scrims/components/ScrimRequestModal.tsx diff --git a/app/features/scrims/components/WithFormField.module.css b/apps/web-react/app/features/scrims/components/WithFormField.module.css similarity index 100% rename from app/features/scrims/components/WithFormField.module.css rename to apps/web-react/app/features/scrims/components/WithFormField.module.css diff --git a/app/features/scrims/components/WithFormField.tsx b/apps/web-react/app/features/scrims/components/WithFormField.tsx similarity index 100% rename from app/features/scrims/components/WithFormField.tsx rename to apps/web-react/app/features/scrims/components/WithFormField.tsx diff --git a/app/features/scrims/core/Scrim.test.ts b/apps/web-react/app/features/scrims/core/Scrim.test.ts similarity index 100% rename from app/features/scrims/core/Scrim.test.ts rename to apps/web-react/app/features/scrims/core/Scrim.test.ts diff --git a/app/features/scrims/core/Scrim.ts b/apps/web-react/app/features/scrims/core/Scrim.ts similarity index 100% rename from app/features/scrims/core/Scrim.ts rename to apps/web-react/app/features/scrims/core/Scrim.ts diff --git a/app/features/scrims/core/ScrimMapByMap.test.ts b/apps/web-react/app/features/scrims/core/ScrimMapByMap.test.ts similarity index 100% rename from app/features/scrims/core/ScrimMapByMap.test.ts rename to apps/web-react/app/features/scrims/core/ScrimMapByMap.test.ts diff --git a/app/features/scrims/core/ScrimMapByMap.ts b/apps/web-react/app/features/scrims/core/ScrimMapByMap.ts similarity index 100% rename from app/features/scrims/core/ScrimMapByMap.ts rename to apps/web-react/app/features/scrims/core/ScrimMapByMap.ts diff --git a/app/features/scrims/loaders/scrims.$id.server.ts b/apps/web-react/app/features/scrims/loaders/scrims.$id.server.ts similarity index 100% rename from app/features/scrims/loaders/scrims.$id.server.ts rename to apps/web-react/app/features/scrims/loaders/scrims.$id.server.ts diff --git a/app/features/scrims/loaders/scrims.new.server.ts b/apps/web-react/app/features/scrims/loaders/scrims.new.server.ts similarity index 100% rename from app/features/scrims/loaders/scrims.new.server.ts rename to apps/web-react/app/features/scrims/loaders/scrims.new.server.ts diff --git a/app/features/scrims/loaders/scrims.server.ts b/apps/web-react/app/features/scrims/loaders/scrims.server.ts similarity index 100% rename from app/features/scrims/loaders/scrims.server.ts rename to apps/web-react/app/features/scrims/loaders/scrims.server.ts diff --git a/app/features/scrims/routes/scrims.$id.tsx b/apps/web-react/app/features/scrims/routes/scrims.$id.tsx similarity index 100% rename from app/features/scrims/routes/scrims.$id.tsx rename to apps/web-react/app/features/scrims/routes/scrims.$id.tsx diff --git a/app/features/scrims/routes/scrims.module.css b/apps/web-react/app/features/scrims/routes/scrims.module.css similarity index 100% rename from app/features/scrims/routes/scrims.module.css rename to apps/web-react/app/features/scrims/routes/scrims.module.css diff --git a/app/features/scrims/routes/scrims.new.module.css b/apps/web-react/app/features/scrims/routes/scrims.new.module.css similarity index 100% rename from app/features/scrims/routes/scrims.new.module.css rename to apps/web-react/app/features/scrims/routes/scrims.new.module.css diff --git a/app/features/scrims/routes/scrims.new.test.ts b/apps/web-react/app/features/scrims/routes/scrims.new.test.ts similarity index 100% rename from app/features/scrims/routes/scrims.new.test.ts rename to apps/web-react/app/features/scrims/routes/scrims.new.test.ts diff --git a/app/features/scrims/routes/scrims.new.tsx b/apps/web-react/app/features/scrims/routes/scrims.new.tsx similarity index 100% rename from app/features/scrims/routes/scrims.new.tsx rename to apps/web-react/app/features/scrims/routes/scrims.new.tsx diff --git a/app/features/scrims/routes/scrims.test.ts b/apps/web-react/app/features/scrims/routes/scrims.test.ts similarity index 100% rename from app/features/scrims/routes/scrims.test.ts rename to apps/web-react/app/features/scrims/routes/scrims.test.ts diff --git a/app/features/scrims/routes/scrims.tsx b/apps/web-react/app/features/scrims/routes/scrims.tsx similarity index 100% rename from app/features/scrims/routes/scrims.tsx rename to apps/web-react/app/features/scrims/routes/scrims.tsx diff --git a/app/features/scrims/scrims-constants.ts b/apps/web-react/app/features/scrims/scrims-constants.ts similarity index 100% rename from app/features/scrims/scrims-constants.ts rename to apps/web-react/app/features/scrims/scrims-constants.ts diff --git a/app/features/scrims/scrims-schemas.test.ts b/apps/web-react/app/features/scrims/scrims-schemas.test.ts similarity index 100% rename from app/features/scrims/scrims-schemas.test.ts rename to apps/web-react/app/features/scrims/scrims-schemas.test.ts diff --git a/app/features/scrims/scrims-schemas.ts b/apps/web-react/app/features/scrims/scrims-schemas.ts similarity index 100% rename from app/features/scrims/scrims-schemas.ts rename to apps/web-react/app/features/scrims/scrims-schemas.ts diff --git a/app/features/scrims/scrims-search-params.test.ts b/apps/web-react/app/features/scrims/scrims-search-params.test.ts similarity index 100% rename from app/features/scrims/scrims-search-params.test.ts rename to apps/web-react/app/features/scrims/scrims-search-params.test.ts diff --git a/app/features/scrims/scrims-search-params.ts b/apps/web-react/app/features/scrims/scrims-search-params.ts similarity index 100% rename from app/features/scrims/scrims-search-params.ts rename to apps/web-react/app/features/scrims/scrims-search-params.ts diff --git a/app/features/scrims/scrims-types.ts b/apps/web-react/app/features/scrims/scrims-types.ts similarity index 100% rename from app/features/scrims/scrims-types.ts rename to apps/web-react/app/features/scrims/scrims-types.ts diff --git a/app/features/scrims/scrims-utils.test.ts b/apps/web-react/app/features/scrims/scrims-utils.test.ts similarity index 100% rename from app/features/scrims/scrims-utils.test.ts rename to apps/web-react/app/features/scrims/scrims-utils.test.ts diff --git a/app/features/scrims/scrims-utils.ts b/apps/web-react/app/features/scrims/scrims-utils.ts similarity index 100% rename from app/features/scrims/scrims-utils.ts rename to apps/web-react/app/features/scrims/scrims-utils.ts diff --git a/app/features/search/routes/search.ts b/apps/web-react/app/features/search/routes/search.ts similarity index 100% rename from app/features/search/routes/search.ts rename to apps/web-react/app/features/search/routes/search.ts diff --git a/app/features/search/search-search-params.test.ts b/apps/web-react/app/features/search/search-search-params.test.ts similarity index 100% rename from app/features/search/search-search-params.test.ts rename to apps/web-react/app/features/search/search-search-params.test.ts diff --git a/app/features/search/search-search-params.ts b/apps/web-react/app/features/search/search-search-params.ts similarity index 100% rename from app/features/search/search-search-params.ts rename to apps/web-react/app/features/search/search-search-params.ts diff --git a/app/features/search/search-types.ts b/apps/web-react/app/features/search/search-types.ts similarity index 100% rename from app/features/search/search-types.ts rename to apps/web-react/app/features/search/search-types.ts diff --git a/app/features/sendouq-match/GroupMatchContinueVoteRepository.server.test.ts b/apps/web-react/app/features/sendouq-match/GroupMatchContinueVoteRepository.server.test.ts similarity index 100% rename from app/features/sendouq-match/GroupMatchContinueVoteRepository.server.test.ts rename to apps/web-react/app/features/sendouq-match/GroupMatchContinueVoteRepository.server.test.ts diff --git a/app/features/sendouq-match/GroupMatchContinueVoteRepository.server.ts b/apps/web-react/app/features/sendouq-match/GroupMatchContinueVoteRepository.server.ts similarity index 100% rename from app/features/sendouq-match/GroupMatchContinueVoteRepository.server.ts rename to apps/web-react/app/features/sendouq-match/GroupMatchContinueVoteRepository.server.ts diff --git a/app/features/sendouq-match/MatchSkillRepository.server.ts b/apps/web-react/app/features/sendouq-match/MatchSkillRepository.server.ts similarity index 100% rename from app/features/sendouq-match/MatchSkillRepository.server.ts rename to apps/web-react/app/features/sendouq-match/MatchSkillRepository.server.ts diff --git a/app/features/sendouq-match/PlayerStatRepository.server.ts b/apps/web-react/app/features/sendouq-match/PlayerStatRepository.server.ts similarity index 100% rename from app/features/sendouq-match/PlayerStatRepository.server.ts rename to apps/web-react/app/features/sendouq-match/PlayerStatRepository.server.ts diff --git a/app/features/sendouq-match/ReportedWeaponRepository.server.ts b/apps/web-react/app/features/sendouq-match/ReportedWeaponRepository.server.ts similarity index 100% rename from app/features/sendouq-match/ReportedWeaponRepository.server.ts rename to apps/web-react/app/features/sendouq-match/ReportedWeaponRepository.server.ts diff --git a/app/features/sendouq-match/SQMatchRepository.server.test.ts b/apps/web-react/app/features/sendouq-match/SQMatchRepository.server.test.ts similarity index 100% rename from app/features/sendouq-match/SQMatchRepository.server.test.ts rename to apps/web-react/app/features/sendouq-match/SQMatchRepository.server.test.ts diff --git a/app/features/sendouq-match/SQMatchRepository.server.ts b/apps/web-react/app/features/sendouq-match/SQMatchRepository.server.ts similarity index 100% rename from app/features/sendouq-match/SQMatchRepository.server.ts rename to apps/web-react/app/features/sendouq-match/SQMatchRepository.server.ts diff --git a/app/features/sendouq-match/actions/q.match.$id.server.ts b/apps/web-react/app/features/sendouq-match/actions/q.match.$id.server.ts similarity index 100% rename from app/features/sendouq-match/actions/q.match.$id.server.ts rename to apps/web-react/app/features/sendouq-match/actions/q.match.$id.server.ts diff --git a/app/features/sendouq-match/components/RejoinSections.tsx b/apps/web-react/app/features/sendouq-match/components/RejoinSections.tsx similarity index 100% rename from app/features/sendouq-match/components/RejoinSections.tsx rename to apps/web-react/app/features/sendouq-match/components/RejoinSections.tsx diff --git a/app/features/sendouq-match/components/RematchVotePanel.module.css b/apps/web-react/app/features/sendouq-match/components/RematchVotePanel.module.css similarity index 100% rename from app/features/sendouq-match/components/RematchVotePanel.module.css rename to apps/web-react/app/features/sendouq-match/components/RematchVotePanel.module.css diff --git a/app/features/sendouq-match/components/RematchVotePanel.tsx b/apps/web-react/app/features/sendouq-match/components/RematchVotePanel.tsx similarity index 100% rename from app/features/sendouq-match/components/RematchVotePanel.tsx rename to apps/web-react/app/features/sendouq-match/components/RematchVotePanel.tsx diff --git a/app/features/sendouq-match/components/SendouQMatchActionTab.module.css b/apps/web-react/app/features/sendouq-match/components/SendouQMatchActionTab.module.css similarity index 100% rename from app/features/sendouq-match/components/SendouQMatchActionTab.module.css rename to apps/web-react/app/features/sendouq-match/components/SendouQMatchActionTab.module.css diff --git a/app/features/sendouq-match/components/SendouQMatchActionTab.tsx b/apps/web-react/app/features/sendouq-match/components/SendouQMatchActionTab.tsx similarity index 100% rename from app/features/sendouq-match/components/SendouQMatchActionTab.tsx rename to apps/web-react/app/features/sendouq-match/components/SendouQMatchActionTab.tsx diff --git a/app/features/sendouq-match/components/SendouQMatchBanner.tsx b/apps/web-react/app/features/sendouq-match/components/SendouQMatchBanner.tsx similarity index 100% rename from app/features/sendouq-match/components/SendouQMatchBanner.tsx rename to apps/web-react/app/features/sendouq-match/components/SendouQMatchBanner.tsx diff --git a/app/features/sendouq-match/components/SendouQMatchHeader.tsx b/apps/web-react/app/features/sendouq-match/components/SendouQMatchHeader.tsx similarity index 100% rename from app/features/sendouq-match/components/SendouQMatchHeader.tsx rename to apps/web-react/app/features/sendouq-match/components/SendouQMatchHeader.tsx diff --git a/app/features/sendouq-match/components/SendouQMatchTabs.tsx b/apps/web-react/app/features/sendouq-match/components/SendouQMatchTabs.tsx similarity index 100% rename from app/features/sendouq-match/components/SendouQMatchTabs.tsx rename to apps/web-react/app/features/sendouq-match/components/SendouQMatchTabs.tsx diff --git a/app/features/sendouq-match/core/RejoinVote.test.ts b/apps/web-react/app/features/sendouq-match/core/RejoinVote.test.ts similarity index 100% rename from app/features/sendouq-match/core/RejoinVote.test.ts rename to apps/web-react/app/features/sendouq-match/core/RejoinVote.test.ts diff --git a/app/features/sendouq-match/core/RejoinVote.ts b/apps/web-react/app/features/sendouq-match/core/RejoinVote.ts similarity index 100% rename from app/features/sendouq-match/core/RejoinVote.ts rename to apps/web-react/app/features/sendouq-match/core/RejoinVote.ts diff --git a/app/features/sendouq-match/core/SendouQMatch.test.ts b/apps/web-react/app/features/sendouq-match/core/SendouQMatch.test.ts similarity index 100% rename from app/features/sendouq-match/core/SendouQMatch.test.ts rename to apps/web-react/app/features/sendouq-match/core/SendouQMatch.test.ts diff --git a/app/features/sendouq-match/core/SendouQMatch.ts b/apps/web-react/app/features/sendouq-match/core/SendouQMatch.ts similarity index 100% rename from app/features/sendouq-match/core/SendouQMatch.ts rename to apps/web-react/app/features/sendouq-match/core/SendouQMatch.ts diff --git a/app/features/sendouq-match/core/discord-webhook.server.ts b/apps/web-react/app/features/sendouq-match/core/discord-webhook.server.ts similarity index 100% rename from app/features/sendouq-match/core/discord-webhook.server.ts rename to apps/web-react/app/features/sendouq-match/core/discord-webhook.server.ts diff --git a/app/features/sendouq-match/core/match-timeline.test.ts b/apps/web-react/app/features/sendouq-match/core/match-timeline.test.ts similarity index 100% rename from app/features/sendouq-match/core/match-timeline.test.ts rename to apps/web-react/app/features/sendouq-match/core/match-timeline.test.ts diff --git a/app/features/sendouq-match/core/match-timeline.ts b/apps/web-react/app/features/sendouq-match/core/match-timeline.ts similarity index 100% rename from app/features/sendouq-match/core/match-timeline.ts rename to apps/web-react/app/features/sendouq-match/core/match-timeline.ts diff --git a/app/features/sendouq-match/core/match.server.test.ts b/apps/web-react/app/features/sendouq-match/core/match.server.test.ts similarity index 100% rename from app/features/sendouq-match/core/match.server.test.ts rename to apps/web-react/app/features/sendouq-match/core/match.server.test.ts diff --git a/app/features/sendouq-match/core/match.server.ts b/apps/web-react/app/features/sendouq-match/core/match.server.ts similarity index 100% rename from app/features/sendouq-match/core/match.server.ts rename to apps/web-react/app/features/sendouq-match/core/match.server.ts diff --git a/app/features/sendouq-match/core/reported-weapons.server.test.ts b/apps/web-react/app/features/sendouq-match/core/reported-weapons.server.test.ts similarity index 100% rename from app/features/sendouq-match/core/reported-weapons.server.test.ts rename to apps/web-react/app/features/sendouq-match/core/reported-weapons.server.test.ts diff --git a/app/features/sendouq-match/core/reported-weapons.server.ts b/apps/web-react/app/features/sendouq-match/core/reported-weapons.server.ts similarity index 100% rename from app/features/sendouq-match/core/reported-weapons.server.ts rename to apps/web-react/app/features/sendouq-match/core/reported-weapons.server.ts diff --git a/app/features/sendouq-match/core/skills.server.ts b/apps/web-react/app/features/sendouq-match/core/skills.server.ts similarity index 100% rename from app/features/sendouq-match/core/skills.server.ts rename to apps/web-react/app/features/sendouq-match/core/skills.server.ts diff --git a/app/features/sendouq-match/core/summarizer.server.ts b/apps/web-react/app/features/sendouq-match/core/summarizer.server.ts similarity index 100% rename from app/features/sendouq-match/core/summarizer.server.ts rename to apps/web-react/app/features/sendouq-match/core/summarizer.server.ts diff --git a/app/features/sendouq-match/loaders/q.match.$id.server.ts b/apps/web-react/app/features/sendouq-match/loaders/q.match.$id.server.ts similarity index 100% rename from app/features/sendouq-match/loaders/q.match.$id.server.ts rename to apps/web-react/app/features/sendouq-match/loaders/q.match.$id.server.ts diff --git a/app/features/sendouq-match/q-match-schemas.ts b/apps/web-react/app/features/sendouq-match/q-match-schemas.ts similarity index 100% rename from app/features/sendouq-match/q-match-schemas.ts rename to apps/web-react/app/features/sendouq-match/q-match-schemas.ts diff --git a/app/features/sendouq-match/q-match-utils.ts b/apps/web-react/app/features/sendouq-match/q-match-utils.ts similarity index 100% rename from app/features/sendouq-match/q-match-utils.ts rename to apps/web-react/app/features/sendouq-match/q-match-utils.ts diff --git a/app/features/sendouq-match/routes/q.match.$id.tsx b/apps/web-react/app/features/sendouq-match/routes/q.match.$id.tsx similarity index 100% rename from app/features/sendouq-match/routes/q.match.$id.tsx rename to apps/web-react/app/features/sendouq-match/routes/q.match.$id.tsx diff --git a/app/features/sendouq-streams/QStreamsRepository.server.ts b/apps/web-react/app/features/sendouq-streams/QStreamsRepository.server.ts similarity index 100% rename from app/features/sendouq-streams/QStreamsRepository.server.ts rename to apps/web-react/app/features/sendouq-streams/QStreamsRepository.server.ts diff --git a/app/features/sendouq-streams/core/streams.server.ts b/apps/web-react/app/features/sendouq-streams/core/streams.server.ts similarity index 100% rename from app/features/sendouq-streams/core/streams.server.ts rename to apps/web-react/app/features/sendouq-streams/core/streams.server.ts diff --git a/app/features/sendouq-streams/loaders/q.streams.server.ts b/apps/web-react/app/features/sendouq-streams/loaders/q.streams.server.ts similarity index 100% rename from app/features/sendouq-streams/loaders/q.streams.server.ts rename to apps/web-react/app/features/sendouq-streams/loaders/q.streams.server.ts diff --git a/app/features/sendouq-streams/q-streams-constants.ts b/apps/web-react/app/features/sendouq-streams/q-streams-constants.ts similarity index 100% rename from app/features/sendouq-streams/q-streams-constants.ts rename to apps/web-react/app/features/sendouq-streams/q-streams-constants.ts diff --git a/app/features/sendouq-streams/routes/q.streams.module.css b/apps/web-react/app/features/sendouq-streams/routes/q.streams.module.css similarity index 100% rename from app/features/sendouq-streams/routes/q.streams.module.css rename to apps/web-react/app/features/sendouq-streams/routes/q.streams.module.css diff --git a/app/features/sendouq-streams/routes/q.streams.tsx b/apps/web-react/app/features/sendouq-streams/routes/q.streams.tsx similarity index 100% rename from app/features/sendouq-streams/routes/q.streams.tsx rename to apps/web-react/app/features/sendouq-streams/routes/q.streams.tsx diff --git a/app/features/sendouq/PrivateUserNoteRepository.server.test.ts b/apps/web-react/app/features/sendouq/PrivateUserNoteRepository.server.test.ts similarity index 100% rename from app/features/sendouq/PrivateUserNoteRepository.server.test.ts rename to apps/web-react/app/features/sendouq/PrivateUserNoteRepository.server.test.ts diff --git a/app/features/sendouq/PrivateUserNoteRepository.server.ts b/apps/web-react/app/features/sendouq/PrivateUserNoteRepository.server.ts similarity index 100% rename from app/features/sendouq/PrivateUserNoteRepository.server.ts rename to apps/web-react/app/features/sendouq/PrivateUserNoteRepository.server.ts diff --git a/app/features/sendouq/SQGroupRepository.server.test.ts b/apps/web-react/app/features/sendouq/SQGroupRepository.server.test.ts similarity index 100% rename from app/features/sendouq/SQGroupRepository.server.test.ts rename to apps/web-react/app/features/sendouq/SQGroupRepository.server.test.ts diff --git a/app/features/sendouq/SQGroupRepository.server.ts b/apps/web-react/app/features/sendouq/SQGroupRepository.server.ts similarity index 100% rename from app/features/sendouq/SQGroupRepository.server.ts rename to apps/web-react/app/features/sendouq/SQGroupRepository.server.ts diff --git a/app/features/sendouq/actions/q.looking.server.ts b/apps/web-react/app/features/sendouq/actions/q.looking.server.ts similarity index 100% rename from app/features/sendouq/actions/q.looking.server.ts rename to apps/web-react/app/features/sendouq/actions/q.looking.server.ts diff --git a/app/features/sendouq/actions/q.preparing.server.ts b/apps/web-react/app/features/sendouq/actions/q.preparing.server.ts similarity index 100% rename from app/features/sendouq/actions/q.preparing.server.ts rename to apps/web-react/app/features/sendouq/actions/q.preparing.server.ts diff --git a/app/features/sendouq/actions/q.ready.server.ts b/apps/web-react/app/features/sendouq/actions/q.ready.server.ts similarity index 100% rename from app/features/sendouq/actions/q.ready.server.ts rename to apps/web-react/app/features/sendouq/actions/q.ready.server.ts diff --git a/app/features/sendouq/actions/q.server.ts b/apps/web-react/app/features/sendouq/actions/q.server.ts similarity index 100% rename from app/features/sendouq/actions/q.server.ts rename to apps/web-react/app/features/sendouq/actions/q.server.ts diff --git a/app/features/sendouq/components/GroupCard.browser.test.tsx b/apps/web-react/app/features/sendouq/components/GroupCard.browser.test.tsx similarity index 100% rename from app/features/sendouq/components/GroupCard.browser.test.tsx rename to apps/web-react/app/features/sendouq/components/GroupCard.browser.test.tsx diff --git a/app/features/sendouq/components/GroupCard.module.css b/apps/web-react/app/features/sendouq/components/GroupCard.module.css similarity index 100% rename from app/features/sendouq/components/GroupCard.module.css rename to apps/web-react/app/features/sendouq/components/GroupCard.module.css diff --git a/app/features/sendouq/components/GroupCard.tsx b/apps/web-react/app/features/sendouq/components/GroupCard.tsx similarity index 100% rename from app/features/sendouq/components/GroupCard.tsx rename to apps/web-react/app/features/sendouq/components/GroupCard.tsx diff --git a/app/features/sendouq/components/GroupLeaver.tsx b/apps/web-react/app/features/sendouq/components/GroupLeaver.tsx similarity index 100% rename from app/features/sendouq/components/GroupLeaver.tsx rename to apps/web-react/app/features/sendouq/components/GroupLeaver.tsx diff --git a/app/features/sendouq/components/MemberAdder.tsx b/apps/web-react/app/features/sendouq/components/MemberAdder.tsx similarity index 100% rename from app/features/sendouq/components/MemberAdder.tsx rename to apps/web-react/app/features/sendouq/components/MemberAdder.tsx diff --git a/app/features/sendouq/core/SendouQ.server.test.ts b/apps/web-react/app/features/sendouq/core/SendouQ.server.test.ts similarity index 100% rename from app/features/sendouq/core/SendouQ.server.test.ts rename to apps/web-react/app/features/sendouq/core/SendouQ.server.test.ts diff --git a/app/features/sendouq/core/SendouQ.server.ts b/apps/web-react/app/features/sendouq/core/SendouQ.server.ts similarity index 100% rename from app/features/sendouq/core/SendouQ.server.ts rename to apps/web-react/app/features/sendouq/core/SendouQ.server.ts diff --git a/app/features/sendouq/core/default-maps.server.test.ts b/apps/web-react/app/features/sendouq/core/default-maps.server.test.ts similarity index 100% rename from app/features/sendouq/core/default-maps.server.test.ts rename to apps/web-react/app/features/sendouq/core/default-maps.server.test.ts diff --git a/app/features/sendouq/core/default-maps.server.ts b/apps/web-react/app/features/sendouq/core/default-maps.server.ts similarity index 100% rename from app/features/sendouq/core/default-maps.server.ts rename to apps/web-react/app/features/sendouq/core/default-maps.server.ts diff --git a/app/features/sendouq/core/groups.server.test.ts b/apps/web-react/app/features/sendouq/core/groups.server.test.ts similarity index 100% rename from app/features/sendouq/core/groups.server.test.ts rename to apps/web-react/app/features/sendouq/core/groups.server.test.ts diff --git a/app/features/sendouq/core/groups.server.ts b/apps/web-react/app/features/sendouq/core/groups.server.ts similarity index 100% rename from app/features/sendouq/core/groups.server.ts rename to apps/web-react/app/features/sendouq/core/groups.server.ts diff --git a/app/features/sendouq/core/groups.ts b/apps/web-react/app/features/sendouq/core/groups.ts similarity index 100% rename from app/features/sendouq/core/groups.ts rename to apps/web-react/app/features/sendouq/core/groups.ts diff --git a/app/features/sendouq/core/likes.server.ts b/apps/web-react/app/features/sendouq/core/likes.server.ts similarity index 100% rename from app/features/sendouq/core/likes.server.ts rename to apps/web-react/app/features/sendouq/core/likes.server.ts diff --git a/app/features/sendouq/core/ready-check.server.test.ts b/apps/web-react/app/features/sendouq/core/ready-check.server.test.ts similarity index 100% rename from app/features/sendouq/core/ready-check.server.test.ts rename to apps/web-react/app/features/sendouq/core/ready-check.server.test.ts diff --git a/app/features/sendouq/core/ready-check.server.ts b/apps/web-react/app/features/sendouq/core/ready-check.server.ts similarity index 100% rename from app/features/sendouq/core/ready-check.server.ts rename to apps/web-react/app/features/sendouq/core/ready-check.server.ts diff --git a/app/features/sendouq/loaders/q.looking.server.ts b/apps/web-react/app/features/sendouq/loaders/q.looking.server.ts similarity index 100% rename from app/features/sendouq/loaders/q.looking.server.ts rename to apps/web-react/app/features/sendouq/loaders/q.looking.server.ts diff --git a/app/features/sendouq/loaders/q.preparing.server.ts b/apps/web-react/app/features/sendouq/loaders/q.preparing.server.ts similarity index 100% rename from app/features/sendouq/loaders/q.preparing.server.ts rename to apps/web-react/app/features/sendouq/loaders/q.preparing.server.ts diff --git a/app/features/sendouq/loaders/q.ready.server.ts b/apps/web-react/app/features/sendouq/loaders/q.ready.server.ts similarity index 100% rename from app/features/sendouq/loaders/q.ready.server.ts rename to apps/web-react/app/features/sendouq/loaders/q.ready.server.ts diff --git a/app/features/sendouq/loaders/q.server.ts b/apps/web-react/app/features/sendouq/loaders/q.server.ts similarity index 100% rename from app/features/sendouq/loaders/q.server.ts rename to apps/web-react/app/features/sendouq/loaders/q.server.ts diff --git a/app/features/sendouq/loaders/tiers.server.ts b/apps/web-react/app/features/sendouq/loaders/tiers.server.ts similarity index 100% rename from app/features/sendouq/loaders/tiers.server.ts rename to apps/web-react/app/features/sendouq/loaders/tiers.server.ts diff --git a/app/features/sendouq/q-action-schemas.ts b/apps/web-react/app/features/sendouq/q-action-schemas.ts similarity index 100% rename from app/features/sendouq/q-action-schemas.ts rename to apps/web-react/app/features/sendouq/q-action-schemas.ts diff --git a/app/features/sendouq/q-constants.test.ts b/apps/web-react/app/features/sendouq/q-constants.test.ts similarity index 100% rename from app/features/sendouq/q-constants.test.ts rename to apps/web-react/app/features/sendouq/q-constants.test.ts diff --git a/app/features/sendouq/q-constants.ts b/apps/web-react/app/features/sendouq/q-constants.ts similarity index 100% rename from app/features/sendouq/q-constants.ts rename to apps/web-react/app/features/sendouq/q-constants.ts diff --git a/app/features/sendouq/q-schemas.ts b/apps/web-react/app/features/sendouq/q-schemas.ts similarity index 100% rename from app/features/sendouq/q-schemas.ts rename to apps/web-react/app/features/sendouq/q-schemas.ts diff --git a/app/features/sendouq/q-search-params.test.ts b/apps/web-react/app/features/sendouq/q-search-params.test.ts similarity index 100% rename from app/features/sendouq/q-search-params.test.ts rename to apps/web-react/app/features/sendouq/q-search-params.test.ts diff --git a/app/features/sendouq/q-search-params.ts b/apps/web-react/app/features/sendouq/q-search-params.ts similarity index 100% rename from app/features/sendouq/q-search-params.ts rename to apps/web-react/app/features/sendouq/q-search-params.ts diff --git a/app/features/sendouq/q-types.ts b/apps/web-react/app/features/sendouq/q-types.ts similarity index 100% rename from app/features/sendouq/q-types.ts rename to apps/web-react/app/features/sendouq/q-types.ts diff --git a/app/features/sendouq/q-urls.ts b/apps/web-react/app/features/sendouq/q-urls.ts similarity index 100% rename from app/features/sendouq/q-urls.ts rename to apps/web-react/app/features/sendouq/q-urls.ts diff --git a/app/features/sendouq/q-utils.server.ts b/apps/web-react/app/features/sendouq/q-utils.server.ts similarity index 100% rename from app/features/sendouq/q-utils.server.ts rename to apps/web-react/app/features/sendouq/q-utils.server.ts diff --git a/app/features/sendouq/q-utils.ts b/apps/web-react/app/features/sendouq/q-utils.ts similarity index 100% rename from app/features/sendouq/q-utils.ts rename to apps/web-react/app/features/sendouq/q-utils.ts diff --git a/app/features/sendouq/routes/friends-for-adding.ts b/apps/web-react/app/features/sendouq/routes/friends-for-adding.ts similarity index 100% rename from app/features/sendouq/routes/friends-for-adding.ts rename to apps/web-react/app/features/sendouq/routes/friends-for-adding.ts diff --git a/app/features/sendouq/routes/play.ts b/apps/web-react/app/features/sendouq/routes/play.ts similarity index 100% rename from app/features/sendouq/routes/play.ts rename to apps/web-react/app/features/sendouq/routes/play.ts diff --git a/app/features/sendouq/routes/q.info.module.css b/apps/web-react/app/features/sendouq/routes/q.info.module.css similarity index 100% rename from app/features/sendouq/routes/q.info.module.css rename to apps/web-react/app/features/sendouq/routes/q.info.module.css diff --git a/app/features/sendouq/routes/q.info.tsx b/apps/web-react/app/features/sendouq/routes/q.info.tsx similarity index 100% rename from app/features/sendouq/routes/q.info.tsx rename to apps/web-react/app/features/sendouq/routes/q.info.tsx diff --git a/app/features/sendouq/routes/q.looking.module.css b/apps/web-react/app/features/sendouq/routes/q.looking.module.css similarity index 100% rename from app/features/sendouq/routes/q.looking.module.css rename to apps/web-react/app/features/sendouq/routes/q.looking.module.css diff --git a/app/features/sendouq/routes/q.looking.test.ts b/apps/web-react/app/features/sendouq/routes/q.looking.test.ts similarity index 100% rename from app/features/sendouq/routes/q.looking.test.ts rename to apps/web-react/app/features/sendouq/routes/q.looking.test.ts diff --git a/app/features/sendouq/routes/q.looking.tsx b/apps/web-react/app/features/sendouq/routes/q.looking.tsx similarity index 100% rename from app/features/sendouq/routes/q.looking.tsx rename to apps/web-react/app/features/sendouq/routes/q.looking.tsx diff --git a/app/features/sendouq/routes/q.module.css b/apps/web-react/app/features/sendouq/routes/q.module.css similarity index 100% rename from app/features/sendouq/routes/q.module.css rename to apps/web-react/app/features/sendouq/routes/q.module.css diff --git a/app/features/sendouq/routes/q.preparing.module.css b/apps/web-react/app/features/sendouq/routes/q.preparing.module.css similarity index 100% rename from app/features/sendouq/routes/q.preparing.module.css rename to apps/web-react/app/features/sendouq/routes/q.preparing.module.css diff --git a/app/features/sendouq/routes/q.preparing.tsx b/apps/web-react/app/features/sendouq/routes/q.preparing.tsx similarity index 100% rename from app/features/sendouq/routes/q.preparing.tsx rename to apps/web-react/app/features/sendouq/routes/q.preparing.tsx diff --git a/app/features/sendouq/routes/q.ready.module.css b/apps/web-react/app/features/sendouq/routes/q.ready.module.css similarity index 100% rename from app/features/sendouq/routes/q.ready.module.css rename to apps/web-react/app/features/sendouq/routes/q.ready.module.css diff --git a/app/features/sendouq/routes/q.ready.test.ts b/apps/web-react/app/features/sendouq/routes/q.ready.test.ts similarity index 100% rename from app/features/sendouq/routes/q.ready.test.ts rename to apps/web-react/app/features/sendouq/routes/q.ready.test.ts diff --git a/app/features/sendouq/routes/q.ready.tsx b/apps/web-react/app/features/sendouq/routes/q.ready.tsx similarity index 100% rename from app/features/sendouq/routes/q.ready.tsx rename to apps/web-react/app/features/sendouq/routes/q.ready.tsx diff --git a/app/features/sendouq/routes/q.rules.tsx b/apps/web-react/app/features/sendouq/routes/q.rules.tsx similarity index 100% rename from app/features/sendouq/routes/q.rules.tsx rename to apps/web-react/app/features/sendouq/routes/q.rules.tsx diff --git a/app/features/sendouq/routes/q.tsx b/apps/web-react/app/features/sendouq/routes/q.tsx similarity index 100% rename from app/features/sendouq/routes/q.tsx rename to apps/web-react/app/features/sendouq/routes/q.tsx diff --git a/app/features/sendouq/routes/tiers.tsx b/apps/web-react/app/features/sendouq/routes/tiers.tsx similarity index 100% rename from app/features/sendouq/routes/tiers.tsx rename to apps/web-react/app/features/sendouq/routes/tiers.tsx diff --git a/app/features/sendouq/routes/weapon-usage.ts b/apps/web-react/app/features/sendouq/routes/weapon-usage.ts similarity index 100% rename from app/features/sendouq/routes/weapon-usage.ts rename to apps/web-react/app/features/sendouq/routes/weapon-usage.ts diff --git a/app/features/session-id/session-id-context.server.ts b/apps/web-react/app/features/session-id/session-id-context.server.ts similarity index 100% rename from app/features/session-id/session-id-context.server.ts rename to apps/web-react/app/features/session-id/session-id-context.server.ts diff --git a/app/features/session-id/session-id-middleware.server.ts b/apps/web-react/app/features/session-id/session-id-middleware.server.ts similarity index 100% rename from app/features/session-id/session-id-middleware.server.ts rename to apps/web-react/app/features/session-id/session-id-middleware.server.ts diff --git a/app/features/settings/actions/settings.server.ts b/apps/web-react/app/features/settings/actions/settings.server.ts similarity index 100% rename from app/features/settings/actions/settings.server.ts rename to apps/web-react/app/features/settings/actions/settings.server.ts diff --git a/app/features/settings/components/LocaleTab.tsx b/apps/web-react/app/features/settings/components/LocaleTab.tsx similarity index 100% rename from app/features/settings/components/LocaleTab.tsx rename to apps/web-react/app/features/settings/components/LocaleTab.tsx diff --git a/app/features/settings/components/MapModePreferencesField.tsx b/apps/web-react/app/features/settings/components/MapModePreferencesField.tsx similarity index 100% rename from app/features/settings/components/MapModePreferencesField.tsx rename to apps/web-react/app/features/settings/components/MapModePreferencesField.tsx diff --git a/app/features/settings/components/MatchProfileTab.tsx b/apps/web-react/app/features/settings/components/MatchProfileTab.tsx similarity index 100% rename from app/features/settings/components/MatchProfileTab.tsx rename to apps/web-react/app/features/settings/components/MatchProfileTab.tsx diff --git a/app/features/settings/components/ModeMapPoolPicker.module.css b/apps/web-react/app/features/settings/components/ModeMapPoolPicker.module.css similarity index 100% rename from app/features/settings/components/ModeMapPoolPicker.module.css rename to apps/web-react/app/features/settings/components/ModeMapPoolPicker.module.css diff --git a/app/features/settings/components/ModeMapPoolPicker.tsx b/apps/web-react/app/features/settings/components/ModeMapPoolPicker.tsx similarity index 100% rename from app/features/settings/components/ModeMapPoolPicker.tsx rename to apps/web-react/app/features/settings/components/ModeMapPoolPicker.tsx diff --git a/app/features/settings/components/PreferenceRadioGroup.module.css b/apps/web-react/app/features/settings/components/PreferenceRadioGroup.module.css similarity index 100% rename from app/features/settings/components/PreferenceRadioGroup.module.css rename to apps/web-react/app/features/settings/components/PreferenceRadioGroup.module.css diff --git a/app/features/settings/components/PreferenceRadioGroup.tsx b/apps/web-react/app/features/settings/components/PreferenceRadioGroup.tsx similarity index 100% rename from app/features/settings/components/PreferenceRadioGroup.tsx rename to apps/web-react/app/features/settings/components/PreferenceRadioGroup.tsx diff --git a/app/features/settings/components/PreferencesTab.tsx b/apps/web-react/app/features/settings/components/PreferencesTab.tsx similarity index 100% rename from app/features/settings/components/PreferencesTab.tsx rename to apps/web-react/app/features/settings/components/PreferencesTab.tsx diff --git a/app/features/settings/components/SoundsTab.module.css b/apps/web-react/app/features/settings/components/SoundsTab.module.css similarity index 100% rename from app/features/settings/components/SoundsTab.module.css rename to apps/web-react/app/features/settings/components/SoundsTab.module.css diff --git a/app/features/settings/components/SoundsTab.tsx b/apps/web-react/app/features/settings/components/SoundsTab.tsx similarity index 100% rename from app/features/settings/components/SoundsTab.tsx rename to apps/web-react/app/features/settings/components/SoundsTab.tsx diff --git a/app/features/settings/components/ThemeTab.tsx b/apps/web-react/app/features/settings/components/ThemeTab.tsx similarity index 100% rename from app/features/settings/components/ThemeTab.tsx rename to apps/web-react/app/features/settings/components/ThemeTab.tsx diff --git a/app/features/settings/loaders/settings.server.ts b/apps/web-react/app/features/settings/loaders/settings.server.ts similarity index 100% rename from app/features/settings/loaders/settings.server.ts rename to apps/web-react/app/features/settings/loaders/settings.server.ts diff --git a/app/features/settings/match-profile-schemas.test.ts b/apps/web-react/app/features/settings/match-profile-schemas.test.ts similarity index 100% rename from app/features/settings/match-profile-schemas.test.ts rename to apps/web-react/app/features/settings/match-profile-schemas.test.ts diff --git a/app/features/settings/match-profile-schemas.ts b/apps/web-react/app/features/settings/match-profile-schemas.ts similarity index 100% rename from app/features/settings/match-profile-schemas.ts rename to apps/web-react/app/features/settings/match-profile-schemas.ts diff --git a/app/features/settings/routes/settings.global.css b/apps/web-react/app/features/settings/routes/settings.global.css similarity index 100% rename from app/features/settings/routes/settings.global.css rename to apps/web-react/app/features/settings/routes/settings.global.css diff --git a/app/features/settings/routes/settings.tsx b/apps/web-react/app/features/settings/routes/settings.tsx similarity index 100% rename from app/features/settings/routes/settings.tsx rename to apps/web-react/app/features/settings/routes/settings.tsx diff --git a/app/features/settings/routes/wave.svg b/apps/web-react/app/features/settings/routes/wave.svg similarity index 100% rename from app/features/settings/routes/wave.svg rename to apps/web-react/app/features/settings/routes/wave.svg diff --git a/app/features/settings/settings-constants.ts b/apps/web-react/app/features/settings/settings-constants.ts similarity index 100% rename from app/features/settings/settings-constants.ts rename to apps/web-react/app/features/settings/settings-constants.ts diff --git a/app/features/settings/settings-schemas.server.ts b/apps/web-react/app/features/settings/settings-schemas.server.ts similarity index 100% rename from app/features/settings/settings-schemas.server.ts rename to apps/web-react/app/features/settings/settings-schemas.server.ts diff --git a/app/features/settings/settings-schemas.ts b/apps/web-react/app/features/settings/settings-schemas.ts similarity index 100% rename from app/features/settings/settings-schemas.ts rename to apps/web-react/app/features/settings/settings-schemas.ts diff --git a/app/features/settings/settings-search-params.test.ts b/apps/web-react/app/features/settings/settings-search-params.test.ts similarity index 100% rename from app/features/settings/settings-search-params.test.ts rename to apps/web-react/app/features/settings/settings-search-params.test.ts diff --git a/app/features/settings/settings-search-params.ts b/apps/web-react/app/features/settings/settings-search-params.ts similarity index 100% rename from app/features/settings/settings-search-params.ts rename to apps/web-react/app/features/settings/settings-search-params.ts diff --git a/app/features/settings/settings-utils.ts b/apps/web-react/app/features/settings/settings-utils.ts similarity index 100% rename from app/features/settings/settings-utils.ts rename to apps/web-react/app/features/settings/settings-utils.ts diff --git a/app/features/sidebar/core/StreamRanking.test.ts b/apps/web-react/app/features/sidebar/core/StreamRanking.test.ts similarity index 100% rename from app/features/sidebar/core/StreamRanking.test.ts rename to apps/web-react/app/features/sidebar/core/StreamRanking.test.ts diff --git a/app/features/sidebar/core/StreamRanking.ts b/apps/web-react/app/features/sidebar/core/StreamRanking.ts similarity index 100% rename from app/features/sidebar/core/StreamRanking.ts rename to apps/web-react/app/features/sidebar/core/StreamRanking.ts diff --git a/app/features/sidebar/core/sidebar.server.ts b/apps/web-react/app/features/sidebar/core/sidebar.server.ts similarity index 100% rename from app/features/sidebar/core/sidebar.server.ts rename to apps/web-react/app/features/sidebar/core/sidebar.server.ts diff --git a/app/features/splatoon-rotations/SplatoonRotationRepository.server.ts b/apps/web-react/app/features/splatoon-rotations/SplatoonRotationRepository.server.ts similarity index 100% rename from app/features/splatoon-rotations/SplatoonRotationRepository.server.ts rename to apps/web-react/app/features/splatoon-rotations/SplatoonRotationRepository.server.ts diff --git a/app/features/splatoon-rotations/splatoon-rotations-constants.ts b/apps/web-react/app/features/splatoon-rotations/splatoon-rotations-constants.ts similarity index 100% rename from app/features/splatoon-rotations/splatoon-rotations-constants.ts rename to apps/web-react/app/features/splatoon-rotations/splatoon-rotations-constants.ts diff --git a/app/features/splatoon-rotations/splatoon-rotations.server.ts b/apps/web-react/app/features/splatoon-rotations/splatoon-rotations.server.ts similarity index 100% rename from app/features/splatoon-rotations/splatoon-rotations.server.ts rename to apps/web-react/app/features/splatoon-rotations/splatoon-rotations.server.ts diff --git a/app/features/team/TeamRepository.server.test.ts b/apps/web-react/app/features/team/TeamRepository.server.test.ts similarity index 100% rename from app/features/team/TeamRepository.server.test.ts rename to apps/web-react/app/features/team/TeamRepository.server.test.ts diff --git a/app/features/team/TeamRepository.server.ts b/apps/web-react/app/features/team/TeamRepository.server.ts similarity index 100% rename from app/features/team/TeamRepository.server.ts rename to apps/web-react/app/features/team/TeamRepository.server.ts diff --git a/app/features/team/actions/t.$customUrl.edit.server.test.ts b/apps/web-react/app/features/team/actions/t.$customUrl.edit.server.test.ts similarity index 100% rename from app/features/team/actions/t.$customUrl.edit.server.test.ts rename to apps/web-react/app/features/team/actions/t.$customUrl.edit.server.test.ts diff --git a/app/features/team/actions/t.$customUrl.edit.server.ts b/apps/web-react/app/features/team/actions/t.$customUrl.edit.server.ts similarity index 100% rename from app/features/team/actions/t.$customUrl.edit.server.ts rename to apps/web-react/app/features/team/actions/t.$customUrl.edit.server.ts diff --git a/app/features/team/actions/t.$customUrl.index.server.ts b/apps/web-react/app/features/team/actions/t.$customUrl.index.server.ts similarity index 100% rename from app/features/team/actions/t.$customUrl.index.server.ts rename to apps/web-react/app/features/team/actions/t.$customUrl.index.server.ts diff --git a/app/features/team/actions/t.$customUrl.join.server.ts b/apps/web-react/app/features/team/actions/t.$customUrl.join.server.ts similarity index 100% rename from app/features/team/actions/t.$customUrl.join.server.ts rename to apps/web-react/app/features/team/actions/t.$customUrl.join.server.ts diff --git a/app/features/team/actions/t.$customUrl.roster.server.ts b/apps/web-react/app/features/team/actions/t.$customUrl.roster.server.ts similarity index 100% rename from app/features/team/actions/t.$customUrl.roster.server.ts rename to apps/web-react/app/features/team/actions/t.$customUrl.roster.server.ts diff --git a/app/features/team/actions/t.new.server.test.ts b/apps/web-react/app/features/team/actions/t.new.server.test.ts similarity index 100% rename from app/features/team/actions/t.new.server.test.ts rename to apps/web-react/app/features/team/actions/t.new.server.test.ts diff --git a/app/features/team/actions/t.new.server.ts b/apps/web-react/app/features/team/actions/t.new.server.ts similarity index 100% rename from app/features/team/actions/t.new.server.ts rename to apps/web-react/app/features/team/actions/t.new.server.ts diff --git a/app/features/team/components/TeamGoBackButton.tsx b/apps/web-react/app/features/team/components/TeamGoBackButton.tsx similarity index 100% rename from app/features/team/components/TeamGoBackButton.tsx rename to apps/web-react/app/features/team/components/TeamGoBackButton.tsx diff --git a/app/features/team/components/TeamResultsTable.module.css b/apps/web-react/app/features/team/components/TeamResultsTable.module.css similarity index 100% rename from app/features/team/components/TeamResultsTable.module.css rename to apps/web-react/app/features/team/components/TeamResultsTable.module.css diff --git a/app/features/team/components/TeamResultsTable.tsx b/apps/web-react/app/features/team/components/TeamResultsTable.tsx similarity index 100% rename from app/features/team/components/TeamResultsTable.tsx rename to apps/web-react/app/features/team/components/TeamResultsTable.tsx diff --git a/app/features/team/loaders/t.$customUrl.edit.server.ts b/apps/web-react/app/features/team/loaders/t.$customUrl.edit.server.ts similarity index 100% rename from app/features/team/loaders/t.$customUrl.edit.server.ts rename to apps/web-react/app/features/team/loaders/t.$customUrl.edit.server.ts diff --git a/app/features/team/loaders/t.$customUrl.join.server.ts b/apps/web-react/app/features/team/loaders/t.$customUrl.join.server.ts similarity index 100% rename from app/features/team/loaders/t.$customUrl.join.server.ts rename to apps/web-react/app/features/team/loaders/t.$customUrl.join.server.ts diff --git a/app/features/team/loaders/t.$customUrl.results.server.ts b/apps/web-react/app/features/team/loaders/t.$customUrl.results.server.ts similarity index 100% rename from app/features/team/loaders/t.$customUrl.results.server.ts rename to apps/web-react/app/features/team/loaders/t.$customUrl.results.server.ts diff --git a/app/features/team/loaders/t.$customUrl.roster.server.ts b/apps/web-react/app/features/team/loaders/t.$customUrl.roster.server.ts similarity index 100% rename from app/features/team/loaders/t.$customUrl.roster.server.ts rename to apps/web-react/app/features/team/loaders/t.$customUrl.roster.server.ts diff --git a/app/features/team/loaders/t.$customUrl.server.ts b/apps/web-react/app/features/team/loaders/t.$customUrl.server.ts similarity index 100% rename from app/features/team/loaders/t.$customUrl.server.ts rename to apps/web-react/app/features/team/loaders/t.$customUrl.server.ts diff --git a/app/features/team/loaders/t.new.server.ts b/apps/web-react/app/features/team/loaders/t.new.server.ts similarity index 100% rename from app/features/team/loaders/t.new.server.ts rename to apps/web-react/app/features/team/loaders/t.new.server.ts diff --git a/app/features/team/routes/t.$customUrl.edit.test.ts b/apps/web-react/app/features/team/routes/t.$customUrl.edit.test.ts similarity index 100% rename from app/features/team/routes/t.$customUrl.edit.test.ts rename to apps/web-react/app/features/team/routes/t.$customUrl.edit.test.ts diff --git a/app/features/team/routes/t.$customUrl.edit.tsx b/apps/web-react/app/features/team/routes/t.$customUrl.edit.tsx similarity index 100% rename from app/features/team/routes/t.$customUrl.edit.tsx rename to apps/web-react/app/features/team/routes/t.$customUrl.edit.tsx diff --git a/app/features/team/routes/t.$customUrl.index.tsx b/apps/web-react/app/features/team/routes/t.$customUrl.index.tsx similarity index 100% rename from app/features/team/routes/t.$customUrl.index.tsx rename to apps/web-react/app/features/team/routes/t.$customUrl.index.tsx diff --git a/app/features/team/routes/t.$customUrl.join.tsx b/apps/web-react/app/features/team/routes/t.$customUrl.join.tsx similarity index 100% rename from app/features/team/routes/t.$customUrl.join.tsx rename to apps/web-react/app/features/team/routes/t.$customUrl.join.tsx diff --git a/app/features/team/routes/t.$customUrl.results.tsx b/apps/web-react/app/features/team/routes/t.$customUrl.results.tsx similarity index 100% rename from app/features/team/routes/t.$customUrl.results.tsx rename to apps/web-react/app/features/team/routes/t.$customUrl.results.tsx diff --git a/app/features/team/routes/t.$customUrl.roster.tsx b/apps/web-react/app/features/team/routes/t.$customUrl.roster.tsx similarity index 100% rename from app/features/team/routes/t.$customUrl.roster.tsx rename to apps/web-react/app/features/team/routes/t.$customUrl.roster.tsx diff --git a/app/features/team/routes/t.$customUrl.test.ts b/apps/web-react/app/features/team/routes/t.$customUrl.test.ts similarity index 100% rename from app/features/team/routes/t.$customUrl.test.ts rename to apps/web-react/app/features/team/routes/t.$customUrl.test.ts diff --git a/app/features/team/routes/t.$customUrl.tsx b/apps/web-react/app/features/team/routes/t.$customUrl.tsx similarity index 100% rename from app/features/team/routes/t.$customUrl.tsx rename to apps/web-react/app/features/team/routes/t.$customUrl.tsx diff --git a/app/features/team/routes/t.new.tsx b/apps/web-react/app/features/team/routes/t.new.tsx similarity index 100% rename from app/features/team/routes/t.new.tsx rename to apps/web-react/app/features/team/routes/t.new.tsx diff --git a/app/features/team/routes/t.tsx b/apps/web-react/app/features/team/routes/t.tsx similarity index 100% rename from app/features/team/routes/t.tsx rename to apps/web-react/app/features/team/routes/t.tsx diff --git a/app/features/team/team-constants.ts b/apps/web-react/app/features/team/team-constants.ts similarity index 100% rename from app/features/team/team-constants.ts rename to apps/web-react/app/features/team/team-constants.ts diff --git a/app/features/team/team-schemas.server.ts b/apps/web-react/app/features/team/team-schemas.server.ts similarity index 100% rename from app/features/team/team-schemas.server.ts rename to apps/web-react/app/features/team/team-schemas.server.ts diff --git a/app/features/team/team-schemas.ts b/apps/web-react/app/features/team/team-schemas.ts similarity index 100% rename from app/features/team/team-schemas.ts rename to apps/web-react/app/features/team/team-schemas.ts diff --git a/app/features/team/team-search-params.test.ts b/apps/web-react/app/features/team/team-search-params.test.ts similarity index 100% rename from app/features/team/team-search-params.test.ts rename to apps/web-react/app/features/team/team-search-params.test.ts diff --git a/app/features/team/team-search-params.ts b/apps/web-react/app/features/team/team-search-params.ts similarity index 100% rename from app/features/team/team-search-params.ts rename to apps/web-react/app/features/team/team-search-params.ts diff --git a/app/features/team/team-urls.ts b/apps/web-react/app/features/team/team-urls.ts similarity index 100% rename from app/features/team/team-urls.ts rename to apps/web-react/app/features/team/team-urls.ts diff --git a/app/features/team/team-utils.test.ts b/apps/web-react/app/features/team/team-utils.test.ts similarity index 100% rename from app/features/team/team-utils.test.ts rename to apps/web-react/app/features/team/team-utils.test.ts diff --git a/app/features/team/team-utils.ts b/apps/web-react/app/features/team/team-utils.ts similarity index 100% rename from app/features/team/team-utils.ts rename to apps/web-react/app/features/team/team-utils.ts diff --git a/app/features/team/team.module.css b/apps/web-react/app/features/team/team.module.css similarity index 100% rename from app/features/team/team.module.css rename to apps/web-react/app/features/team/team.module.css diff --git a/app/features/team/tests/fixtures.ts b/apps/web-react/app/features/team/tests/fixtures.ts similarity index 100% rename from app/features/team/tests/fixtures.ts rename to apps/web-react/app/features/team/tests/fixtures.ts diff --git a/app/features/theme/core/README.md b/apps/web-react/app/features/theme/core/README.md similarity index 100% rename from app/features/theme/core/README.md rename to apps/web-react/app/features/theme/core/README.md diff --git a/app/features/theme/core/provider.tsx b/apps/web-react/app/features/theme/core/provider.tsx similarity index 100% rename from app/features/theme/core/provider.tsx rename to apps/web-react/app/features/theme/core/provider.tsx diff --git a/app/features/theme/core/theme-session.server.ts b/apps/web-react/app/features/theme/core/theme-session.server.ts similarity index 100% rename from app/features/theme/core/theme-session.server.ts rename to apps/web-react/app/features/theme/core/theme-session.server.ts diff --git a/app/features/theme/routes/theme.ts b/apps/web-react/app/features/theme/routes/theme.ts similarity index 100% rename from app/features/theme/routes/theme.ts rename to apps/web-react/app/features/theme/routes/theme.ts diff --git a/app/features/theme/theme-constants.ts b/apps/web-react/app/features/theme/theme-constants.ts similarity index 100% rename from app/features/theme/theme-constants.ts rename to apps/web-react/app/features/theme/theme-constants.ts diff --git a/app/features/tier-list-maker/components/DraggableItem.module.css b/apps/web-react/app/features/tier-list-maker/components/DraggableItem.module.css similarity index 100% rename from app/features/tier-list-maker/components/DraggableItem.module.css rename to apps/web-react/app/features/tier-list-maker/components/DraggableItem.module.css diff --git a/app/features/tier-list-maker/components/DraggableItem.tsx b/apps/web-react/app/features/tier-list-maker/components/DraggableItem.tsx similarity index 100% rename from app/features/tier-list-maker/components/DraggableItem.tsx rename to apps/web-react/app/features/tier-list-maker/components/DraggableItem.tsx diff --git a/app/features/tier-list-maker/components/ItemDragPreview.module.css b/apps/web-react/app/features/tier-list-maker/components/ItemDragPreview.module.css similarity index 100% rename from app/features/tier-list-maker/components/ItemDragPreview.module.css rename to apps/web-react/app/features/tier-list-maker/components/ItemDragPreview.module.css diff --git a/app/features/tier-list-maker/components/ItemDragPreview.tsx b/apps/web-react/app/features/tier-list-maker/components/ItemDragPreview.tsx similarity index 100% rename from app/features/tier-list-maker/components/ItemDragPreview.tsx rename to apps/web-react/app/features/tier-list-maker/components/ItemDragPreview.tsx diff --git a/app/features/tier-list-maker/components/ItemPool.module.css b/apps/web-react/app/features/tier-list-maker/components/ItemPool.module.css similarity index 100% rename from app/features/tier-list-maker/components/ItemPool.module.css rename to apps/web-react/app/features/tier-list-maker/components/ItemPool.module.css diff --git a/app/features/tier-list-maker/components/ItemPool.tsx b/apps/web-react/app/features/tier-list-maker/components/ItemPool.tsx similarity index 100% rename from app/features/tier-list-maker/components/ItemPool.tsx rename to apps/web-react/app/features/tier-list-maker/components/ItemPool.tsx diff --git a/app/features/tier-list-maker/components/TierListGraphic.module.css b/apps/web-react/app/features/tier-list-maker/components/TierListGraphic.module.css similarity index 100% rename from app/features/tier-list-maker/components/TierListGraphic.module.css rename to apps/web-react/app/features/tier-list-maker/components/TierListGraphic.module.css diff --git a/app/features/tier-list-maker/components/TierListGraphic.tsx b/apps/web-react/app/features/tier-list-maker/components/TierListGraphic.tsx similarity index 100% rename from app/features/tier-list-maker/components/TierListGraphic.tsx rename to apps/web-react/app/features/tier-list-maker/components/TierListGraphic.tsx diff --git a/app/features/tier-list-maker/components/TierListItemImage.module.css b/apps/web-react/app/features/tier-list-maker/components/TierListItemImage.module.css similarity index 100% rename from app/features/tier-list-maker/components/TierListItemImage.module.css rename to apps/web-react/app/features/tier-list-maker/components/TierListItemImage.module.css diff --git a/app/features/tier-list-maker/components/TierListItemImage.tsx b/apps/web-react/app/features/tier-list-maker/components/TierListItemImage.tsx similarity index 100% rename from app/features/tier-list-maker/components/TierListItemImage.tsx rename to apps/web-react/app/features/tier-list-maker/components/TierListItemImage.tsx diff --git a/app/features/tier-list-maker/components/TierRow.module.css b/apps/web-react/app/features/tier-list-maker/components/TierRow.module.css similarity index 100% rename from app/features/tier-list-maker/components/TierRow.module.css rename to apps/web-react/app/features/tier-list-maker/components/TierRow.module.css diff --git a/app/features/tier-list-maker/components/TierRow.tsx b/apps/web-react/app/features/tier-list-maker/components/TierRow.tsx similarity index 100% rename from app/features/tier-list-maker/components/TierRow.tsx rename to apps/web-react/app/features/tier-list-maker/components/TierRow.tsx diff --git a/app/features/tier-list-maker/contexts/TierListContext.tsx b/apps/web-react/app/features/tier-list-maker/contexts/TierListContext.tsx similarity index 100% rename from app/features/tier-list-maker/contexts/TierListContext.tsx rename to apps/web-react/app/features/tier-list-maker/contexts/TierListContext.tsx diff --git a/app/features/tier-list-maker/hooks/useTierList.ts b/apps/web-react/app/features/tier-list-maker/hooks/useTierList.ts similarity index 100% rename from app/features/tier-list-maker/hooks/useTierList.ts rename to apps/web-react/app/features/tier-list-maker/hooks/useTierList.ts diff --git a/app/features/tier-list-maker/routes/tier-list-maker.module.css b/apps/web-react/app/features/tier-list-maker/routes/tier-list-maker.module.css similarity index 100% rename from app/features/tier-list-maker/routes/tier-list-maker.module.css rename to apps/web-react/app/features/tier-list-maker/routes/tier-list-maker.module.css diff --git a/app/features/tier-list-maker/routes/tier-list-maker.tsx b/apps/web-react/app/features/tier-list-maker/routes/tier-list-maker.tsx similarity index 100% rename from app/features/tier-list-maker/routes/tier-list-maker.tsx rename to apps/web-react/app/features/tier-list-maker/routes/tier-list-maker.tsx diff --git a/app/features/tier-list-maker/tier-list-maker-constants.ts b/apps/web-react/app/features/tier-list-maker/tier-list-maker-constants.ts similarity index 100% rename from app/features/tier-list-maker/tier-list-maker-constants.ts rename to apps/web-react/app/features/tier-list-maker/tier-list-maker-constants.ts diff --git a/app/features/tier-list-maker/tier-list-maker-schemas.ts b/apps/web-react/app/features/tier-list-maker/tier-list-maker-schemas.ts similarity index 100% rename from app/features/tier-list-maker/tier-list-maker-schemas.ts rename to apps/web-react/app/features/tier-list-maker/tier-list-maker-schemas.ts diff --git a/app/features/tier-list-maker/tier-list-maker-search-params.test.ts b/apps/web-react/app/features/tier-list-maker/tier-list-maker-search-params.test.ts similarity index 100% rename from app/features/tier-list-maker/tier-list-maker-search-params.test.ts rename to apps/web-react/app/features/tier-list-maker/tier-list-maker-search-params.test.ts diff --git a/app/features/tier-list-maker/tier-list-maker-search-params.ts b/apps/web-react/app/features/tier-list-maker/tier-list-maker-search-params.ts similarity index 100% rename from app/features/tier-list-maker/tier-list-maker-search-params.ts rename to apps/web-react/app/features/tier-list-maker/tier-list-maker-search-params.ts diff --git a/app/features/tier-list-maker/tier-list-maker-utils.test.ts b/apps/web-react/app/features/tier-list-maker/tier-list-maker-utils.test.ts similarity index 100% rename from app/features/tier-list-maker/tier-list-maker-utils.test.ts rename to apps/web-react/app/features/tier-list-maker/tier-list-maker-utils.test.ts diff --git a/app/features/tier-list-maker/tier-list-maker-utils.ts b/apps/web-react/app/features/tier-list-maker/tier-list-maker-utils.ts similarity index 100% rename from app/features/tier-list-maker/tier-list-maker-utils.ts rename to apps/web-react/app/features/tier-list-maker/tier-list-maker-utils.ts diff --git a/app/features/timezone/timezone-context.server.ts b/apps/web-react/app/features/timezone/timezone-context.server.ts similarity index 100% rename from app/features/timezone/timezone-context.server.ts rename to apps/web-react/app/features/timezone/timezone-context.server.ts diff --git a/app/features/timezone/timezone-cookie.test.ts b/apps/web-react/app/features/timezone/timezone-cookie.test.ts similarity index 100% rename from app/features/timezone/timezone-cookie.test.ts rename to apps/web-react/app/features/timezone/timezone-cookie.test.ts diff --git a/app/features/timezone/timezone-cookie.ts b/apps/web-react/app/features/timezone/timezone-cookie.ts similarity index 100% rename from app/features/timezone/timezone-cookie.ts rename to apps/web-react/app/features/timezone/timezone-cookie.ts diff --git a/app/features/timezone/timezone-middleware.server.ts b/apps/web-react/app/features/timezone/timezone-middleware.server.ts similarity index 100% rename from app/features/timezone/timezone-middleware.server.ts rename to apps/web-react/app/features/timezone/timezone-middleware.server.ts diff --git a/app/features/top-search/XRankPlacementRepository.server.test.ts b/apps/web-react/app/features/top-search/XRankPlacementRepository.server.test.ts similarity index 100% rename from app/features/top-search/XRankPlacementRepository.server.test.ts rename to apps/web-react/app/features/top-search/XRankPlacementRepository.server.test.ts diff --git a/app/features/top-search/XRankPlacementRepository.server.ts b/apps/web-react/app/features/top-search/XRankPlacementRepository.server.ts similarity index 100% rename from app/features/top-search/XRankPlacementRepository.server.ts rename to apps/web-react/app/features/top-search/XRankPlacementRepository.server.ts diff --git a/app/features/top-search/actions/xsearch.player.$id.server.ts b/apps/web-react/app/features/top-search/actions/xsearch.player.$id.server.ts similarity index 100% rename from app/features/top-search/actions/xsearch.player.$id.server.ts rename to apps/web-react/app/features/top-search/actions/xsearch.player.$id.server.ts diff --git a/app/features/top-search/components/HowToLinkPopover.module.css b/apps/web-react/app/features/top-search/components/HowToLinkPopover.module.css similarity index 100% rename from app/features/top-search/components/HowToLinkPopover.module.css rename to apps/web-react/app/features/top-search/components/HowToLinkPopover.module.css diff --git a/app/features/top-search/components/HowToLinkPopover.tsx b/apps/web-react/app/features/top-search/components/HowToLinkPopover.tsx similarity index 100% rename from app/features/top-search/components/HowToLinkPopover.tsx rename to apps/web-react/app/features/top-search/components/HowToLinkPopover.tsx diff --git a/app/features/top-search/components/Placements.tsx b/apps/web-react/app/features/top-search/components/Placements.tsx similarity index 100% rename from app/features/top-search/components/Placements.tsx rename to apps/web-react/app/features/top-search/components/Placements.tsx diff --git a/app/features/top-search/loaders/xsearch.player.$id.server.ts b/apps/web-react/app/features/top-search/loaders/xsearch.player.$id.server.ts similarity index 100% rename from app/features/top-search/loaders/xsearch.player.$id.server.ts rename to apps/web-react/app/features/top-search/loaders/xsearch.player.$id.server.ts diff --git a/app/features/top-search/loaders/xsearch.server.ts b/apps/web-react/app/features/top-search/loaders/xsearch.server.ts similarity index 100% rename from app/features/top-search/loaders/xsearch.server.ts rename to apps/web-react/app/features/top-search/loaders/xsearch.server.ts diff --git a/app/features/top-search/routes/xsearch.player.$id.tsx b/apps/web-react/app/features/top-search/routes/xsearch.player.$id.tsx similarity index 100% rename from app/features/top-search/routes/xsearch.player.$id.tsx rename to apps/web-react/app/features/top-search/routes/xsearch.player.$id.tsx diff --git a/app/features/top-search/routes/xsearch.tsx b/apps/web-react/app/features/top-search/routes/xsearch.tsx similarity index 100% rename from app/features/top-search/routes/xsearch.tsx rename to apps/web-react/app/features/top-search/routes/xsearch.tsx diff --git a/app/features/top-search/top-search-search-params.test.ts b/apps/web-react/app/features/top-search/top-search-search-params.test.ts similarity index 100% rename from app/features/top-search/top-search-search-params.test.ts rename to apps/web-react/app/features/top-search/top-search-search-params.test.ts diff --git a/app/features/top-search/top-search-search-params.ts b/apps/web-react/app/features/top-search/top-search-search-params.ts similarity index 100% rename from app/features/top-search/top-search-search-params.ts rename to apps/web-react/app/features/top-search/top-search-search-params.ts diff --git a/app/features/top-search/top-search-types.ts b/apps/web-react/app/features/top-search/top-search-types.ts similarity index 100% rename from app/features/top-search/top-search-types.ts rename to apps/web-react/app/features/top-search/top-search-types.ts diff --git a/app/features/top-search/top-search-urls.ts b/apps/web-react/app/features/top-search/top-search-urls.ts similarity index 100% rename from app/features/top-search/top-search-urls.ts rename to apps/web-react/app/features/top-search/top-search-urls.ts diff --git a/app/features/top-search/top-search-utils.ts b/apps/web-react/app/features/top-search/top-search-utils.ts similarity index 100% rename from app/features/top-search/top-search-utils.ts rename to apps/web-react/app/features/top-search/top-search-utils.ts diff --git a/app/features/top-search/top-search.module.css b/apps/web-react/app/features/top-search/top-search.module.css similarity index 100% rename from app/features/top-search/top-search.module.css rename to apps/web-react/app/features/top-search/top-search.module.css diff --git a/app/features/tournament-admin/actions/to.$id.admin.brackets.server.ts b/apps/web-react/app/features/tournament-admin/actions/to.$id.admin.brackets.server.ts similarity index 100% rename from app/features/tournament-admin/actions/to.$id.admin.brackets.server.ts rename to apps/web-react/app/features/tournament-admin/actions/to.$id.admin.brackets.server.ts diff --git a/app/features/tournament-admin/actions/to.$id.admin.index.server.ts b/apps/web-react/app/features/tournament-admin/actions/to.$id.admin.index.server.ts similarity index 100% rename from app/features/tournament-admin/actions/to.$id.admin.index.server.ts rename to apps/web-react/app/features/tournament-admin/actions/to.$id.admin.index.server.ts diff --git a/app/features/tournament-admin/actions/to.$id.admin.registration.server.ts b/apps/web-react/app/features/tournament-admin/actions/to.$id.admin.registration.server.ts similarity index 100% rename from app/features/tournament-admin/actions/to.$id.admin.registration.server.ts rename to apps/web-react/app/features/tournament-admin/actions/to.$id.admin.registration.server.ts diff --git a/app/features/tournament-admin/actions/to.$id.admin.seeds.server.ts b/apps/web-react/app/features/tournament-admin/actions/to.$id.admin.seeds.server.ts similarity index 100% rename from app/features/tournament-admin/actions/to.$id.admin.seeds.server.ts rename to apps/web-react/app/features/tournament-admin/actions/to.$id.admin.seeds.server.ts diff --git a/app/features/tournament-admin/actions/to.$id.admin.staff.server.ts b/apps/web-react/app/features/tournament-admin/actions/to.$id.admin.staff.server.ts similarity index 100% rename from app/features/tournament-admin/actions/to.$id.admin.staff.server.ts rename to apps/web-react/app/features/tournament-admin/actions/to.$id.admin.staff.server.ts diff --git a/app/features/tournament-admin/actions/to.$id.admin.stream.server.ts b/apps/web-react/app/features/tournament-admin/actions/to.$id.admin.stream.server.ts similarity index 100% rename from app/features/tournament-admin/actions/to.$id.admin.stream.server.ts rename to apps/web-react/app/features/tournament-admin/actions/to.$id.admin.stream.server.ts diff --git a/app/features/tournament-admin/components/ExportDialog.module.css b/apps/web-react/app/features/tournament-admin/components/ExportDialog.module.css similarity index 100% rename from app/features/tournament-admin/components/ExportDialog.module.css rename to apps/web-react/app/features/tournament-admin/components/ExportDialog.module.css diff --git a/app/features/tournament-admin/components/ExportDialog.test.ts b/apps/web-react/app/features/tournament-admin/components/ExportDialog.test.ts similarity index 100% rename from app/features/tournament-admin/components/ExportDialog.test.ts rename to apps/web-react/app/features/tournament-admin/components/ExportDialog.test.ts diff --git a/app/features/tournament-admin/components/ExportDialog.tsx b/apps/web-react/app/features/tournament-admin/components/ExportDialog.tsx similarity index 100% rename from app/features/tournament-admin/components/ExportDialog.tsx rename to apps/web-react/app/features/tournament-admin/components/ExportDialog.tsx diff --git a/app/features/tournament-admin/loaders/to.$id.admin.audit.server.ts b/apps/web-react/app/features/tournament-admin/loaders/to.$id.admin.audit.server.ts similarity index 100% rename from app/features/tournament-admin/loaders/to.$id.admin.audit.server.ts rename to apps/web-react/app/features/tournament-admin/loaders/to.$id.admin.audit.server.ts diff --git a/app/features/tournament-admin/loaders/to.$id.admin.index.server.ts b/apps/web-react/app/features/tournament-admin/loaders/to.$id.admin.index.server.ts similarity index 100% rename from app/features/tournament-admin/loaders/to.$id.admin.index.server.ts rename to apps/web-react/app/features/tournament-admin/loaders/to.$id.admin.index.server.ts diff --git a/app/features/tournament-admin/loaders/to.$id.admin.registration.$tid.server.ts b/apps/web-react/app/features/tournament-admin/loaders/to.$id.admin.registration.$tid.server.ts similarity index 100% rename from app/features/tournament-admin/loaders/to.$id.admin.registration.$tid.server.ts rename to apps/web-react/app/features/tournament-admin/loaders/to.$id.admin.registration.$tid.server.ts diff --git a/app/features/tournament-admin/loaders/to.$id.admin.seeds.server.ts b/apps/web-react/app/features/tournament-admin/loaders/to.$id.admin.seeds.server.ts similarity index 100% rename from app/features/tournament-admin/loaders/to.$id.admin.seeds.server.ts rename to apps/web-react/app/features/tournament-admin/loaders/to.$id.admin.seeds.server.ts diff --git a/app/features/tournament-admin/routes/to.$id.admin._index.module.css b/apps/web-react/app/features/tournament-admin/routes/to.$id.admin._index.module.css similarity index 100% rename from app/features/tournament-admin/routes/to.$id.admin._index.module.css rename to apps/web-react/app/features/tournament-admin/routes/to.$id.admin._index.module.css diff --git a/app/features/tournament-admin/routes/to.$id.admin._index.tsx b/apps/web-react/app/features/tournament-admin/routes/to.$id.admin._index.tsx similarity index 100% rename from app/features/tournament-admin/routes/to.$id.admin._index.tsx rename to apps/web-react/app/features/tournament-admin/routes/to.$id.admin._index.tsx diff --git a/app/features/tournament-admin/routes/to.$id.admin.audit.module.css b/apps/web-react/app/features/tournament-admin/routes/to.$id.admin.audit.module.css similarity index 100% rename from app/features/tournament-admin/routes/to.$id.admin.audit.module.css rename to apps/web-react/app/features/tournament-admin/routes/to.$id.admin.audit.module.css diff --git a/app/features/tournament-admin/routes/to.$id.admin.audit.tsx b/apps/web-react/app/features/tournament-admin/routes/to.$id.admin.audit.tsx similarity index 100% rename from app/features/tournament-admin/routes/to.$id.admin.audit.tsx rename to apps/web-react/app/features/tournament-admin/routes/to.$id.admin.audit.tsx diff --git a/app/features/tournament-admin/routes/to.$id.admin.brackets.tsx b/apps/web-react/app/features/tournament-admin/routes/to.$id.admin.brackets.tsx similarity index 100% rename from app/features/tournament-admin/routes/to.$id.admin.brackets.tsx rename to apps/web-react/app/features/tournament-admin/routes/to.$id.admin.brackets.tsx diff --git a/app/features/tournament-admin/routes/to.$id.admin.import-teams.ts b/apps/web-react/app/features/tournament-admin/routes/to.$id.admin.import-teams.ts similarity index 100% rename from app/features/tournament-admin/routes/to.$id.admin.import-teams.ts rename to apps/web-react/app/features/tournament-admin/routes/to.$id.admin.import-teams.ts diff --git a/app/features/tournament-admin/routes/to.$id.admin.index.tsx b/apps/web-react/app/features/tournament-admin/routes/to.$id.admin.index.tsx similarity index 100% rename from app/features/tournament-admin/routes/to.$id.admin.index.tsx rename to apps/web-react/app/features/tournament-admin/routes/to.$id.admin.index.tsx diff --git a/app/features/tournament-admin/routes/to.$id.admin.module.css b/apps/web-react/app/features/tournament-admin/routes/to.$id.admin.module.css similarity index 100% rename from app/features/tournament-admin/routes/to.$id.admin.module.css rename to apps/web-react/app/features/tournament-admin/routes/to.$id.admin.module.css diff --git a/app/features/tournament-admin/routes/to.$id.admin.registration.$tid.browser.test.tsx b/apps/web-react/app/features/tournament-admin/routes/to.$id.admin.registration.$tid.browser.test.tsx similarity index 100% rename from app/features/tournament-admin/routes/to.$id.admin.registration.$tid.browser.test.tsx rename to apps/web-react/app/features/tournament-admin/routes/to.$id.admin.registration.$tid.browser.test.tsx diff --git a/app/features/tournament-admin/routes/to.$id.admin.registration.$tid.captain-label.browser.test.tsx b/apps/web-react/app/features/tournament-admin/routes/to.$id.admin.registration.$tid.captain-label.browser.test.tsx similarity index 100% rename from app/features/tournament-admin/routes/to.$id.admin.registration.$tid.captain-label.browser.test.tsx rename to apps/web-react/app/features/tournament-admin/routes/to.$id.admin.registration.$tid.captain-label.browser.test.tsx diff --git a/app/features/tournament-admin/routes/to.$id.admin.registration.$tid.tsx b/apps/web-react/app/features/tournament-admin/routes/to.$id.admin.registration.$tid.tsx similarity index 100% rename from app/features/tournament-admin/routes/to.$id.admin.registration.$tid.tsx rename to apps/web-react/app/features/tournament-admin/routes/to.$id.admin.registration.$tid.tsx diff --git a/app/features/tournament-admin/routes/to.$id.admin.seeds.module.css b/apps/web-react/app/features/tournament-admin/routes/to.$id.admin.seeds.module.css similarity index 100% rename from app/features/tournament-admin/routes/to.$id.admin.seeds.module.css rename to apps/web-react/app/features/tournament-admin/routes/to.$id.admin.seeds.module.css diff --git a/app/features/tournament-admin/routes/to.$id.admin.seeds.tsx b/apps/web-react/app/features/tournament-admin/routes/to.$id.admin.seeds.tsx similarity index 100% rename from app/features/tournament-admin/routes/to.$id.admin.seeds.tsx rename to apps/web-react/app/features/tournament-admin/routes/to.$id.admin.seeds.tsx diff --git a/app/features/tournament-admin/routes/to.$id.admin.staff.tsx b/apps/web-react/app/features/tournament-admin/routes/to.$id.admin.staff.tsx similarity index 100% rename from app/features/tournament-admin/routes/to.$id.admin.staff.tsx rename to apps/web-react/app/features/tournament-admin/routes/to.$id.admin.staff.tsx diff --git a/app/features/tournament-admin/routes/to.$id.admin.stream.tsx b/apps/web-react/app/features/tournament-admin/routes/to.$id.admin.stream.tsx similarity index 100% rename from app/features/tournament-admin/routes/to.$id.admin.stream.tsx rename to apps/web-react/app/features/tournament-admin/routes/to.$id.admin.stream.tsx diff --git a/app/features/tournament-admin/routes/to.$id.admin.tsx b/apps/web-react/app/features/tournament-admin/routes/to.$id.admin.tsx similarity index 100% rename from app/features/tournament-admin/routes/to.$id.admin.tsx rename to apps/web-react/app/features/tournament-admin/routes/to.$id.admin.tsx diff --git a/app/features/tournament-admin/tournament-admin-registration-schemas.server.ts b/apps/web-react/app/features/tournament-admin/tournament-admin-registration-schemas.server.ts similarity index 100% rename from app/features/tournament-admin/tournament-admin-registration-schemas.server.ts rename to apps/web-react/app/features/tournament-admin/tournament-admin-registration-schemas.server.ts diff --git a/app/features/tournament-admin/tournament-admin-registration-schemas.ts b/apps/web-react/app/features/tournament-admin/tournament-admin-registration-schemas.ts similarity index 100% rename from app/features/tournament-admin/tournament-admin-registration-schemas.ts rename to apps/web-react/app/features/tournament-admin/tournament-admin-registration-schemas.ts diff --git a/app/features/tournament-admin/tournament-admin-schemas.ts b/apps/web-react/app/features/tournament-admin/tournament-admin-schemas.ts similarity index 100% rename from app/features/tournament-admin/tournament-admin-schemas.ts rename to apps/web-react/app/features/tournament-admin/tournament-admin-schemas.ts diff --git a/app/features/tournament-admin/tournament-admin-search-params.test.ts b/apps/web-react/app/features/tournament-admin/tournament-admin-search-params.test.ts similarity index 100% rename from app/features/tournament-admin/tournament-admin-search-params.test.ts rename to apps/web-react/app/features/tournament-admin/tournament-admin-search-params.test.ts diff --git a/app/features/tournament-admin/tournament-admin-search-params.ts b/apps/web-react/app/features/tournament-admin/tournament-admin-search-params.ts similarity index 100% rename from app/features/tournament-admin/tournament-admin-search-params.ts rename to apps/web-react/app/features/tournament-admin/tournament-admin-search-params.ts diff --git a/app/features/tournament-admin/tournament-admin-staff-schemas.ts b/apps/web-react/app/features/tournament-admin/tournament-admin-staff-schemas.ts similarity index 100% rename from app/features/tournament-admin/tournament-admin-staff-schemas.ts rename to apps/web-react/app/features/tournament-admin/tournament-admin-staff-schemas.ts diff --git a/app/features/tournament-admin/tournament-admin-urls.ts b/apps/web-react/app/features/tournament-admin/tournament-admin-urls.ts similarity index 100% rename from app/features/tournament-admin/tournament-admin-urls.ts rename to apps/web-react/app/features/tournament-admin/tournament-admin-urls.ts diff --git a/app/features/tournament-bracket/BracketRepository.server.ts b/apps/web-react/app/features/tournament-bracket/BracketRepository.server.ts similarity index 100% rename from app/features/tournament-bracket/BracketRepository.server.ts rename to apps/web-react/app/features/tournament-bracket/BracketRepository.server.ts diff --git a/app/features/tournament-bracket/TournamentMatchVodRepository.server.ts b/apps/web-react/app/features/tournament-bracket/TournamentMatchVodRepository.server.ts similarity index 100% rename from app/features/tournament-bracket/TournamentMatchVodRepository.server.ts rename to apps/web-react/app/features/tournament-bracket/TournamentMatchVodRepository.server.ts diff --git a/app/features/tournament-bracket/actions/to.$id.brackets.finalize.server.ts b/apps/web-react/app/features/tournament-bracket/actions/to.$id.brackets.finalize.server.ts similarity index 100% rename from app/features/tournament-bracket/actions/to.$id.brackets.finalize.server.ts rename to apps/web-react/app/features/tournament-bracket/actions/to.$id.brackets.finalize.server.ts diff --git a/app/features/tournament-bracket/actions/to.$id.brackets.server.ts b/apps/web-react/app/features/tournament-bracket/actions/to.$id.brackets.server.ts similarity index 100% rename from app/features/tournament-bracket/actions/to.$id.brackets.server.ts rename to apps/web-react/app/features/tournament-bracket/actions/to.$id.brackets.server.ts diff --git a/app/features/tournament-bracket/components/Bracket/Bracket.browser.test.tsx b/apps/web-react/app/features/tournament-bracket/components/Bracket/Bracket.browser.test.tsx similarity index 100% rename from app/features/tournament-bracket/components/Bracket/Bracket.browser.test.tsx rename to apps/web-react/app/features/tournament-bracket/components/Bracket/Bracket.browser.test.tsx diff --git a/app/features/tournament-bracket/components/Bracket/Elimination.tsx b/apps/web-react/app/features/tournament-bracket/components/Bracket/Elimination.tsx similarity index 100% rename from app/features/tournament-bracket/components/Bracket/Elimination.tsx rename to apps/web-react/app/features/tournament-bracket/components/Bracket/Elimination.tsx diff --git a/app/features/tournament-bracket/components/Bracket/Match.tsx b/apps/web-react/app/features/tournament-bracket/components/Bracket/Match.tsx similarity index 100% rename from app/features/tournament-bracket/components/Bracket/Match.tsx rename to apps/web-react/app/features/tournament-bracket/components/Bracket/Match.tsx diff --git a/app/features/tournament-bracket/components/Bracket/PlacementsTable.tsx b/apps/web-react/app/features/tournament-bracket/components/Bracket/PlacementsTable.tsx similarity index 100% rename from app/features/tournament-bracket/components/Bracket/PlacementsTable.tsx rename to apps/web-react/app/features/tournament-bracket/components/Bracket/PlacementsTable.tsx diff --git a/app/features/tournament-bracket/components/Bracket/RoundHeader.tsx b/apps/web-react/app/features/tournament-bracket/components/Bracket/RoundHeader.tsx similarity index 100% rename from app/features/tournament-bracket/components/Bracket/RoundHeader.tsx rename to apps/web-react/app/features/tournament-bracket/components/Bracket/RoundHeader.tsx diff --git a/app/features/tournament-bracket/components/Bracket/RoundRobin.tsx b/apps/web-react/app/features/tournament-bracket/components/Bracket/RoundRobin.tsx similarity index 100% rename from app/features/tournament-bracket/components/Bracket/RoundRobin.tsx rename to apps/web-react/app/features/tournament-bracket/components/Bracket/RoundRobin.tsx diff --git a/app/features/tournament-bracket/components/Bracket/Swiss.tsx b/apps/web-react/app/features/tournament-bracket/components/Bracket/Swiss.tsx similarity index 100% rename from app/features/tournament-bracket/components/Bracket/Swiss.tsx rename to apps/web-react/app/features/tournament-bracket/components/Bracket/Swiss.tsx diff --git a/app/features/tournament-bracket/components/Bracket/bracket.module.css b/apps/web-react/app/features/tournament-bracket/components/Bracket/bracket.module.css similarity index 100% rename from app/features/tournament-bracket/components/Bracket/bracket.module.css rename to apps/web-react/app/features/tournament-bracket/components/Bracket/bracket.module.css diff --git a/app/features/tournament-bracket/components/Bracket/index.tsx b/apps/web-react/app/features/tournament-bracket/components/Bracket/index.tsx similarity index 100% rename from app/features/tournament-bracket/components/Bracket/index.tsx rename to apps/web-react/app/features/tournament-bracket/components/Bracket/index.tsx diff --git a/app/features/tournament-bracket/components/Bracket/useBracketSpoilerCensor.test.ts b/apps/web-react/app/features/tournament-bracket/components/Bracket/useBracketSpoilerCensor.test.ts similarity index 100% rename from app/features/tournament-bracket/components/Bracket/useBracketSpoilerCensor.test.ts rename to apps/web-react/app/features/tournament-bracket/components/Bracket/useBracketSpoilerCensor.test.ts diff --git a/app/features/tournament-bracket/components/Bracket/useBracketSpoilerCensor.ts b/apps/web-react/app/features/tournament-bracket/components/Bracket/useBracketSpoilerCensor.ts similarity index 100% rename from app/features/tournament-bracket/components/Bracket/useBracketSpoilerCensor.ts rename to apps/web-react/app/features/tournament-bracket/components/Bracket/useBracketSpoilerCensor.ts diff --git a/app/features/tournament-bracket/components/BracketMapListDialog.module.css b/apps/web-react/app/features/tournament-bracket/components/BracketMapListDialog.module.css similarity index 100% rename from app/features/tournament-bracket/components/BracketMapListDialog.module.css rename to apps/web-react/app/features/tournament-bracket/components/BracketMapListDialog.module.css diff --git a/app/features/tournament-bracket/components/BracketMapListDialog.test.ts b/apps/web-react/app/features/tournament-bracket/components/BracketMapListDialog.test.ts similarity index 100% rename from app/features/tournament-bracket/components/BracketMapListDialog.test.ts rename to apps/web-react/app/features/tournament-bracket/components/BracketMapListDialog.test.ts diff --git a/app/features/tournament-bracket/components/BracketMapListDialog.tsx b/apps/web-react/app/features/tournament-bracket/components/BracketMapListDialog.tsx similarity index 100% rename from app/features/tournament-bracket/components/BracketMapListDialog.tsx rename to apps/web-react/app/features/tournament-bracket/components/BracketMapListDialog.tsx diff --git a/app/features/tournament-bracket/components/CustomFlowBuilder.browser.test.tsx b/apps/web-react/app/features/tournament-bracket/components/CustomFlowBuilder.browser.test.tsx similarity index 100% rename from app/features/tournament-bracket/components/CustomFlowBuilder.browser.test.tsx rename to apps/web-react/app/features/tournament-bracket/components/CustomFlowBuilder.browser.test.tsx diff --git a/app/features/tournament-bracket/components/CustomFlowBuilder.module.css b/apps/web-react/app/features/tournament-bracket/components/CustomFlowBuilder.module.css similarity index 100% rename from app/features/tournament-bracket/components/CustomFlowBuilder.module.css rename to apps/web-react/app/features/tournament-bracket/components/CustomFlowBuilder.module.css diff --git a/app/features/tournament-bracket/components/CustomFlowBuilder.tsx b/apps/web-react/app/features/tournament-bracket/components/CustomFlowBuilder.tsx similarity index 100% rename from app/features/tournament-bracket/components/CustomFlowBuilder.tsx rename to apps/web-react/app/features/tournament-bracket/components/CustomFlowBuilder.tsx diff --git a/app/features/tournament-bracket/components/TournamentTeamActions.tsx b/apps/web-react/app/features/tournament-bracket/components/TournamentTeamActions.tsx similarity index 100% rename from app/features/tournament-bracket/components/TournamentTeamActions.tsx rename to apps/web-react/app/features/tournament-bracket/components/TournamentTeamActions.tsx diff --git a/app/features/tournament-bracket/core/AbDivisions.test.ts b/apps/web-react/app/features/tournament-bracket/core/AbDivisions.test.ts similarity index 100% rename from app/features/tournament-bracket/core/AbDivisions.test.ts rename to apps/web-react/app/features/tournament-bracket/core/AbDivisions.test.ts diff --git a/app/features/tournament-bracket/core/AbDivisions.ts b/apps/web-react/app/features/tournament-bracket/core/AbDivisions.ts similarity index 100% rename from app/features/tournament-bracket/core/AbDivisions.ts rename to apps/web-react/app/features/tournament-bracket/core/AbDivisions.ts diff --git a/app/features/tournament-bracket/core/Bracket.test.ts b/apps/web-react/app/features/tournament-bracket/core/Bracket.test.ts similarity index 100% rename from app/features/tournament-bracket/core/Bracket.test.ts rename to apps/web-react/app/features/tournament-bracket/core/Bracket.test.ts diff --git a/app/features/tournament-bracket/core/Bracket/Bracket.ts b/apps/web-react/app/features/tournament-bracket/core/Bracket/Bracket.ts similarity index 100% rename from app/features/tournament-bracket/core/Bracket/Bracket.ts rename to apps/web-react/app/features/tournament-bracket/core/Bracket/Bracket.ts diff --git a/app/features/tournament-bracket/core/Bracket/DoubleEliminationBracket.ts b/apps/web-react/app/features/tournament-bracket/core/Bracket/DoubleEliminationBracket.ts similarity index 100% rename from app/features/tournament-bracket/core/Bracket/DoubleEliminationBracket.ts rename to apps/web-react/app/features/tournament-bracket/core/Bracket/DoubleEliminationBracket.ts diff --git a/app/features/tournament-bracket/core/Bracket/RoundRobinBracket.ts b/apps/web-react/app/features/tournament-bracket/core/Bracket/RoundRobinBracket.ts similarity index 100% rename from app/features/tournament-bracket/core/Bracket/RoundRobinBracket.ts rename to apps/web-react/app/features/tournament-bracket/core/Bracket/RoundRobinBracket.ts diff --git a/app/features/tournament-bracket/core/Bracket/SingleEliminationBracket.ts b/apps/web-react/app/features/tournament-bracket/core/Bracket/SingleEliminationBracket.ts similarity index 100% rename from app/features/tournament-bracket/core/Bracket/SingleEliminationBracket.ts rename to apps/web-react/app/features/tournament-bracket/core/Bracket/SingleEliminationBracket.ts diff --git a/app/features/tournament-bracket/core/Bracket/SwissBracket.ts b/apps/web-react/app/features/tournament-bracket/core/Bracket/SwissBracket.ts similarity index 100% rename from app/features/tournament-bracket/core/Bracket/SwissBracket.ts rename to apps/web-react/app/features/tournament-bracket/core/Bracket/SwissBracket.ts diff --git a/app/features/tournament-bracket/core/Bracket/index.ts b/apps/web-react/app/features/tournament-bracket/core/Bracket/index.ts similarity index 100% rename from app/features/tournament-bracket/core/Bracket/index.ts rename to apps/web-react/app/features/tournament-bracket/core/Bracket/index.ts diff --git a/app/features/tournament-bracket/core/Bracket/utils.ts b/apps/web-react/app/features/tournament-bracket/core/Bracket/utils.ts similarity index 100% rename from app/features/tournament-bracket/core/Bracket/utils.ts rename to apps/web-react/app/features/tournament-bracket/core/Bracket/utils.ts diff --git a/app/features/tournament-bracket/core/Deadline.test.ts b/apps/web-react/app/features/tournament-bracket/core/Deadline.test.ts similarity index 100% rename from app/features/tournament-bracket/core/Deadline.test.ts rename to apps/web-react/app/features/tournament-bracket/core/Deadline.test.ts diff --git a/app/features/tournament-bracket/core/Deadline.ts b/apps/web-react/app/features/tournament-bracket/core/Deadline.ts similarity index 100% rename from app/features/tournament-bracket/core/Deadline.ts rename to apps/web-react/app/features/tournament-bracket/core/Deadline.ts diff --git a/app/features/tournament-bracket/core/PickBan.test.ts b/apps/web-react/app/features/tournament-bracket/core/PickBan.test.ts similarity index 100% rename from app/features/tournament-bracket/core/PickBan.test.ts rename to apps/web-react/app/features/tournament-bracket/core/PickBan.test.ts diff --git a/app/features/tournament-bracket/core/PickBan.ts b/apps/web-react/app/features/tournament-bracket/core/PickBan.ts similarity index 100% rename from app/features/tournament-bracket/core/PickBan.ts rename to apps/web-react/app/features/tournament-bracket/core/PickBan.ts diff --git a/app/features/tournament-bracket/core/PreparedMaps.test.ts b/apps/web-react/app/features/tournament-bracket/core/PreparedMaps.test.ts similarity index 100% rename from app/features/tournament-bracket/core/PreparedMaps.test.ts rename to apps/web-react/app/features/tournament-bracket/core/PreparedMaps.test.ts diff --git a/app/features/tournament-bracket/core/PreparedMaps.ts b/apps/web-react/app/features/tournament-bracket/core/PreparedMaps.ts similarity index 100% rename from app/features/tournament-bracket/core/PreparedMaps.ts rename to apps/web-react/app/features/tournament-bracket/core/PreparedMaps.ts diff --git a/app/features/tournament-bracket/core/Progression.test.ts b/apps/web-react/app/features/tournament-bracket/core/Progression.test.ts similarity index 100% rename from app/features/tournament-bracket/core/Progression.test.ts rename to apps/web-react/app/features/tournament-bracket/core/Progression.test.ts diff --git a/app/features/tournament-bracket/core/Progression.ts b/apps/web-react/app/features/tournament-bracket/core/Progression.ts similarity index 100% rename from app/features/tournament-bracket/core/Progression.ts rename to apps/web-react/app/features/tournament-bracket/core/Progression.ts diff --git a/app/features/tournament-bracket/core/RunningTournaments.server.ts b/apps/web-react/app/features/tournament-bracket/core/RunningTournaments.server.ts similarity index 100% rename from app/features/tournament-bracket/core/RunningTournaments.server.ts rename to apps/web-react/app/features/tournament-bracket/core/RunningTournaments.server.ts diff --git a/app/features/tournament-bracket/core/RunningTournaments.test.ts b/apps/web-react/app/features/tournament-bracket/core/RunningTournaments.test.ts similarity index 100% rename from app/features/tournament-bracket/core/RunningTournaments.test.ts rename to apps/web-react/app/features/tournament-bracket/core/RunningTournaments.test.ts diff --git a/app/features/tournament-bracket/core/Seeding.test.ts b/apps/web-react/app/features/tournament-bracket/core/Seeding.test.ts similarity index 100% rename from app/features/tournament-bracket/core/Seeding.test.ts rename to apps/web-react/app/features/tournament-bracket/core/Seeding.test.ts diff --git a/app/features/tournament-bracket/core/Seeding.ts b/apps/web-react/app/features/tournament-bracket/core/Seeding.ts similarity index 100% rename from app/features/tournament-bracket/core/Seeding.ts rename to apps/web-react/app/features/tournament-bracket/core/Seeding.ts diff --git a/app/features/tournament-bracket/core/Swiss.test.ts b/apps/web-react/app/features/tournament-bracket/core/Swiss.test.ts similarity index 100% rename from app/features/tournament-bracket/core/Swiss.test.ts rename to apps/web-react/app/features/tournament-bracket/core/Swiss.test.ts diff --git a/app/features/tournament-bracket/core/Tournament.server.test.ts b/apps/web-react/app/features/tournament-bracket/core/Tournament.server.test.ts similarity index 100% rename from app/features/tournament-bracket/core/Tournament.server.test.ts rename to apps/web-react/app/features/tournament-bracket/core/Tournament.server.test.ts diff --git a/app/features/tournament-bracket/core/Tournament.server.ts b/apps/web-react/app/features/tournament-bracket/core/Tournament.server.ts similarity index 100% rename from app/features/tournament-bracket/core/Tournament.server.ts rename to apps/web-react/app/features/tournament-bracket/core/Tournament.server.ts diff --git a/app/features/tournament-bracket/core/Tournament.test.ts b/apps/web-react/app/features/tournament-bracket/core/Tournament.test.ts similarity index 100% rename from app/features/tournament-bracket/core/Tournament.test.ts rename to apps/web-react/app/features/tournament-bracket/core/Tournament.test.ts diff --git a/app/features/tournament-bracket/core/Tournament.timezone.test.ts b/apps/web-react/app/features/tournament-bracket/core/Tournament.timezone.test.ts similarity index 100% rename from app/features/tournament-bracket/core/Tournament.timezone.test.ts rename to apps/web-react/app/features/tournament-bracket/core/Tournament.timezone.test.ts diff --git a/app/features/tournament-bracket/core/Tournament.ts b/apps/web-react/app/features/tournament-bracket/core/Tournament.ts similarity index 100% rename from app/features/tournament-bracket/core/Tournament.ts rename to apps/web-react/app/features/tournament-bracket/core/Tournament.ts diff --git a/app/features/tournament-bracket/core/engine/create/builder.ts b/apps/web-react/app/features/tournament-bracket/core/engine/create/builder.ts similarity index 100% rename from app/features/tournament-bracket/core/engine/create/builder.ts rename to apps/web-react/app/features/tournament-bracket/core/engine/create/builder.ts diff --git a/app/features/tournament-bracket/core/engine/create/double-elimination.test.ts b/apps/web-react/app/features/tournament-bracket/core/engine/create/double-elimination.test.ts similarity index 100% rename from app/features/tournament-bracket/core/engine/create/double-elimination.test.ts rename to apps/web-react/app/features/tournament-bracket/core/engine/create/double-elimination.test.ts diff --git a/app/features/tournament-bracket/core/engine/create/double-elimination.ts b/apps/web-react/app/features/tournament-bracket/core/engine/create/double-elimination.ts similarity index 100% rename from app/features/tournament-bracket/core/engine/create/double-elimination.ts rename to apps/web-react/app/features/tournament-bracket/core/engine/create/double-elimination.ts diff --git a/app/features/tournament-bracket/core/engine/create/helpers.test.ts b/apps/web-react/app/features/tournament-bracket/core/engine/create/helpers.test.ts similarity index 100% rename from app/features/tournament-bracket/core/engine/create/helpers.test.ts rename to apps/web-react/app/features/tournament-bracket/core/engine/create/helpers.test.ts diff --git a/app/features/tournament-bracket/core/engine/create/helpers.ts b/apps/web-react/app/features/tournament-bracket/core/engine/create/helpers.ts similarity index 100% rename from app/features/tournament-bracket/core/engine/create/helpers.ts rename to apps/web-react/app/features/tournament-bracket/core/engine/create/helpers.ts diff --git a/app/features/tournament-bracket/core/engine/create/index.ts b/apps/web-react/app/features/tournament-bracket/core/engine/create/index.ts similarity index 100% rename from app/features/tournament-bracket/core/engine/create/index.ts rename to apps/web-react/app/features/tournament-bracket/core/engine/create/index.ts diff --git a/app/features/tournament-bracket/core/engine/create/round-robin.test.ts b/apps/web-react/app/features/tournament-bracket/core/engine/create/round-robin.test.ts similarity index 100% rename from app/features/tournament-bracket/core/engine/create/round-robin.test.ts rename to apps/web-react/app/features/tournament-bracket/core/engine/create/round-robin.test.ts diff --git a/app/features/tournament-bracket/core/engine/create/round-robin.ts b/apps/web-react/app/features/tournament-bracket/core/engine/create/round-robin.ts similarity index 100% rename from app/features/tournament-bracket/core/engine/create/round-robin.ts rename to apps/web-react/app/features/tournament-bracket/core/engine/create/round-robin.ts diff --git a/app/features/tournament-bracket/core/engine/create/seeding.ts b/apps/web-react/app/features/tournament-bracket/core/engine/create/seeding.ts similarity index 100% rename from app/features/tournament-bracket/core/engine/create/seeding.ts rename to apps/web-react/app/features/tournament-bracket/core/engine/create/seeding.ts diff --git a/app/features/tournament-bracket/core/engine/create/settings.ts b/apps/web-react/app/features/tournament-bracket/core/engine/create/settings.ts similarity index 100% rename from app/features/tournament-bracket/core/engine/create/settings.ts rename to apps/web-react/app/features/tournament-bracket/core/engine/create/settings.ts diff --git a/app/features/tournament-bracket/core/engine/create/single-elimination.test.ts b/apps/web-react/app/features/tournament-bracket/core/engine/create/single-elimination.test.ts similarity index 100% rename from app/features/tournament-bracket/core/engine/create/single-elimination.test.ts rename to apps/web-react/app/features/tournament-bracket/core/engine/create/single-elimination.test.ts diff --git a/app/features/tournament-bracket/core/engine/create/single-elimination.ts b/apps/web-react/app/features/tournament-bracket/core/engine/create/single-elimination.ts similarity index 100% rename from app/features/tournament-bracket/core/engine/create/single-elimination.ts rename to apps/web-react/app/features/tournament-bracket/core/engine/create/single-elimination.ts diff --git a/app/features/tournament-bracket/core/engine/create/swiss.ts b/apps/web-react/app/features/tournament-bracket/core/engine/create/swiss.ts similarity index 100% rename from app/features/tournament-bracket/core/engine/create/swiss.ts rename to apps/web-react/app/features/tournament-bracket/core/engine/create/swiss.ts diff --git a/app/features/tournament-bracket/core/engine/general.test.ts b/apps/web-react/app/features/tournament-bracket/core/engine/general.test.ts similarity index 100% rename from app/features/tournament-bracket/core/engine/general.test.ts rename to apps/web-react/app/features/tournament-bracket/core/engine/general.test.ts diff --git a/app/features/tournament-bracket/core/engine/index.ts b/apps/web-react/app/features/tournament-bracket/core/engine/index.ts similarity index 100% rename from app/features/tournament-bracket/core/engine/index.ts rename to apps/web-react/app/features/tournament-bracket/core/engine/index.ts diff --git a/app/features/tournament-bracket/core/engine/propagation/double-elimination.test.ts b/apps/web-react/app/features/tournament-bracket/core/engine/propagation/double-elimination.test.ts similarity index 100% rename from app/features/tournament-bracket/core/engine/propagation/double-elimination.test.ts rename to apps/web-react/app/features/tournament-bracket/core/engine/propagation/double-elimination.test.ts diff --git a/app/features/tournament-bracket/core/engine/propagation/dropped-teams.ts b/apps/web-react/app/features/tournament-bracket/core/engine/propagation/dropped-teams.ts similarity index 100% rename from app/features/tournament-bracket/core/engine/propagation/dropped-teams.ts rename to apps/web-react/app/features/tournament-bracket/core/engine/propagation/dropped-teams.ts diff --git a/app/features/tournament-bracket/core/engine/propagation/helpers.ts b/apps/web-react/app/features/tournament-bracket/core/engine/propagation/helpers.ts similarity index 100% rename from app/features/tournament-bracket/core/engine/propagation/helpers.ts rename to apps/web-react/app/features/tournament-bracket/core/engine/propagation/helpers.ts diff --git a/app/features/tournament-bracket/core/engine/propagation/report-result.ts b/apps/web-react/app/features/tournament-bracket/core/engine/propagation/report-result.ts similarity index 100% rename from app/features/tournament-bracket/core/engine/propagation/report-result.ts rename to apps/web-react/app/features/tournament-bracket/core/engine/propagation/report-result.ts diff --git a/app/features/tournament-bracket/core/engine/propagation/reset-result.ts b/apps/web-react/app/features/tournament-bracket/core/engine/propagation/reset-result.ts similarity index 100% rename from app/features/tournament-bracket/core/engine/propagation/reset-result.ts rename to apps/web-react/app/features/tournament-bracket/core/engine/propagation/reset-result.ts diff --git a/app/features/tournament-bracket/core/engine/propagation/round-robin.test.ts b/apps/web-react/app/features/tournament-bracket/core/engine/propagation/round-robin.test.ts similarity index 100% rename from app/features/tournament-bracket/core/engine/propagation/round-robin.test.ts rename to apps/web-react/app/features/tournament-bracket/core/engine/propagation/round-robin.test.ts diff --git a/app/features/tournament-bracket/core/engine/propagation/set.test.ts b/apps/web-react/app/features/tournament-bracket/core/engine/propagation/set.test.ts similarity index 100% rename from app/features/tournament-bracket/core/engine/propagation/set.test.ts rename to apps/web-react/app/features/tournament-bracket/core/engine/propagation/set.test.ts diff --git a/app/features/tournament-bracket/core/engine/propagation/set.ts b/apps/web-react/app/features/tournament-bracket/core/engine/propagation/set.ts similarity index 100% rename from app/features/tournament-bracket/core/engine/propagation/set.ts rename to apps/web-react/app/features/tournament-bracket/core/engine/propagation/set.ts diff --git a/app/features/tournament-bracket/core/engine/propagation/single-elimination.test.ts b/apps/web-react/app/features/tournament-bracket/core/engine/propagation/single-elimination.test.ts similarity index 100% rename from app/features/tournament-bracket/core/engine/propagation/single-elimination.test.ts rename to apps/web-react/app/features/tournament-bracket/core/engine/propagation/single-elimination.test.ts diff --git a/app/features/tournament-bracket/core/engine/propagation/store.ts b/apps/web-react/app/features/tournament-bracket/core/engine/propagation/store.ts similarity index 100% rename from app/features/tournament-bracket/core/engine/propagation/store.ts rename to apps/web-react/app/features/tournament-bracket/core/engine/propagation/store.ts diff --git a/app/features/tournament-bracket/core/engine/propagation/traversal.ts b/apps/web-react/app/features/tournament-bracket/core/engine/propagation/traversal.ts similarity index 100% rename from app/features/tournament-bracket/core/engine/propagation/traversal.ts rename to apps/web-react/app/features/tournament-bracket/core/engine/propagation/traversal.ts diff --git a/app/features/tournament-bracket/core/engine/propagation/update.test.ts b/apps/web-react/app/features/tournament-bracket/core/engine/propagation/update.test.ts similarity index 100% rename from app/features/tournament-bracket/core/engine/propagation/update.test.ts rename to apps/web-react/app/features/tournament-bracket/core/engine/propagation/update.test.ts diff --git a/app/features/tournament-bracket/core/engine/status.test.ts b/apps/web-react/app/features/tournament-bracket/core/engine/status.test.ts similarity index 100% rename from app/features/tournament-bracket/core/engine/status.test.ts rename to apps/web-react/app/features/tournament-bracket/core/engine/status.test.ts diff --git a/app/features/tournament-bracket/core/engine/status.ts b/apps/web-react/app/features/tournament-bracket/core/engine/status.ts similarity index 100% rename from app/features/tournament-bracket/core/engine/status.ts rename to apps/web-react/app/features/tournament-bracket/core/engine/status.ts diff --git a/app/features/tournament-bracket/core/engine/swiss/pairing.ts b/apps/web-react/app/features/tournament-bracket/core/engine/swiss/pairing.ts similarity index 100% rename from app/features/tournament-bracket/core/engine/swiss/pairing.ts rename to apps/web-react/app/features/tournament-bracket/core/engine/swiss/pairing.ts diff --git a/app/features/tournament-bracket/core/engine/swiss/team-status.ts b/apps/web-react/app/features/tournament-bracket/core/engine/swiss/team-status.ts similarity index 100% rename from app/features/tournament-bracket/core/engine/swiss/team-status.ts rename to apps/web-react/app/features/tournament-bracket/core/engine/swiss/team-status.ts diff --git a/app/features/tournament-bracket/core/engine/types.ts b/apps/web-react/app/features/tournament-bracket/core/engine/types.ts similarity index 100% rename from app/features/tournament-bracket/core/engine/types.ts rename to apps/web-react/app/features/tournament-bracket/core/engine/types.ts diff --git a/app/features/tournament-bracket/core/executeBracketOperation.server.ts b/apps/web-react/app/features/tournament-bracket/core/executeBracketOperation.server.ts similarity index 100% rename from app/features/tournament-bracket/core/executeBracketOperation.server.ts rename to apps/web-react/app/features/tournament-bracket/core/executeBracketOperation.server.ts diff --git a/app/features/tournament-bracket/core/finalizeTournament.server.ts b/apps/web-react/app/features/tournament-bracket/core/finalizeTournament.server.ts similarity index 100% rename from app/features/tournament-bracket/core/finalizeTournament.server.ts rename to apps/web-react/app/features/tournament-bracket/core/finalizeTournament.server.ts diff --git a/app/features/tournament-bracket/core/rounds.ts b/apps/web-react/app/features/tournament-bracket/core/rounds.ts similarity index 100% rename from app/features/tournament-bracket/core/rounds.ts rename to apps/web-react/app/features/tournament-bracket/core/rounds.ts diff --git a/app/features/tournament-bracket/core/summarizer.server.ts b/apps/web-react/app/features/tournament-bracket/core/summarizer.server.ts similarity index 100% rename from app/features/tournament-bracket/core/summarizer.server.ts rename to apps/web-react/app/features/tournament-bracket/core/summarizer.server.ts diff --git a/app/features/tournament-bracket/core/summarizer.test.ts b/apps/web-react/app/features/tournament-bracket/core/summarizer.test.ts similarity index 100% rename from app/features/tournament-bracket/core/summarizer.test.ts rename to apps/web-react/app/features/tournament-bracket/core/summarizer.test.ts diff --git a/app/features/tournament-bracket/core/tests/mocks-li.ts b/apps/web-react/app/features/tournament-bracket/core/tests/mocks-li.ts similarity index 100% rename from app/features/tournament-bracket/core/tests/mocks-li.ts rename to apps/web-react/app/features/tournament-bracket/core/tests/mocks-li.ts diff --git a/app/features/tournament-bracket/core/tests/mocks-sos.ts b/apps/web-react/app/features/tournament-bracket/core/tests/mocks-sos.ts similarity index 100% rename from app/features/tournament-bracket/core/tests/mocks-sos.ts rename to apps/web-react/app/features/tournament-bracket/core/tests/mocks-sos.ts diff --git a/app/features/tournament-bracket/core/tests/mocks-swiss.ts b/apps/web-react/app/features/tournament-bracket/core/tests/mocks-swiss.ts similarity index 100% rename from app/features/tournament-bracket/core/tests/mocks-swiss.ts rename to apps/web-react/app/features/tournament-bracket/core/tests/mocks-swiss.ts diff --git a/app/features/tournament-bracket/core/tests/mocks-zones-weekly.ts b/apps/web-react/app/features/tournament-bracket/core/tests/mocks-zones-weekly.ts similarity index 100% rename from app/features/tournament-bracket/core/tests/mocks-zones-weekly.ts rename to apps/web-react/app/features/tournament-bracket/core/tests/mocks-zones-weekly.ts diff --git a/app/features/tournament-bracket/core/tests/mocks.ts b/apps/web-react/app/features/tournament-bracket/core/tests/mocks.ts similarity index 100% rename from app/features/tournament-bracket/core/tests/mocks.ts rename to apps/web-react/app/features/tournament-bracket/core/tests/mocks.ts diff --git a/app/features/tournament-bracket/core/tests/test-utils.ts b/apps/web-react/app/features/tournament-bracket/core/tests/test-utils.ts similarity index 100% rename from app/features/tournament-bracket/core/tests/test-utils.ts rename to apps/web-react/app/features/tournament-bracket/core/tests/test-utils.ts diff --git a/app/features/tournament-bracket/core/toMapList.ts b/apps/web-react/app/features/tournament-bracket/core/toMapList.ts similarity index 100% rename from app/features/tournament-bracket/core/toMapList.ts rename to apps/web-react/app/features/tournament-bracket/core/toMapList.ts diff --git a/app/features/tournament-bracket/loaders/to.$id.brackets.finalize.server.ts b/apps/web-react/app/features/tournament-bracket/loaders/to.$id.brackets.finalize.server.ts similarity index 100% rename from app/features/tournament-bracket/loaders/to.$id.brackets.finalize.server.ts rename to apps/web-react/app/features/tournament-bracket/loaders/to.$id.brackets.finalize.server.ts diff --git a/app/features/tournament-bracket/loaders/to.$id.brackets.server.ts b/apps/web-react/app/features/tournament-bracket/loaders/to.$id.brackets.server.ts similarity index 100% rename from app/features/tournament-bracket/loaders/to.$id.brackets.server.ts rename to apps/web-react/app/features/tournament-bracket/loaders/to.$id.brackets.server.ts diff --git a/app/features/tournament-bracket/loaders/to.$id.divisions.server.ts b/apps/web-react/app/features/tournament-bracket/loaders/to.$id.divisions.server.ts similarity index 100% rename from app/features/tournament-bracket/loaders/to.$id.divisions.server.ts rename to apps/web-react/app/features/tournament-bracket/loaders/to.$id.divisions.server.ts diff --git a/app/features/tournament-bracket/routes/to.$id.brackets.finalize.tsx b/apps/web-react/app/features/tournament-bracket/routes/to.$id.brackets.finalize.tsx similarity index 100% rename from app/features/tournament-bracket/routes/to.$id.brackets.finalize.tsx rename to apps/web-react/app/features/tournament-bracket/routes/to.$id.brackets.finalize.tsx diff --git a/app/features/tournament-bracket/routes/to.$id.brackets.tsx b/apps/web-react/app/features/tournament-bracket/routes/to.$id.brackets.tsx similarity index 100% rename from app/features/tournament-bracket/routes/to.$id.brackets.tsx rename to apps/web-react/app/features/tournament-bracket/routes/to.$id.brackets.tsx diff --git a/app/features/tournament-bracket/routes/to.$id.divisions.module.css b/apps/web-react/app/features/tournament-bracket/routes/to.$id.divisions.module.css similarity index 100% rename from app/features/tournament-bracket/routes/to.$id.divisions.module.css rename to apps/web-react/app/features/tournament-bracket/routes/to.$id.divisions.module.css diff --git a/app/features/tournament-bracket/routes/to.$id.divisions.tsx b/apps/web-react/app/features/tournament-bracket/routes/to.$id.divisions.tsx similarity index 100% rename from app/features/tournament-bracket/routes/to.$id.divisions.tsx rename to apps/web-react/app/features/tournament-bracket/routes/to.$id.divisions.tsx diff --git a/app/features/tournament-bracket/tournament-bracket-constants.ts b/apps/web-react/app/features/tournament-bracket/tournament-bracket-constants.ts similarity index 100% rename from app/features/tournament-bracket/tournament-bracket-constants.ts rename to apps/web-react/app/features/tournament-bracket/tournament-bracket-constants.ts diff --git a/app/features/tournament-bracket/tournament-bracket-schemas.ts b/apps/web-react/app/features/tournament-bracket/tournament-bracket-schemas.ts similarity index 100% rename from app/features/tournament-bracket/tournament-bracket-schemas.ts rename to apps/web-react/app/features/tournament-bracket/tournament-bracket-schemas.ts diff --git a/app/features/tournament-bracket/tournament-bracket-search-params.test.ts b/apps/web-react/app/features/tournament-bracket/tournament-bracket-search-params.test.ts similarity index 100% rename from app/features/tournament-bracket/tournament-bracket-search-params.test.ts rename to apps/web-react/app/features/tournament-bracket/tournament-bracket-search-params.test.ts diff --git a/app/features/tournament-bracket/tournament-bracket-search-params.ts b/apps/web-react/app/features/tournament-bracket/tournament-bracket-search-params.ts similarity index 100% rename from app/features/tournament-bracket/tournament-bracket-search-params.ts rename to apps/web-react/app/features/tournament-bracket/tournament-bracket-search-params.ts diff --git a/app/features/tournament-bracket/tournament-bracket-urls.ts b/apps/web-react/app/features/tournament-bracket/tournament-bracket-urls.ts similarity index 100% rename from app/features/tournament-bracket/tournament-bracket-urls.ts rename to apps/web-react/app/features/tournament-bracket/tournament-bracket-urls.ts diff --git a/app/features/tournament-bracket/tournament-bracket-utils.test.ts b/apps/web-react/app/features/tournament-bracket/tournament-bracket-utils.test.ts similarity index 100% rename from app/features/tournament-bracket/tournament-bracket-utils.test.ts rename to apps/web-react/app/features/tournament-bracket/tournament-bracket-utils.test.ts diff --git a/app/features/tournament-bracket/tournament-bracket-utils.ts b/apps/web-react/app/features/tournament-bracket/tournament-bracket-utils.ts similarity index 100% rename from app/features/tournament-bracket/tournament-bracket-utils.ts rename to apps/web-react/app/features/tournament-bracket/tournament-bracket-utils.ts diff --git a/app/features/tournament-bracket/tournament-bracket.module.css b/apps/web-react/app/features/tournament-bracket/tournament-bracket.module.css similarity index 100% rename from app/features/tournament-bracket/tournament-bracket.module.css rename to apps/web-react/app/features/tournament-bracket/tournament-bracket.module.css diff --git a/app/features/tournament-lfg/TournamentLFGRepository.server.test.ts b/apps/web-react/app/features/tournament-lfg/TournamentLFGRepository.server.test.ts similarity index 100% rename from app/features/tournament-lfg/TournamentLFGRepository.server.test.ts rename to apps/web-react/app/features/tournament-lfg/TournamentLFGRepository.server.test.ts diff --git a/app/features/tournament-lfg/TournamentLFGRepository.server.ts b/apps/web-react/app/features/tournament-lfg/TournamentLFGRepository.server.ts similarity index 100% rename from app/features/tournament-lfg/TournamentLFGRepository.server.ts rename to apps/web-react/app/features/tournament-lfg/TournamentLFGRepository.server.ts diff --git a/app/features/tournament-lfg/actions/to.$id.looking.server.ts b/apps/web-react/app/features/tournament-lfg/actions/to.$id.looking.server.ts similarity index 100% rename from app/features/tournament-lfg/actions/to.$id.looking.server.ts rename to apps/web-react/app/features/tournament-lfg/actions/to.$id.looking.server.ts diff --git a/app/features/tournament-lfg/components/LFGGroupCard.module.css b/apps/web-react/app/features/tournament-lfg/components/LFGGroupCard.module.css similarity index 100% rename from app/features/tournament-lfg/components/LFGGroupCard.module.css rename to apps/web-react/app/features/tournament-lfg/components/LFGGroupCard.module.css diff --git a/app/features/tournament-lfg/components/LFGGroupCard.tsx b/apps/web-react/app/features/tournament-lfg/components/LFGGroupCard.tsx similarity index 100% rename from app/features/tournament-lfg/components/LFGGroupCard.tsx rename to apps/web-react/app/features/tournament-lfg/components/LFGGroupCard.tsx diff --git a/app/features/tournament-lfg/loaders/to.$id.looking.server.ts b/apps/web-react/app/features/tournament-lfg/loaders/to.$id.looking.server.ts similarity index 100% rename from app/features/tournament-lfg/loaders/to.$id.looking.server.ts rename to apps/web-react/app/features/tournament-lfg/loaders/to.$id.looking.server.ts diff --git a/app/features/tournament-lfg/routes/to.$id.looking.module.css b/apps/web-react/app/features/tournament-lfg/routes/to.$id.looking.module.css similarity index 100% rename from app/features/tournament-lfg/routes/to.$id.looking.module.css rename to apps/web-react/app/features/tournament-lfg/routes/to.$id.looking.module.css diff --git a/app/features/tournament-lfg/routes/to.$id.looking.tsx b/apps/web-react/app/features/tournament-lfg/routes/to.$id.looking.tsx similarity index 100% rename from app/features/tournament-lfg/routes/to.$id.looking.tsx rename to apps/web-react/app/features/tournament-lfg/routes/to.$id.looking.tsx diff --git a/app/features/tournament-lfg/tournament-lfg-schemas.ts b/apps/web-react/app/features/tournament-lfg/tournament-lfg-schemas.ts similarity index 100% rename from app/features/tournament-lfg/tournament-lfg-schemas.ts rename to apps/web-react/app/features/tournament-lfg/tournament-lfg-schemas.ts diff --git a/app/features/tournament-lfg/tournament-lfg-utils.server.ts b/apps/web-react/app/features/tournament-lfg/tournament-lfg-utils.server.ts similarity index 100% rename from app/features/tournament-lfg/tournament-lfg-utils.server.ts rename to apps/web-react/app/features/tournament-lfg/tournament-lfg-utils.server.ts diff --git a/app/features/tournament-lfg/tournament-lfg-utils.ts b/apps/web-react/app/features/tournament-lfg/tournament-lfg-utils.ts similarity index 100% rename from app/features/tournament-lfg/tournament-lfg-utils.ts rename to apps/web-react/app/features/tournament-lfg/tournament-lfg-utils.ts diff --git a/app/features/tournament-match/TournamentMatchRepository.server.test.ts b/apps/web-react/app/features/tournament-match/TournamentMatchRepository.server.test.ts similarity index 100% rename from app/features/tournament-match/TournamentMatchRepository.server.test.ts rename to apps/web-react/app/features/tournament-match/TournamentMatchRepository.server.test.ts diff --git a/app/features/tournament-match/TournamentMatchRepository.server.ts b/apps/web-react/app/features/tournament-match/TournamentMatchRepository.server.ts similarity index 100% rename from app/features/tournament-match/TournamentMatchRepository.server.ts rename to apps/web-react/app/features/tournament-match/TournamentMatchRepository.server.ts diff --git a/app/features/tournament-match/actions/to.$id.matches.$mid.server.ts b/apps/web-react/app/features/tournament-match/actions/to.$id.matches.$mid.server.ts similarity index 100% rename from app/features/tournament-match/actions/to.$id.matches.$mid.server.ts rename to apps/web-react/app/features/tournament-match/actions/to.$id.matches.$mid.server.ts diff --git a/app/features/tournament-match/components/OrganizerMatchMapListDialog.tsx b/apps/web-react/app/features/tournament-match/components/OrganizerMatchMapListDialog.tsx similarity index 100% rename from app/features/tournament-match/components/OrganizerMatchMapListDialog.tsx rename to apps/web-react/app/features/tournament-match/components/OrganizerMatchMapListDialog.tsx diff --git a/app/features/tournament-match/components/TournamentMatchActionPickBanTab.tsx b/apps/web-react/app/features/tournament-match/components/TournamentMatchActionPickBanTab.tsx similarity index 100% rename from app/features/tournament-match/components/TournamentMatchActionPickBanTab.tsx rename to apps/web-react/app/features/tournament-match/components/TournamentMatchActionPickBanTab.tsx diff --git a/app/features/tournament-match/components/TournamentMatchActionTab.tsx b/apps/web-react/app/features/tournament-match/components/TournamentMatchActionTab.tsx similarity index 100% rename from app/features/tournament-match/components/TournamentMatchActionTab.tsx rename to apps/web-react/app/features/tournament-match/components/TournamentMatchActionTab.tsx diff --git a/app/features/tournament-match/components/TournamentMatchAdminTab.module.css b/apps/web-react/app/features/tournament-match/components/TournamentMatchAdminTab.module.css similarity index 100% rename from app/features/tournament-match/components/TournamentMatchAdminTab.module.css rename to apps/web-react/app/features/tournament-match/components/TournamentMatchAdminTab.module.css diff --git a/app/features/tournament-match/components/TournamentMatchAdminTab.tsx b/apps/web-react/app/features/tournament-match/components/TournamentMatchAdminTab.tsx similarity index 100% rename from app/features/tournament-match/components/TournamentMatchAdminTab.tsx rename to apps/web-react/app/features/tournament-match/components/TournamentMatchAdminTab.tsx diff --git a/app/features/tournament-match/components/TournamentMatchBanner.tsx b/apps/web-react/app/features/tournament-match/components/TournamentMatchBanner.tsx similarity index 100% rename from app/features/tournament-match/components/TournamentMatchBanner.tsx rename to apps/web-react/app/features/tournament-match/components/TournamentMatchBanner.tsx diff --git a/app/features/tournament-match/components/TournamentMatchHeader.tsx b/apps/web-react/app/features/tournament-match/components/TournamentMatchHeader.tsx similarity index 100% rename from app/features/tournament-match/components/TournamentMatchHeader.tsx rename to apps/web-react/app/features/tournament-match/components/TournamentMatchHeader.tsx diff --git a/app/features/tournament-match/components/TournamentMatchTabs.tsx b/apps/web-react/app/features/tournament-match/components/TournamentMatchTabs.tsx similarity index 100% rename from app/features/tournament-match/components/TournamentMatchTabs.tsx rename to apps/web-react/app/features/tournament-match/components/TournamentMatchTabs.tsx diff --git a/app/features/tournament-match/core/executeRoll.server.ts b/apps/web-react/app/features/tournament-match/core/executeRoll.server.ts similarity index 100% rename from app/features/tournament-match/core/executeRoll.server.ts rename to apps/web-react/app/features/tournament-match/core/executeRoll.server.ts diff --git a/app/features/tournament-match/core/mapList.server.ts b/apps/web-react/app/features/tournament-match/core/mapList.server.ts similarity index 100% rename from app/features/tournament-match/core/mapList.server.ts rename to apps/web-react/app/features/tournament-match/core/mapList.server.ts diff --git a/app/features/tournament-match/core/reportScore.server.ts b/apps/web-react/app/features/tournament-match/core/reportScore.server.ts similarity index 100% rename from app/features/tournament-match/core/reportScore.server.ts rename to apps/web-react/app/features/tournament-match/core/reportScore.server.ts diff --git a/app/features/tournament-match/loaders/to.$id.matches.$mid.server.ts b/apps/web-react/app/features/tournament-match/loaders/to.$id.matches.$mid.server.ts similarity index 100% rename from app/features/tournament-match/loaders/to.$id.matches.$mid.server.ts rename to apps/web-react/app/features/tournament-match/loaders/to.$id.matches.$mid.server.ts diff --git a/app/features/tournament-match/match-page-context.tsx b/apps/web-react/app/features/tournament-match/match-page-context.tsx similarity index 100% rename from app/features/tournament-match/match-page-context.tsx rename to apps/web-react/app/features/tournament-match/match-page-context.tsx diff --git a/app/features/tournament-match/routes/to.$id.matches.$mid.test.ts b/apps/web-react/app/features/tournament-match/routes/to.$id.matches.$mid.test.ts similarity index 100% rename from app/features/tournament-match/routes/to.$id.matches.$mid.test.ts rename to apps/web-react/app/features/tournament-match/routes/to.$id.matches.$mid.test.ts diff --git a/app/features/tournament-match/routes/to.$id.matches.$mid.tsx b/apps/web-react/app/features/tournament-match/routes/to.$id.matches.$mid.tsx similarity index 100% rename from app/features/tournament-match/routes/to.$id.matches.$mid.tsx rename to apps/web-react/app/features/tournament-match/routes/to.$id.matches.$mid.tsx diff --git a/app/features/tournament-match/tournament-match-utils.test.ts b/apps/web-react/app/features/tournament-match/tournament-match-utils.test.ts similarity index 100% rename from app/features/tournament-match/tournament-match-utils.test.ts rename to apps/web-react/app/features/tournament-match/tournament-match-utils.test.ts diff --git a/app/features/tournament-match/tournament-match-utils.ts b/apps/web-react/app/features/tournament-match/tournament-match-utils.ts similarity index 100% rename from app/features/tournament-match/tournament-match-utils.ts rename to apps/web-react/app/features/tournament-match/tournament-match-utils.ts diff --git a/app/features/tournament-organization/TournamentOrganizationRepository.server.test.ts b/apps/web-react/app/features/tournament-organization/TournamentOrganizationRepository.server.test.ts similarity index 100% rename from app/features/tournament-organization/TournamentOrganizationRepository.server.test.ts rename to apps/web-react/app/features/tournament-organization/TournamentOrganizationRepository.server.test.ts diff --git a/app/features/tournament-organization/TournamentOrganizationRepository.server.ts b/apps/web-react/app/features/tournament-organization/TournamentOrganizationRepository.server.ts similarity index 100% rename from app/features/tournament-organization/TournamentOrganizationRepository.server.ts rename to apps/web-react/app/features/tournament-organization/TournamentOrganizationRepository.server.ts diff --git a/app/features/tournament-organization/actions/org.$slug.edit.server.ts b/apps/web-react/app/features/tournament-organization/actions/org.$slug.edit.server.ts similarity index 100% rename from app/features/tournament-organization/actions/org.$slug.edit.server.ts rename to apps/web-react/app/features/tournament-organization/actions/org.$slug.edit.server.ts diff --git a/app/features/tournament-organization/actions/org.$slug.server.ts b/apps/web-react/app/features/tournament-organization/actions/org.$slug.server.ts similarity index 100% rename from app/features/tournament-organization/actions/org.$slug.server.ts rename to apps/web-react/app/features/tournament-organization/actions/org.$slug.server.ts diff --git a/app/features/tournament-organization/actions/org.new.server.ts b/apps/web-react/app/features/tournament-organization/actions/org.new.server.ts similarity index 100% rename from app/features/tournament-organization/actions/org.new.server.ts rename to apps/web-react/app/features/tournament-organization/actions/org.new.server.ts diff --git a/app/features/tournament-organization/components/BanUserModal.tsx b/apps/web-react/app/features/tournament-organization/components/BanUserModal.tsx similarity index 100% rename from app/features/tournament-organization/components/BanUserModal.tsx rename to apps/web-react/app/features/tournament-organization/components/BanUserModal.tsx diff --git a/app/features/tournament-organization/components/BannedPlayersList.module.css b/apps/web-react/app/features/tournament-organization/components/BannedPlayersList.module.css similarity index 100% rename from app/features/tournament-organization/components/BannedPlayersList.module.css rename to apps/web-react/app/features/tournament-organization/components/BannedPlayersList.module.css diff --git a/app/features/tournament-organization/components/BannedPlayersList.tsx b/apps/web-react/app/features/tournament-organization/components/BannedPlayersList.tsx similarity index 100% rename from app/features/tournament-organization/components/BannedPlayersList.tsx rename to apps/web-react/app/features/tournament-organization/components/BannedPlayersList.tsx diff --git a/app/features/tournament-organization/components/EventCalendar.tsx b/apps/web-react/app/features/tournament-organization/components/EventCalendar.tsx similarity index 100% rename from app/features/tournament-organization/components/EventCalendar.tsx rename to apps/web-react/app/features/tournament-organization/components/EventCalendar.tsx diff --git a/app/features/tournament-organization/components/SocialLinksList.tsx b/apps/web-react/app/features/tournament-organization/components/SocialLinksList.tsx similarity index 100% rename from app/features/tournament-organization/components/SocialLinksList.tsx rename to apps/web-react/app/features/tournament-organization/components/SocialLinksList.tsx diff --git a/app/features/tournament-organization/core/leaderboards.server.ts b/apps/web-react/app/features/tournament-organization/core/leaderboards.server.ts similarity index 100% rename from app/features/tournament-organization/core/leaderboards.server.ts rename to apps/web-react/app/features/tournament-organization/core/leaderboards.server.ts diff --git a/app/features/tournament-organization/core/tentativeTiers.server.ts b/apps/web-react/app/features/tournament-organization/core/tentativeTiers.server.ts similarity index 100% rename from app/features/tournament-organization/core/tentativeTiers.server.ts rename to apps/web-react/app/features/tournament-organization/core/tentativeTiers.server.ts diff --git a/app/features/tournament-organization/loaders/org.$slug.edit.server.ts b/apps/web-react/app/features/tournament-organization/loaders/org.$slug.edit.server.ts similarity index 100% rename from app/features/tournament-organization/loaders/org.$slug.edit.server.ts rename to apps/web-react/app/features/tournament-organization/loaders/org.$slug.edit.server.ts diff --git a/app/features/tournament-organization/loaders/org.$slug.server.ts b/apps/web-react/app/features/tournament-organization/loaders/org.$slug.server.ts similarity index 100% rename from app/features/tournament-organization/loaders/org.$slug.server.ts rename to apps/web-react/app/features/tournament-organization/loaders/org.$slug.server.ts diff --git a/app/features/tournament-organization/loaders/org.$slug.stats.server.ts b/apps/web-react/app/features/tournament-organization/loaders/org.$slug.stats.server.ts similarity index 100% rename from app/features/tournament-organization/loaders/org.$slug.stats.server.ts rename to apps/web-react/app/features/tournament-organization/loaders/org.$slug.stats.server.ts diff --git a/app/features/tournament-organization/routes/org.$slug.edit.browser.test.tsx b/apps/web-react/app/features/tournament-organization/routes/org.$slug.edit.browser.test.tsx similarity index 100% rename from app/features/tournament-organization/routes/org.$slug.edit.browser.test.tsx rename to apps/web-react/app/features/tournament-organization/routes/org.$slug.edit.browser.test.tsx diff --git a/app/features/tournament-organization/routes/org.$slug.edit.tsx b/apps/web-react/app/features/tournament-organization/routes/org.$slug.edit.tsx similarity index 100% rename from app/features/tournament-organization/routes/org.$slug.edit.tsx rename to apps/web-react/app/features/tournament-organization/routes/org.$slug.edit.tsx diff --git a/app/features/tournament-organization/routes/org.$slug.stats.module.css b/apps/web-react/app/features/tournament-organization/routes/org.$slug.stats.module.css similarity index 100% rename from app/features/tournament-organization/routes/org.$slug.stats.module.css rename to apps/web-react/app/features/tournament-organization/routes/org.$slug.stats.module.css diff --git a/app/features/tournament-organization/routes/org.$slug.stats.test.ts b/apps/web-react/app/features/tournament-organization/routes/org.$slug.stats.test.ts similarity index 100% rename from app/features/tournament-organization/routes/org.$slug.stats.test.ts rename to apps/web-react/app/features/tournament-organization/routes/org.$slug.stats.test.ts diff --git a/app/features/tournament-organization/routes/org.$slug.stats.tsx b/apps/web-react/app/features/tournament-organization/routes/org.$slug.stats.tsx similarity index 100% rename from app/features/tournament-organization/routes/org.$slug.stats.tsx rename to apps/web-react/app/features/tournament-organization/routes/org.$slug.stats.tsx diff --git a/app/features/tournament-organization/routes/org.$slug.tsx b/apps/web-react/app/features/tournament-organization/routes/org.$slug.tsx similarity index 100% rename from app/features/tournament-organization/routes/org.$slug.tsx rename to apps/web-react/app/features/tournament-organization/routes/org.$slug.tsx diff --git a/app/features/tournament-organization/routes/org.new.tsx b/apps/web-react/app/features/tournament-organization/routes/org.new.tsx similarity index 100% rename from app/features/tournament-organization/routes/org.new.tsx rename to apps/web-react/app/features/tournament-organization/routes/org.new.tsx diff --git a/app/features/tournament-organization/test-utils.ts b/apps/web-react/app/features/tournament-organization/test-utils.ts similarity index 100% rename from app/features/tournament-organization/test-utils.ts rename to apps/web-react/app/features/tournament-organization/test-utils.ts diff --git a/app/features/tournament-organization/tournament-organization-constants.ts b/apps/web-react/app/features/tournament-organization/tournament-organization-constants.ts similarity index 100% rename from app/features/tournament-organization/tournament-organization-constants.ts rename to apps/web-react/app/features/tournament-organization/tournament-organization-constants.ts diff --git a/app/features/tournament-organization/tournament-organization-schemas.server.ts b/apps/web-react/app/features/tournament-organization/tournament-organization-schemas.server.ts similarity index 100% rename from app/features/tournament-organization/tournament-organization-schemas.server.ts rename to apps/web-react/app/features/tournament-organization/tournament-organization-schemas.server.ts diff --git a/app/features/tournament-organization/tournament-organization-schemas.ts b/apps/web-react/app/features/tournament-organization/tournament-organization-schemas.ts similarity index 100% rename from app/features/tournament-organization/tournament-organization-schemas.ts rename to apps/web-react/app/features/tournament-organization/tournament-organization-schemas.ts diff --git a/app/features/tournament-organization/tournament-organization-search-params.test.ts b/apps/web-react/app/features/tournament-organization/tournament-organization-search-params.test.ts similarity index 100% rename from app/features/tournament-organization/tournament-organization-search-params.test.ts rename to apps/web-react/app/features/tournament-organization/tournament-organization-search-params.test.ts diff --git a/app/features/tournament-organization/tournament-organization-search-params.ts b/apps/web-react/app/features/tournament-organization/tournament-organization-search-params.ts similarity index 100% rename from app/features/tournament-organization/tournament-organization-search-params.ts rename to apps/web-react/app/features/tournament-organization/tournament-organization-search-params.ts diff --git a/app/features/tournament-organization/tournament-organization-urls.test.ts b/apps/web-react/app/features/tournament-organization/tournament-organization-urls.test.ts similarity index 100% rename from app/features/tournament-organization/tournament-organization-urls.test.ts rename to apps/web-react/app/features/tournament-organization/tournament-organization-urls.test.ts diff --git a/app/features/tournament-organization/tournament-organization-urls.ts b/apps/web-react/app/features/tournament-organization/tournament-organization-urls.ts similarity index 100% rename from app/features/tournament-organization/tournament-organization-urls.ts rename to apps/web-react/app/features/tournament-organization/tournament-organization-urls.ts diff --git a/app/features/tournament-organization/tournament-organization-utils.server.ts b/apps/web-react/app/features/tournament-organization/tournament-organization-utils.server.ts similarity index 100% rename from app/features/tournament-organization/tournament-organization-utils.server.ts rename to apps/web-react/app/features/tournament-organization/tournament-organization-utils.server.ts diff --git a/app/features/tournament-organization/tournament-organization.module.css b/apps/web-react/app/features/tournament-organization/tournament-organization.module.css similarity index 100% rename from app/features/tournament-organization/tournament-organization.module.css rename to apps/web-react/app/features/tournament-organization/tournament-organization.module.css diff --git a/app/features/tournament-subs/loaders/to.$id.subs.server.ts b/apps/web-react/app/features/tournament-subs/loaders/to.$id.subs.server.ts similarity index 100% rename from app/features/tournament-subs/loaders/to.$id.subs.server.ts rename to apps/web-react/app/features/tournament-subs/loaders/to.$id.subs.server.ts diff --git a/app/features/tournament-subs/routes/to.$id.subs.tsx b/apps/web-react/app/features/tournament-subs/routes/to.$id.subs.tsx similarity index 100% rename from app/features/tournament-subs/routes/to.$id.subs.tsx rename to apps/web-react/app/features/tournament-subs/routes/to.$id.subs.tsx diff --git a/app/features/tournament/SavedCalendarEventRepository.server.ts b/apps/web-react/app/features/tournament/SavedCalendarEventRepository.server.ts similarity index 100% rename from app/features/tournament/SavedCalendarEventRepository.server.ts rename to apps/web-react/app/features/tournament/SavedCalendarEventRepository.server.ts diff --git a/app/features/tournament/TournamentAuditLogRepository.server.test.ts b/apps/web-react/app/features/tournament/TournamentAuditLogRepository.server.test.ts similarity index 100% rename from app/features/tournament/TournamentAuditLogRepository.server.test.ts rename to apps/web-react/app/features/tournament/TournamentAuditLogRepository.server.test.ts diff --git a/app/features/tournament/TournamentAuditLogRepository.server.ts b/apps/web-react/app/features/tournament/TournamentAuditLogRepository.server.ts similarity index 100% rename from app/features/tournament/TournamentAuditLogRepository.server.ts rename to apps/web-react/app/features/tournament/TournamentAuditLogRepository.server.ts diff --git a/app/features/tournament/TournamentRepository.finalize.test.ts b/apps/web-react/app/features/tournament/TournamentRepository.finalize.test.ts similarity index 100% rename from app/features/tournament/TournamentRepository.finalize.test.ts rename to apps/web-react/app/features/tournament/TournamentRepository.finalize.test.ts diff --git a/app/features/tournament/TournamentRepository.permissions.test.ts b/apps/web-react/app/features/tournament/TournamentRepository.permissions.test.ts similarity index 100% rename from app/features/tournament/TournamentRepository.permissions.test.ts rename to apps/web-react/app/features/tournament/TournamentRepository.permissions.test.ts diff --git a/app/features/tournament/TournamentRepository.searchByName.test.ts b/apps/web-react/app/features/tournament/TournamentRepository.searchByName.test.ts similarity index 100% rename from app/features/tournament/TournamentRepository.searchByName.test.ts rename to apps/web-react/app/features/tournament/TournamentRepository.searchByName.test.ts diff --git a/app/features/tournament/TournamentRepository.server.ts b/apps/web-react/app/features/tournament/TournamentRepository.server.ts similarity index 100% rename from app/features/tournament/TournamentRepository.server.ts rename to apps/web-react/app/features/tournament/TournamentRepository.server.ts diff --git a/app/features/tournament/TournamentRepository.showcaseCounts.test.ts b/apps/web-react/app/features/tournament/TournamentRepository.showcaseCounts.test.ts similarity index 100% rename from app/features/tournament/TournamentRepository.showcaseCounts.test.ts rename to apps/web-react/app/features/tournament/TournamentRepository.showcaseCounts.test.ts diff --git a/app/features/tournament/TournamentTeamRepository.server.test.ts b/apps/web-react/app/features/tournament/TournamentTeamRepository.server.test.ts similarity index 100% rename from app/features/tournament/TournamentTeamRepository.server.test.ts rename to apps/web-react/app/features/tournament/TournamentTeamRepository.server.test.ts diff --git a/app/features/tournament/TournamentTeamRepository.server.ts b/apps/web-react/app/features/tournament/TournamentTeamRepository.server.ts similarity index 100% rename from app/features/tournament/TournamentTeamRepository.server.ts rename to apps/web-react/app/features/tournament/TournamentTeamRepository.server.ts diff --git a/app/features/tournament/actions/to.$id.info.server.ts b/apps/web-react/app/features/tournament/actions/to.$id.info.server.ts similarity index 100% rename from app/features/tournament/actions/to.$id.info.server.ts rename to apps/web-react/app/features/tournament/actions/to.$id.info.server.ts diff --git a/app/features/tournament/actions/to.$id.join.server.ts b/apps/web-react/app/features/tournament/actions/to.$id.join.server.ts similarity index 100% rename from app/features/tournament/actions/to.$id.join.server.ts rename to apps/web-react/app/features/tournament/actions/to.$id.join.server.ts diff --git a/app/features/tournament/actions/to.$id.register.server.ts b/apps/web-react/app/features/tournament/actions/to.$id.register.server.ts similarity index 100% rename from app/features/tournament/actions/to.$id.register.server.ts rename to apps/web-react/app/features/tournament/actions/to.$id.register.server.ts diff --git a/app/features/tournament/components/CounterPickMapPoolPicker.tsx b/apps/web-react/app/features/tournament/components/CounterPickMapPoolPicker.tsx similarity index 100% rename from app/features/tournament/components/CounterPickMapPoolPicker.tsx rename to apps/web-react/app/features/tournament/components/CounterPickMapPoolPicker.tsx diff --git a/app/features/tournament/components/FactCard.module.css b/apps/web-react/app/features/tournament/components/FactCard.module.css similarity index 100% rename from app/features/tournament/components/FactCard.module.css rename to apps/web-react/app/features/tournament/components/FactCard.module.css diff --git a/app/features/tournament/components/FactCard.tsx b/apps/web-react/app/features/tournament/components/FactCard.tsx similarity index 100% rename from app/features/tournament/components/FactCard.tsx rename to apps/web-react/app/features/tournament/components/FactCard.tsx diff --git a/app/features/tournament/components/RegistrationActions.tsx b/apps/web-react/app/features/tournament/components/RegistrationActions.tsx similarity index 100% rename from app/features/tournament/components/RegistrationActions.tsx rename to apps/web-react/app/features/tournament/components/RegistrationActions.tsx diff --git a/app/features/tournament/components/TeamWithRoster.tsx b/apps/web-react/app/features/tournament/components/TeamWithRoster.tsx similarity index 100% rename from app/features/tournament/components/TeamWithRoster.tsx rename to apps/web-react/app/features/tournament/components/TeamWithRoster.tsx diff --git a/app/features/tournament/components/TournamentHeader.module.css b/apps/web-react/app/features/tournament/components/TournamentHeader.module.css similarity index 100% rename from app/features/tournament/components/TournamentHeader.module.css rename to apps/web-react/app/features/tournament/components/TournamentHeader.module.css diff --git a/app/features/tournament/components/TournamentHeader.tsx b/apps/web-react/app/features/tournament/components/TournamentHeader.tsx similarity index 100% rename from app/features/tournament/components/TournamentHeader.tsx rename to apps/web-react/app/features/tournament/components/TournamentHeader.tsx diff --git a/app/features/tournament/components/TournamentNav.module.css b/apps/web-react/app/features/tournament/components/TournamentNav.module.css similarity index 100% rename from app/features/tournament/components/TournamentNav.module.css rename to apps/web-react/app/features/tournament/components/TournamentNav.module.css diff --git a/app/features/tournament/components/TournamentNav.tsx b/apps/web-react/app/features/tournament/components/TournamentNav.tsx similarity index 100% rename from app/features/tournament/components/TournamentNav.tsx rename to apps/web-react/app/features/tournament/components/TournamentNav.tsx diff --git a/app/features/tournament/components/TournamentStream.tsx b/apps/web-react/app/features/tournament/components/TournamentStream.tsx similarity index 100% rename from app/features/tournament/components/TournamentStream.tsx rename to apps/web-react/app/features/tournament/components/TournamentStream.tsx diff --git a/app/features/tournament/core/Standings.test.ts b/apps/web-react/app/features/tournament/core/Standings.test.ts similarity index 100% rename from app/features/tournament/core/Standings.test.ts rename to apps/web-react/app/features/tournament/core/Standings.test.ts diff --git a/app/features/tournament/core/Standings.ts b/apps/web-react/app/features/tournament/core/Standings.ts similarity index 100% rename from app/features/tournament/core/Standings.ts rename to apps/web-react/app/features/tournament/core/Standings.ts diff --git a/app/features/tournament/core/layout-payload.ts b/apps/web-react/app/features/tournament/core/layout-payload.ts similarity index 100% rename from app/features/tournament/core/layout-payload.ts rename to apps/web-react/app/features/tournament/core/layout-payload.ts diff --git a/app/features/tournament/core/sets.server.test.ts b/apps/web-react/app/features/tournament/core/sets.server.test.ts similarity index 100% rename from app/features/tournament/core/sets.server.test.ts rename to apps/web-react/app/features/tournament/core/sets.server.test.ts diff --git a/app/features/tournament/core/sets.server.ts b/apps/web-react/app/features/tournament/core/sets.server.ts similarity index 100% rename from app/features/tournament/core/sets.server.ts rename to apps/web-react/app/features/tournament/core/sets.server.ts diff --git a/app/features/tournament/core/tiering.test.ts b/apps/web-react/app/features/tournament/core/tiering.test.ts similarity index 100% rename from app/features/tournament/core/tiering.test.ts rename to apps/web-react/app/features/tournament/core/tiering.test.ts diff --git a/app/features/tournament/core/tiering.ts b/apps/web-react/app/features/tournament/core/tiering.ts similarity index 100% rename from app/features/tournament/core/tiering.ts rename to apps/web-react/app/features/tournament/core/tiering.ts diff --git a/app/features/tournament/loaders/to.$id.info.server.ts b/apps/web-react/app/features/tournament/loaders/to.$id.info.server.ts similarity index 100% rename from app/features/tournament/loaders/to.$id.info.server.ts rename to apps/web-react/app/features/tournament/loaders/to.$id.info.server.ts diff --git a/app/features/tournament/loaders/to.$id.join.server.ts b/apps/web-react/app/features/tournament/loaders/to.$id.join.server.ts similarity index 100% rename from app/features/tournament/loaders/to.$id.join.server.ts rename to apps/web-react/app/features/tournament/loaders/to.$id.join.server.ts diff --git a/app/features/tournament/loaders/to.$id.register.server.ts b/apps/web-react/app/features/tournament/loaders/to.$id.register.server.ts similarity index 100% rename from app/features/tournament/loaders/to.$id.register.server.ts rename to apps/web-react/app/features/tournament/loaders/to.$id.register.server.ts diff --git a/app/features/tournament/loaders/to.$id.results.server.ts b/apps/web-react/app/features/tournament/loaders/to.$id.results.server.ts similarity index 100% rename from app/features/tournament/loaders/to.$id.results.server.ts rename to apps/web-react/app/features/tournament/loaders/to.$id.results.server.ts diff --git a/app/features/tournament/loaders/to.$id.rules.server.ts b/apps/web-react/app/features/tournament/loaders/to.$id.rules.server.ts similarity index 100% rename from app/features/tournament/loaders/to.$id.rules.server.ts rename to apps/web-react/app/features/tournament/loaders/to.$id.rules.server.ts diff --git a/app/features/tournament/loaders/to.$id.server.ts b/apps/web-react/app/features/tournament/loaders/to.$id.server.ts similarity index 100% rename from app/features/tournament/loaders/to.$id.server.ts rename to apps/web-react/app/features/tournament/loaders/to.$id.server.ts diff --git a/app/features/tournament/loaders/to.$id.streams.server.ts b/apps/web-react/app/features/tournament/loaders/to.$id.streams.server.ts similarity index 100% rename from app/features/tournament/loaders/to.$id.streams.server.ts rename to apps/web-react/app/features/tournament/loaders/to.$id.streams.server.ts diff --git a/app/features/tournament/loaders/to.$id.teams.$tid.comps.server.ts b/apps/web-react/app/features/tournament/loaders/to.$id.teams.$tid.comps.server.ts similarity index 100% rename from app/features/tournament/loaders/to.$id.teams.$tid.comps.server.ts rename to apps/web-react/app/features/tournament/loaders/to.$id.teams.$tid.comps.server.ts diff --git a/app/features/tournament/loaders/to.$id.teams.$tid.server.ts b/apps/web-react/app/features/tournament/loaders/to.$id.teams.$tid.server.ts similarity index 100% rename from app/features/tournament/loaders/to.$id.teams.$tid.server.ts rename to apps/web-react/app/features/tournament/loaders/to.$id.teams.$tid.server.ts diff --git a/app/features/tournament/loaders/to.$id.teams.server.ts b/apps/web-react/app/features/tournament/loaders/to.$id.teams.server.ts similarity index 100% rename from app/features/tournament/loaders/to.$id.teams.server.ts rename to apps/web-react/app/features/tournament/loaders/to.$id.teams.server.ts diff --git a/app/features/tournament/routes/luti.ts b/apps/web-react/app/features/tournament/routes/luti.ts similarity index 100% rename from app/features/tournament/routes/luti.ts rename to apps/web-react/app/features/tournament/routes/luti.ts diff --git a/app/features/tournament/routes/to.$id.index.ts b/apps/web-react/app/features/tournament/routes/to.$id.index.ts similarity index 100% rename from app/features/tournament/routes/to.$id.index.ts rename to apps/web-react/app/features/tournament/routes/to.$id.index.ts diff --git a/app/features/tournament/routes/to.$id.info.module.css b/apps/web-react/app/features/tournament/routes/to.$id.info.module.css similarity index 100% rename from app/features/tournament/routes/to.$id.info.module.css rename to apps/web-react/app/features/tournament/routes/to.$id.info.module.css diff --git a/app/features/tournament/routes/to.$id.info.tsx b/apps/web-react/app/features/tournament/routes/to.$id.info.tsx similarity index 100% rename from app/features/tournament/routes/to.$id.info.tsx rename to apps/web-react/app/features/tournament/routes/to.$id.info.tsx diff --git a/app/features/tournament/routes/to.$id.join.tsx b/apps/web-react/app/features/tournament/routes/to.$id.join.tsx similarity index 100% rename from app/features/tournament/routes/to.$id.join.tsx rename to apps/web-react/app/features/tournament/routes/to.$id.join.tsx diff --git a/app/features/tournament/routes/to.$id.register.tsx b/apps/web-react/app/features/tournament/routes/to.$id.register.tsx similarity index 100% rename from app/features/tournament/routes/to.$id.register.tsx rename to apps/web-react/app/features/tournament/routes/to.$id.register.tsx diff --git a/app/features/tournament/routes/to.$id.results.tsx b/apps/web-react/app/features/tournament/routes/to.$id.results.tsx similarity index 100% rename from app/features/tournament/routes/to.$id.results.tsx rename to apps/web-react/app/features/tournament/routes/to.$id.results.tsx diff --git a/app/features/tournament/routes/to.$id.rules.tsx b/apps/web-react/app/features/tournament/routes/to.$id.rules.tsx similarity index 100% rename from app/features/tournament/routes/to.$id.rules.tsx rename to apps/web-react/app/features/tournament/routes/to.$id.rules.tsx diff --git a/app/features/tournament/routes/to.$id.streams.tsx b/apps/web-react/app/features/tournament/routes/to.$id.streams.tsx similarity index 100% rename from app/features/tournament/routes/to.$id.streams.tsx rename to apps/web-react/app/features/tournament/routes/to.$id.streams.tsx diff --git a/app/features/tournament/routes/to.$id.teams.$tid.comps.ts b/apps/web-react/app/features/tournament/routes/to.$id.teams.$tid.comps.ts similarity index 100% rename from app/features/tournament/routes/to.$id.teams.$tid.comps.ts rename to apps/web-react/app/features/tournament/routes/to.$id.teams.$tid.comps.ts diff --git a/app/features/tournament/routes/to.$id.teams.$tid.tsx b/apps/web-react/app/features/tournament/routes/to.$id.teams.$tid.tsx similarity index 100% rename from app/features/tournament/routes/to.$id.teams.$tid.tsx rename to apps/web-react/app/features/tournament/routes/to.$id.teams.$tid.tsx diff --git a/app/features/tournament/routes/to.$id.teams.tsx b/apps/web-react/app/features/tournament/routes/to.$id.teams.tsx similarity index 100% rename from app/features/tournament/routes/to.$id.teams.tsx rename to apps/web-react/app/features/tournament/routes/to.$id.teams.tsx diff --git a/app/features/tournament/routes/to.$id.tsx b/apps/web-react/app/features/tournament/routes/to.$id.tsx similarity index 100% rename from app/features/tournament/routes/to.$id.tsx rename to apps/web-react/app/features/tournament/routes/to.$id.tsx diff --git a/app/features/tournament/routes/to.search.ts b/apps/web-react/app/features/tournament/routes/to.search.ts similarity index 100% rename from app/features/tournament/routes/to.search.ts rename to apps/web-react/app/features/tournament/routes/to.search.ts diff --git a/app/features/tournament/tournament-constants.ts b/apps/web-react/app/features/tournament/tournament-constants.ts similarity index 100% rename from app/features/tournament/tournament-constants.ts rename to apps/web-react/app/features/tournament/tournament-constants.ts diff --git a/app/features/tournament/tournament-context.tsx b/apps/web-react/app/features/tournament/tournament-context.tsx similarity index 100% rename from app/features/tournament/tournament-context.tsx rename to apps/web-react/app/features/tournament/tournament-context.tsx diff --git a/app/features/tournament/tournament-register-schemas.server.ts b/apps/web-react/app/features/tournament/tournament-register-schemas.server.ts similarity index 100% rename from app/features/tournament/tournament-register-schemas.server.ts rename to apps/web-react/app/features/tournament/tournament-register-schemas.server.ts diff --git a/app/features/tournament/tournament-register-schemas.ts b/apps/web-react/app/features/tournament/tournament-register-schemas.ts similarity index 100% rename from app/features/tournament/tournament-register-schemas.ts rename to apps/web-react/app/features/tournament/tournament-register-schemas.ts diff --git a/app/features/tournament/tournament-schemas.server.ts b/apps/web-react/app/features/tournament/tournament-schemas.server.ts similarity index 100% rename from app/features/tournament/tournament-schemas.server.ts rename to apps/web-react/app/features/tournament/tournament-schemas.server.ts diff --git a/app/features/tournament/tournament-schemas.ts b/apps/web-react/app/features/tournament/tournament-schemas.ts similarity index 100% rename from app/features/tournament/tournament-schemas.ts rename to apps/web-react/app/features/tournament/tournament-schemas.ts diff --git a/app/features/tournament/tournament-search-params.test.ts b/apps/web-react/app/features/tournament/tournament-search-params.test.ts similarity index 100% rename from app/features/tournament/tournament-search-params.test.ts rename to apps/web-react/app/features/tournament/tournament-search-params.test.ts diff --git a/app/features/tournament/tournament-search-params.ts b/apps/web-react/app/features/tournament/tournament-search-params.ts similarity index 100% rename from app/features/tournament/tournament-search-params.ts rename to apps/web-react/app/features/tournament/tournament-search-params.ts diff --git a/app/features/tournament/tournament-urls.ts b/apps/web-react/app/features/tournament/tournament-urls.ts similarity index 100% rename from app/features/tournament/tournament-urls.ts rename to apps/web-react/app/features/tournament/tournament-urls.ts diff --git a/app/features/tournament/tournament-utils.server.ts b/apps/web-react/app/features/tournament/tournament-utils.server.ts similarity index 100% rename from app/features/tournament/tournament-utils.server.ts rename to apps/web-react/app/features/tournament/tournament-utils.server.ts diff --git a/app/features/tournament/tournament-utils.test.ts b/apps/web-react/app/features/tournament/tournament-utils.test.ts similarity index 100% rename from app/features/tournament/tournament-utils.test.ts rename to apps/web-react/app/features/tournament/tournament-utils.test.ts diff --git a/app/features/tournament/tournament-utils.ts b/apps/web-react/app/features/tournament/tournament-utils.ts similarity index 100% rename from app/features/tournament/tournament-utils.ts rename to apps/web-react/app/features/tournament/tournament-utils.ts diff --git a/app/features/tournament/tournament.module.css b/apps/web-react/app/features/tournament/tournament.module.css similarity index 100% rename from app/features/tournament/tournament.module.css rename to apps/web-react/app/features/tournament/tournament.module.css diff --git a/app/features/trophies/TrophyRepository.server.test.ts b/apps/web-react/app/features/trophies/TrophyRepository.server.test.ts similarity index 100% rename from app/features/trophies/TrophyRepository.server.test.ts rename to apps/web-react/app/features/trophies/TrophyRepository.server.test.ts diff --git a/app/features/trophies/TrophyRepository.server.ts b/apps/web-react/app/features/trophies/TrophyRepository.server.ts similarity index 100% rename from app/features/trophies/TrophyRepository.server.ts rename to apps/web-react/app/features/trophies/TrophyRepository.server.ts diff --git a/app/features/trophies/actions/trophies.new.server.ts b/apps/web-react/app/features/trophies/actions/trophies.new.server.ts similarity index 100% rename from app/features/trophies/actions/trophies.new.server.ts rename to apps/web-react/app/features/trophies/actions/trophies.new.server.ts diff --git a/app/features/trophies/components/TournamentSummaryRow.module.css b/apps/web-react/app/features/trophies/components/TournamentSummaryRow.module.css similarity index 100% rename from app/features/trophies/components/TournamentSummaryRow.module.css rename to apps/web-react/app/features/trophies/components/TournamentSummaryRow.module.css diff --git a/app/features/trophies/components/TournamentSummaryRow.tsx b/apps/web-react/app/features/trophies/components/TournamentSummaryRow.tsx similarity index 100% rename from app/features/trophies/components/TournamentSummaryRow.tsx rename to apps/web-react/app/features/trophies/components/TournamentSummaryRow.tsx diff --git a/app/features/trophies/components/TrophiesSelector.module.css b/apps/web-react/app/features/trophies/components/TrophiesSelector.module.css similarity index 100% rename from app/features/trophies/components/TrophiesSelector.module.css rename to apps/web-react/app/features/trophies/components/TrophiesSelector.module.css diff --git a/app/features/trophies/components/TrophiesSelector.tsx b/apps/web-react/app/features/trophies/components/TrophiesSelector.tsx similarity index 100% rename from app/features/trophies/components/TrophiesSelector.tsx rename to apps/web-react/app/features/trophies/components/TrophiesSelector.tsx diff --git a/app/features/trophies/components/Trophy.module.css b/apps/web-react/app/features/trophies/components/Trophy.module.css similarity index 100% rename from app/features/trophies/components/Trophy.module.css rename to apps/web-react/app/features/trophies/components/Trophy.module.css diff --git a/app/features/trophies/components/Trophy.tsx b/apps/web-react/app/features/trophies/components/Trophy.tsx similarity index 100% rename from app/features/trophies/components/Trophy.tsx rename to apps/web-react/app/features/trophies/components/Trophy.tsx diff --git a/app/features/trophies/components/TrophyDisplay.module.css b/apps/web-react/app/features/trophies/components/TrophyDisplay.module.css similarity index 100% rename from app/features/trophies/components/TrophyDisplay.module.css rename to apps/web-react/app/features/trophies/components/TrophyDisplay.module.css diff --git a/app/features/trophies/components/TrophyDisplay.tsx b/apps/web-react/app/features/trophies/components/TrophyDisplay.tsx similarity index 100% rename from app/features/trophies/components/TrophyDisplay.tsx rename to apps/web-react/app/features/trophies/components/TrophyDisplay.tsx diff --git a/app/features/trophies/components/TrophyShowcase.module.css b/apps/web-react/app/features/trophies/components/TrophyShowcase.module.css similarity index 100% rename from app/features/trophies/components/TrophyShowcase.module.css rename to apps/web-react/app/features/trophies/components/TrophyShowcase.module.css diff --git a/app/features/trophies/components/TrophyShowcase.tsx b/apps/web-react/app/features/trophies/components/TrophyShowcase.tsx similarity index 100% rename from app/features/trophies/components/TrophyShowcase.tsx rename to apps/web-react/app/features/trophies/components/TrophyShowcase.tsx diff --git a/app/features/trophies/components/TrophyTournamentHistory.module.css b/apps/web-react/app/features/trophies/components/TrophyTournamentHistory.module.css similarity index 100% rename from app/features/trophies/components/TrophyTournamentHistory.module.css rename to apps/web-react/app/features/trophies/components/TrophyTournamentHistory.module.css diff --git a/app/features/trophies/components/TrophyTournamentHistory.tsx b/apps/web-react/app/features/trophies/components/TrophyTournamentHistory.tsx similarity index 100% rename from app/features/trophies/components/TrophyTournamentHistory.tsx rename to apps/web-react/app/features/trophies/components/TrophyTournamentHistory.tsx diff --git a/app/features/trophies/core/model-analysis.ts b/apps/web-react/app/features/trophies/core/model-analysis.ts similarity index 100% rename from app/features/trophies/core/model-analysis.ts rename to apps/web-react/app/features/trophies/core/model-analysis.ts diff --git a/app/features/trophies/loaders/trophies.$id.server.ts b/apps/web-react/app/features/trophies/loaders/trophies.$id.server.ts similarity index 100% rename from app/features/trophies/loaders/trophies.$id.server.ts rename to apps/web-react/app/features/trophies/loaders/trophies.$id.server.ts diff --git a/app/features/trophies/loaders/trophies.new.server.ts b/apps/web-react/app/features/trophies/loaders/trophies.new.server.ts similarity index 100% rename from app/features/trophies/loaders/trophies.new.server.ts rename to apps/web-react/app/features/trophies/loaders/trophies.new.server.ts diff --git a/app/features/trophies/loaders/trophies.server.ts b/apps/web-react/app/features/trophies/loaders/trophies.server.ts similarity index 100% rename from app/features/trophies/loaders/trophies.server.ts rename to apps/web-react/app/features/trophies/loaders/trophies.server.ts diff --git a/app/features/trophies/routes/trophies.$id.tournaments.ts b/apps/web-react/app/features/trophies/routes/trophies.$id.tournaments.ts similarity index 100% rename from app/features/trophies/routes/trophies.$id.tournaments.ts rename to apps/web-react/app/features/trophies/routes/trophies.$id.tournaments.ts diff --git a/app/features/trophies/routes/trophies.$id.tsx b/apps/web-react/app/features/trophies/routes/trophies.$id.tsx similarity index 100% rename from app/features/trophies/routes/trophies.$id.tsx rename to apps/web-react/app/features/trophies/routes/trophies.$id.tsx diff --git a/app/features/trophies/routes/trophies.$id.wins.$userId.ts b/apps/web-react/app/features/trophies/routes/trophies.$id.wins.$userId.ts similarity index 100% rename from app/features/trophies/routes/trophies.$id.wins.$userId.ts rename to apps/web-react/app/features/trophies/routes/trophies.$id.wins.$userId.ts diff --git a/app/features/trophies/routes/trophies.module.css b/apps/web-react/app/features/trophies/routes/trophies.module.css similarity index 100% rename from app/features/trophies/routes/trophies.module.css rename to apps/web-react/app/features/trophies/routes/trophies.module.css diff --git a/app/features/trophies/routes/trophies.new.module.css b/apps/web-react/app/features/trophies/routes/trophies.new.module.css similarity index 100% rename from app/features/trophies/routes/trophies.new.module.css rename to apps/web-react/app/features/trophies/routes/trophies.new.module.css diff --git a/app/features/trophies/routes/trophies.new.test.ts b/apps/web-react/app/features/trophies/routes/trophies.new.test.ts similarity index 100% rename from app/features/trophies/routes/trophies.new.test.ts rename to apps/web-react/app/features/trophies/routes/trophies.new.test.ts diff --git a/app/features/trophies/routes/trophies.new.tsx b/apps/web-react/app/features/trophies/routes/trophies.new.tsx similarity index 100% rename from app/features/trophies/routes/trophies.new.tsx rename to apps/web-react/app/features/trophies/routes/trophies.new.tsx diff --git a/app/features/trophies/routes/trophies.tsx b/apps/web-react/app/features/trophies/routes/trophies.tsx similarity index 100% rename from app/features/trophies/routes/trophies.tsx rename to apps/web-react/app/features/trophies/routes/trophies.tsx diff --git a/app/features/trophies/trophies-constants.ts b/apps/web-react/app/features/trophies/trophies-constants.ts similarity index 100% rename from app/features/trophies/trophies-constants.ts rename to apps/web-react/app/features/trophies/trophies-constants.ts diff --git a/app/features/trophies/trophies-schemas.ts b/apps/web-react/app/features/trophies/trophies-schemas.ts similarity index 100% rename from app/features/trophies/trophies-schemas.ts rename to apps/web-react/app/features/trophies/trophies-schemas.ts diff --git a/app/features/trophies/trophies-utils.test.ts b/apps/web-react/app/features/trophies/trophies-utils.test.ts similarity index 100% rename from app/features/trophies/trophies-utils.test.ts rename to apps/web-react/app/features/trophies/trophies-utils.test.ts diff --git a/app/features/trophies/trophies-utils.ts b/apps/web-react/app/features/trophies/trophies-utils.ts similarity index 100% rename from app/features/trophies/trophies-utils.ts rename to apps/web-react/app/features/trophies/trophies-utils.ts diff --git a/app/features/user-card/UserCardRepository.server.test.ts b/apps/web-react/app/features/user-card/UserCardRepository.server.test.ts similarity index 100% rename from app/features/user-card/UserCardRepository.server.test.ts rename to apps/web-react/app/features/user-card/UserCardRepository.server.test.ts diff --git a/app/features/user-card/UserCardRepository.server.ts b/apps/web-react/app/features/user-card/UserCardRepository.server.ts similarity index 100% rename from app/features/user-card/UserCardRepository.server.ts rename to apps/web-react/app/features/user-card/UserCardRepository.server.ts diff --git a/app/features/user-card/actions/user-card.edit.server.ts b/apps/web-react/app/features/user-card/actions/user-card.edit.server.ts similarity index 100% rename from app/features/user-card/actions/user-card.edit.server.ts rename to apps/web-react/app/features/user-card/actions/user-card.edit.server.ts diff --git a/app/features/user-card/components/AddPrivateNoteDialog.tsx b/apps/web-react/app/features/user-card/components/AddPrivateNoteDialog.tsx similarity index 100% rename from app/features/user-card/components/AddPrivateNoteDialog.tsx rename to apps/web-react/app/features/user-card/components/AddPrivateNoteDialog.tsx diff --git a/app/features/user-card/components/UserCard.module.css b/apps/web-react/app/features/user-card/components/UserCard.module.css similarity index 100% rename from app/features/user-card/components/UserCard.module.css rename to apps/web-react/app/features/user-card/components/UserCard.module.css diff --git a/app/features/user-card/components/UserCard.tsx b/apps/web-react/app/features/user-card/components/UserCard.tsx similarity index 100% rename from app/features/user-card/components/UserCard.tsx rename to apps/web-react/app/features/user-card/components/UserCard.tsx diff --git a/app/features/user-card/loaders/user-card.edit.server.ts b/apps/web-react/app/features/user-card/loaders/user-card.edit.server.ts similarity index 100% rename from app/features/user-card/loaders/user-card.edit.server.ts rename to apps/web-react/app/features/user-card/loaders/user-card.edit.server.ts diff --git a/app/features/user-card/routes/user-card.$id.friendship.ts b/apps/web-react/app/features/user-card/routes/user-card.$id.friendship.ts similarity index 100% rename from app/features/user-card/routes/user-card.$id.friendship.ts rename to apps/web-react/app/features/user-card/routes/user-card.$id.friendship.ts diff --git a/app/features/user-card/routes/user-card.$id.note.ts b/apps/web-react/app/features/user-card/routes/user-card.$id.note.ts similarity index 100% rename from app/features/user-card/routes/user-card.$id.note.ts rename to apps/web-react/app/features/user-card/routes/user-card.$id.note.ts diff --git a/app/features/user-card/routes/user-card.edit.module.css b/apps/web-react/app/features/user-card/routes/user-card.edit.module.css similarity index 100% rename from app/features/user-card/routes/user-card.edit.module.css rename to apps/web-react/app/features/user-card/routes/user-card.edit.module.css diff --git a/app/features/user-card/routes/user-card.edit.tsx b/apps/web-react/app/features/user-card/routes/user-card.edit.tsx similarity index 100% rename from app/features/user-card/routes/user-card.edit.tsx rename to apps/web-react/app/features/user-card/routes/user-card.edit.tsx diff --git a/app/features/user-card/user-card-constants.ts b/apps/web-react/app/features/user-card/user-card-constants.ts similarity index 100% rename from app/features/user-card/user-card-constants.ts rename to apps/web-react/app/features/user-card/user-card-constants.ts diff --git a/app/features/user-card/user-card-schemas.ts b/apps/web-react/app/features/user-card/user-card-schemas.ts similarity index 100% rename from app/features/user-card/user-card-schemas.ts rename to apps/web-react/app/features/user-card/user-card-schemas.ts diff --git a/app/features/user-card/user-card-search-params.test.ts b/apps/web-react/app/features/user-card/user-card-search-params.test.ts similarity index 100% rename from app/features/user-card/user-card-search-params.test.ts rename to apps/web-react/app/features/user-card/user-card-search-params.test.ts diff --git a/app/features/user-card/user-card-search-params.ts b/apps/web-react/app/features/user-card/user-card-search-params.ts similarity index 100% rename from app/features/user-card/user-card-search-params.ts rename to apps/web-react/app/features/user-card/user-card-search-params.ts diff --git a/app/features/user-card/user-card-types.ts b/apps/web-react/app/features/user-card/user-card-types.ts similarity index 100% rename from app/features/user-card/user-card-types.ts rename to apps/web-react/app/features/user-card/user-card-types.ts diff --git a/app/features/user-card/user-card-urls.ts b/apps/web-react/app/features/user-card/user-card-urls.ts similarity index 100% rename from app/features/user-card/user-card-urls.ts rename to apps/web-react/app/features/user-card/user-card-urls.ts diff --git a/app/features/user-card/user-card-utils.ts b/apps/web-react/app/features/user-card/user-card-utils.ts similarity index 100% rename from app/features/user-card/user-card-utils.ts rename to apps/web-react/app/features/user-card/user-card-utils.ts diff --git a/app/features/user-page/UserRepository.server.ts b/apps/web-react/app/features/user-page/UserRepository.server.ts similarity index 100% rename from app/features/user-page/UserRepository.server.ts rename to apps/web-react/app/features/user-page/UserRepository.server.ts diff --git a/app/features/user-page/UserRepository.test.ts b/apps/web-react/app/features/user-page/UserRepository.test.ts similarity index 100% rename from app/features/user-page/UserRepository.test.ts rename to apps/web-react/app/features/user-page/UserRepository.test.ts diff --git a/app/features/user-page/actions/u.$identifier.admin.server.ts b/apps/web-react/app/features/user-page/actions/u.$identifier.admin.server.ts similarity index 100% rename from app/features/user-page/actions/u.$identifier.admin.server.ts rename to apps/web-react/app/features/user-page/actions/u.$identifier.admin.server.ts diff --git a/app/features/user-page/actions/u.$identifier.art.server.ts b/apps/web-react/app/features/user-page/actions/u.$identifier.art.server.ts similarity index 100% rename from app/features/user-page/actions/u.$identifier.art.server.ts rename to apps/web-react/app/features/user-page/actions/u.$identifier.art.server.ts diff --git a/app/features/user-page/actions/u.$identifier.builds.new.server.ts b/apps/web-react/app/features/user-page/actions/u.$identifier.builds.new.server.ts similarity index 100% rename from app/features/user-page/actions/u.$identifier.builds.new.server.ts rename to apps/web-react/app/features/user-page/actions/u.$identifier.builds.new.server.ts diff --git a/app/features/user-page/actions/u.$identifier.builds.server.ts b/apps/web-react/app/features/user-page/actions/u.$identifier.builds.server.ts similarity index 100% rename from app/features/user-page/actions/u.$identifier.builds.server.ts rename to apps/web-react/app/features/user-page/actions/u.$identifier.builds.server.ts diff --git a/app/features/user-page/actions/u.$identifier.edit-widgets.server.ts b/apps/web-react/app/features/user-page/actions/u.$identifier.edit-widgets.server.ts similarity index 100% rename from app/features/user-page/actions/u.$identifier.edit-widgets.server.ts rename to apps/web-react/app/features/user-page/actions/u.$identifier.edit-widgets.server.ts diff --git a/app/features/user-page/actions/u.$identifier.edit.server.ts b/apps/web-react/app/features/user-page/actions/u.$identifier.edit.server.ts similarity index 100% rename from app/features/user-page/actions/u.$identifier.edit.server.ts rename to apps/web-react/app/features/user-page/actions/u.$identifier.edit.server.ts diff --git a/app/features/user-page/actions/u.$identifier.results.highlights.server.ts b/apps/web-react/app/features/user-page/actions/u.$identifier.results.highlights.server.ts similarity index 100% rename from app/features/user-page/actions/u.$identifier.results.highlights.server.ts rename to apps/web-react/app/features/user-page/actions/u.$identifier.results.highlights.server.ts diff --git a/app/features/user-page/bio-json.server.test.ts b/apps/web-react/app/features/user-page/bio-json.server.test.ts similarity index 100% rename from app/features/user-page/bio-json.server.test.ts rename to apps/web-react/app/features/user-page/bio-json.server.test.ts diff --git a/app/features/user-page/components/GameBadgeSelectField.module.css b/apps/web-react/app/features/user-page/components/GameBadgeSelectField.module.css similarity index 100% rename from app/features/user-page/components/GameBadgeSelectField.module.css rename to apps/web-react/app/features/user-page/components/GameBadgeSelectField.module.css diff --git a/app/features/user-page/components/GameBadgeSelectField.tsx b/apps/web-react/app/features/user-page/components/GameBadgeSelectField.tsx similarity index 100% rename from app/features/user-page/components/GameBadgeSelectField.tsx rename to apps/web-react/app/features/user-page/components/GameBadgeSelectField.tsx diff --git a/app/features/user-page/components/MutualFriends.module.css b/apps/web-react/app/features/user-page/components/MutualFriends.module.css similarity index 100% rename from app/features/user-page/components/MutualFriends.module.css rename to apps/web-react/app/features/user-page/components/MutualFriends.module.css diff --git a/app/features/user-page/components/MutualFriends.tsx b/apps/web-react/app/features/user-page/components/MutualFriends.tsx similarity index 100% rename from app/features/user-page/components/MutualFriends.tsx rename to apps/web-react/app/features/user-page/components/MutualFriends.tsx diff --git a/app/features/user-page/components/NewBuildForm.browser.test.tsx b/apps/web-react/app/features/user-page/components/NewBuildForm.browser.test.tsx similarity index 100% rename from app/features/user-page/components/NewBuildForm.browser.test.tsx rename to apps/web-react/app/features/user-page/components/NewBuildForm.browser.test.tsx diff --git a/app/features/user-page/components/NewBuildForm.tsx b/apps/web-react/app/features/user-page/components/NewBuildForm.tsx similarity index 100% rename from app/features/user-page/components/NewBuildForm.tsx rename to apps/web-react/app/features/user-page/components/NewBuildForm.tsx diff --git a/app/features/user-page/components/ParticipationPill.module.css b/apps/web-react/app/features/user-page/components/ParticipationPill.module.css similarity index 100% rename from app/features/user-page/components/ParticipationPill.module.css rename to apps/web-react/app/features/user-page/components/ParticipationPill.module.css diff --git a/app/features/user-page/components/ParticipationPill.tsx b/apps/web-react/app/features/user-page/components/ParticipationPill.tsx similarity index 100% rename from app/features/user-page/components/ParticipationPill.tsx rename to apps/web-react/app/features/user-page/components/ParticipationPill.tsx diff --git a/app/features/user-page/components/ResultsFiltersBar.tsx b/apps/web-react/app/features/user-page/components/ResultsFiltersBar.tsx similarity index 100% rename from app/features/user-page/components/ResultsFiltersBar.tsx rename to apps/web-react/app/features/user-page/components/ResultsFiltersBar.tsx diff --git a/app/features/user-page/components/SubPageHeader.module.css b/apps/web-react/app/features/user-page/components/SubPageHeader.module.css similarity index 100% rename from app/features/user-page/components/SubPageHeader.module.css rename to apps/web-react/app/features/user-page/components/SubPageHeader.module.css diff --git a/app/features/user-page/components/SubPageHeader.tsx b/apps/web-react/app/features/user-page/components/SubPageHeader.tsx similarity index 100% rename from app/features/user-page/components/SubPageHeader.tsx rename to apps/web-react/app/features/user-page/components/SubPageHeader.tsx diff --git a/app/features/user-page/components/UserPageIconNav.module.css b/apps/web-react/app/features/user-page/components/UserPageIconNav.module.css similarity index 100% rename from app/features/user-page/components/UserPageIconNav.module.css rename to apps/web-react/app/features/user-page/components/UserPageIconNav.module.css diff --git a/app/features/user-page/components/UserPageIconNav.tsx b/apps/web-react/app/features/user-page/components/UserPageIconNav.tsx similarity index 100% rename from app/features/user-page/components/UserPageIconNav.tsx rename to apps/web-react/app/features/user-page/components/UserPageIconNav.tsx diff --git a/app/features/user-page/components/UserResultsTable.tsx b/apps/web-react/app/features/user-page/components/UserResultsTable.tsx similarity index 100% rename from app/features/user-page/components/UserResultsTable.tsx rename to apps/web-react/app/features/user-page/components/UserResultsTable.tsx diff --git a/app/features/user-page/components/Widget.module.css b/apps/web-react/app/features/user-page/components/Widget.module.css similarity index 100% rename from app/features/user-page/components/Widget.module.css rename to apps/web-react/app/features/user-page/components/Widget.module.css diff --git a/app/features/user-page/components/Widget.tsx b/apps/web-react/app/features/user-page/components/Widget.tsx similarity index 100% rename from app/features/user-page/components/Widget.tsx rename to apps/web-react/app/features/user-page/components/Widget.tsx diff --git a/app/features/user-page/components/WidgetSettingsForm.tsx b/apps/web-react/app/features/user-page/components/WidgetSettingsForm.tsx similarity index 100% rename from app/features/user-page/components/WidgetSettingsForm.tsx rename to apps/web-react/app/features/user-page/components/WidgetSettingsForm.tsx diff --git a/app/features/user-page/core/badge-sorting.server.test.ts b/apps/web-react/app/features/user-page/core/badge-sorting.server.test.ts similarity index 100% rename from app/features/user-page/core/badge-sorting.server.test.ts rename to apps/web-react/app/features/user-page/core/badge-sorting.server.test.ts diff --git a/app/features/user-page/core/badge-sorting.server.ts b/apps/web-react/app/features/user-page/core/badge-sorting.server.ts similarity index 100% rename from app/features/user-page/core/badge-sorting.server.ts rename to apps/web-react/app/features/user-page/core/badge-sorting.server.ts diff --git a/app/features/user-page/core/build-sorting.server.test.ts b/apps/web-react/app/features/user-page/core/build-sorting.server.test.ts similarity index 100% rename from app/features/user-page/core/build-sorting.server.test.ts rename to apps/web-react/app/features/user-page/core/build-sorting.server.test.ts diff --git a/app/features/user-page/core/build-sorting.server.ts b/apps/web-react/app/features/user-page/core/build-sorting.server.ts similarity index 100% rename from app/features/user-page/core/build-sorting.server.ts rename to apps/web-react/app/features/user-page/core/build-sorting.server.ts diff --git a/app/features/user-page/core/trophy-sorting.server.ts b/apps/web-react/app/features/user-page/core/trophy-sorting.server.ts similarity index 100% rename from app/features/user-page/core/trophy-sorting.server.ts rename to apps/web-react/app/features/user-page/core/trophy-sorting.server.ts diff --git a/app/features/user-page/core/widgets/leaderboard-cache.test.ts b/apps/web-react/app/features/user-page/core/widgets/leaderboard-cache.test.ts similarity index 100% rename from app/features/user-page/core/widgets/leaderboard-cache.test.ts rename to apps/web-react/app/features/user-page/core/widgets/leaderboard-cache.test.ts diff --git a/app/features/user-page/core/widgets/portfolio-loaders.server.ts b/apps/web-react/app/features/user-page/core/widgets/portfolio-loaders.server.ts similarity index 100% rename from app/features/user-page/core/widgets/portfolio-loaders.server.ts rename to apps/web-react/app/features/user-page/core/widgets/portfolio-loaders.server.ts diff --git a/app/features/user-page/core/widgets/portfolio.ts b/apps/web-react/app/features/user-page/core/widgets/portfolio.ts similarity index 100% rename from app/features/user-page/core/widgets/portfolio.ts rename to apps/web-react/app/features/user-page/core/widgets/portfolio.ts diff --git a/app/features/user-page/core/widgets/types.ts b/apps/web-react/app/features/user-page/core/widgets/types.ts similarity index 100% rename from app/features/user-page/core/widgets/types.ts rename to apps/web-react/app/features/user-page/core/widgets/types.ts diff --git a/app/features/user-page/core/widgets/utils.server.ts b/apps/web-react/app/features/user-page/core/widgets/utils.server.ts similarity index 100% rename from app/features/user-page/core/widgets/utils.server.ts rename to apps/web-react/app/features/user-page/core/widgets/utils.server.ts diff --git a/app/features/user-page/core/widgets/widget-form-schemas.ts b/apps/web-react/app/features/user-page/core/widgets/widget-form-schemas.ts similarity index 100% rename from app/features/user-page/core/widgets/widget-form-schemas.ts rename to apps/web-react/app/features/user-page/core/widgets/widget-form-schemas.ts diff --git a/app/features/user-page/custom-theme-json.server.test.ts b/apps/web-react/app/features/user-page/custom-theme-json.server.test.ts similarity index 100% rename from app/features/user-page/custom-theme-json.server.test.ts rename to apps/web-react/app/features/user-page/custom-theme-json.server.test.ts diff --git a/app/features/user-page/in-game-name.test.ts b/apps/web-react/app/features/user-page/in-game-name.test.ts similarity index 100% rename from app/features/user-page/in-game-name.test.ts rename to apps/web-react/app/features/user-page/in-game-name.test.ts diff --git a/app/features/user-page/in-game-name.ts b/apps/web-react/app/features/user-page/in-game-name.ts similarity index 100% rename from app/features/user-page/in-game-name.ts rename to apps/web-react/app/features/user-page/in-game-name.ts diff --git a/app/features/user-page/loaders/u.$identifier.admin.server.ts b/apps/web-react/app/features/user-page/loaders/u.$identifier.admin.server.ts similarity index 100% rename from app/features/user-page/loaders/u.$identifier.admin.server.ts rename to apps/web-react/app/features/user-page/loaders/u.$identifier.admin.server.ts diff --git a/app/features/user-page/loaders/u.$identifier.art.server.ts b/apps/web-react/app/features/user-page/loaders/u.$identifier.art.server.ts similarity index 100% rename from app/features/user-page/loaders/u.$identifier.art.server.ts rename to apps/web-react/app/features/user-page/loaders/u.$identifier.art.server.ts diff --git a/app/features/user-page/loaders/u.$identifier.builds.new.server.ts b/apps/web-react/app/features/user-page/loaders/u.$identifier.builds.new.server.ts similarity index 100% rename from app/features/user-page/loaders/u.$identifier.builds.new.server.ts rename to apps/web-react/app/features/user-page/loaders/u.$identifier.builds.new.server.ts diff --git a/app/features/user-page/loaders/u.$identifier.builds.server.ts b/apps/web-react/app/features/user-page/loaders/u.$identifier.builds.server.ts similarity index 100% rename from app/features/user-page/loaders/u.$identifier.builds.server.ts rename to apps/web-react/app/features/user-page/loaders/u.$identifier.builds.server.ts diff --git a/app/features/user-page/loaders/u.$identifier.edit-widgets.server.ts b/apps/web-react/app/features/user-page/loaders/u.$identifier.edit-widgets.server.ts similarity index 100% rename from app/features/user-page/loaders/u.$identifier.edit-widgets.server.ts rename to apps/web-react/app/features/user-page/loaders/u.$identifier.edit-widgets.server.ts diff --git a/app/features/user-page/loaders/u.$identifier.edit.server.ts b/apps/web-react/app/features/user-page/loaders/u.$identifier.edit.server.ts similarity index 100% rename from app/features/user-page/loaders/u.$identifier.edit.server.ts rename to apps/web-react/app/features/user-page/loaders/u.$identifier.edit.server.ts diff --git a/app/features/user-page/loaders/u.$identifier.index.server.ts b/apps/web-react/app/features/user-page/loaders/u.$identifier.index.server.ts similarity index 100% rename from app/features/user-page/loaders/u.$identifier.index.server.ts rename to apps/web-react/app/features/user-page/loaders/u.$identifier.index.server.ts diff --git a/app/features/user-page/loaders/u.$identifier.results.server.ts b/apps/web-react/app/features/user-page/loaders/u.$identifier.results.server.ts similarity index 100% rename from app/features/user-page/loaders/u.$identifier.results.server.ts rename to apps/web-react/app/features/user-page/loaders/u.$identifier.results.server.ts diff --git a/app/features/user-page/loaders/u.$identifier.seasons.index.server.ts b/apps/web-react/app/features/user-page/loaders/u.$identifier.seasons.index.server.ts similarity index 100% rename from app/features/user-page/loaders/u.$identifier.seasons.index.server.ts rename to apps/web-react/app/features/user-page/loaders/u.$identifier.seasons.index.server.ts diff --git a/app/features/user-page/loaders/u.$identifier.seasons.server.ts b/apps/web-react/app/features/user-page/loaders/u.$identifier.seasons.server.ts similarity index 100% rename from app/features/user-page/loaders/u.$identifier.seasons.server.ts rename to apps/web-react/app/features/user-page/loaders/u.$identifier.seasons.server.ts diff --git a/app/features/user-page/loaders/u.$identifier.seasons.stats.server.ts b/apps/web-react/app/features/user-page/loaders/u.$identifier.seasons.stats.server.ts similarity index 100% rename from app/features/user-page/loaders/u.$identifier.seasons.stats.server.ts rename to apps/web-react/app/features/user-page/loaders/u.$identifier.seasons.stats.server.ts diff --git a/app/features/user-page/loaders/u.$identifier.seasons.summary-graphic.server.ts b/apps/web-react/app/features/user-page/loaders/u.$identifier.seasons.summary-graphic.server.ts similarity index 100% rename from app/features/user-page/loaders/u.$identifier.seasons.summary-graphic.server.ts rename to apps/web-react/app/features/user-page/loaders/u.$identifier.seasons.summary-graphic.server.ts diff --git a/app/features/user-page/loaders/u.$identifier.server.ts b/apps/web-react/app/features/user-page/loaders/u.$identifier.server.ts similarity index 100% rename from app/features/user-page/loaders/u.$identifier.server.ts rename to apps/web-react/app/features/user-page/loaders/u.$identifier.server.ts diff --git a/app/features/user-page/loaders/u.$identifier.vods.server.ts b/apps/web-react/app/features/user-page/loaders/u.$identifier.vods.server.ts similarity index 100% rename from app/features/user-page/loaders/u.$identifier.vods.server.ts rename to apps/web-react/app/features/user-page/loaders/u.$identifier.vods.server.ts diff --git a/app/features/user-page/routes/short.$customUrl.ts b/apps/web-react/app/features/user-page/routes/short.$customUrl.ts similarity index 100% rename from app/features/user-page/routes/short.$customUrl.ts rename to apps/web-react/app/features/user-page/routes/short.$customUrl.ts diff --git a/app/features/user-page/routes/u.$identifier.admin.tsx b/apps/web-react/app/features/user-page/routes/u.$identifier.admin.tsx similarity index 100% rename from app/features/user-page/routes/u.$identifier.admin.tsx rename to apps/web-react/app/features/user-page/routes/u.$identifier.admin.tsx diff --git a/app/features/user-page/routes/u.$identifier.art.tsx b/apps/web-react/app/features/user-page/routes/u.$identifier.art.tsx similarity index 100% rename from app/features/user-page/routes/u.$identifier.art.tsx rename to apps/web-react/app/features/user-page/routes/u.$identifier.art.tsx diff --git a/app/features/user-page/routes/u.$identifier.builds.module.css b/apps/web-react/app/features/user-page/routes/u.$identifier.builds.module.css similarity index 100% rename from app/features/user-page/routes/u.$identifier.builds.module.css rename to apps/web-react/app/features/user-page/routes/u.$identifier.builds.module.css diff --git a/app/features/user-page/routes/u.$identifier.builds.new.tsx b/apps/web-react/app/features/user-page/routes/u.$identifier.builds.new.tsx similarity index 100% rename from app/features/user-page/routes/u.$identifier.builds.new.tsx rename to apps/web-react/app/features/user-page/routes/u.$identifier.builds.new.tsx diff --git a/app/features/user-page/routes/u.$identifier.builds.tsx b/apps/web-react/app/features/user-page/routes/u.$identifier.builds.tsx similarity index 100% rename from app/features/user-page/routes/u.$identifier.builds.tsx rename to apps/web-react/app/features/user-page/routes/u.$identifier.builds.tsx diff --git a/app/features/user-page/routes/u.$identifier.edit-widgets.module.css b/apps/web-react/app/features/user-page/routes/u.$identifier.edit-widgets.module.css similarity index 100% rename from app/features/user-page/routes/u.$identifier.edit-widgets.module.css rename to apps/web-react/app/features/user-page/routes/u.$identifier.edit-widgets.module.css diff --git a/app/features/user-page/routes/u.$identifier.edit-widgets.tsx b/apps/web-react/app/features/user-page/routes/u.$identifier.edit-widgets.tsx similarity index 100% rename from app/features/user-page/routes/u.$identifier.edit-widgets.tsx rename to apps/web-react/app/features/user-page/routes/u.$identifier.edit-widgets.tsx diff --git a/app/features/user-page/routes/u.$identifier.edit.test.ts b/apps/web-react/app/features/user-page/routes/u.$identifier.edit.test.ts similarity index 100% rename from app/features/user-page/routes/u.$identifier.edit.test.ts rename to apps/web-react/app/features/user-page/routes/u.$identifier.edit.test.ts diff --git a/app/features/user-page/routes/u.$identifier.edit.tsx b/apps/web-react/app/features/user-page/routes/u.$identifier.edit.tsx similarity index 100% rename from app/features/user-page/routes/u.$identifier.edit.tsx rename to apps/web-react/app/features/user-page/routes/u.$identifier.edit.tsx diff --git a/app/features/user-page/routes/u.$identifier.index.tsx b/apps/web-react/app/features/user-page/routes/u.$identifier.index.tsx similarity index 100% rename from app/features/user-page/routes/u.$identifier.index.tsx rename to apps/web-react/app/features/user-page/routes/u.$identifier.index.tsx diff --git a/app/features/user-page/routes/u.$identifier.module.css b/apps/web-react/app/features/user-page/routes/u.$identifier.module.css similarity index 100% rename from app/features/user-page/routes/u.$identifier.module.css rename to apps/web-react/app/features/user-page/routes/u.$identifier.module.css diff --git a/app/features/user-page/routes/u.$identifier.results.highlights.tsx b/apps/web-react/app/features/user-page/routes/u.$identifier.results.highlights.tsx similarity index 100% rename from app/features/user-page/routes/u.$identifier.results.highlights.tsx rename to apps/web-react/app/features/user-page/routes/u.$identifier.results.highlights.tsx diff --git a/app/features/user-page/routes/u.$identifier.results.tsx b/apps/web-react/app/features/user-page/routes/u.$identifier.results.tsx similarity index 100% rename from app/features/user-page/routes/u.$identifier.results.tsx rename to apps/web-react/app/features/user-page/routes/u.$identifier.results.tsx diff --git a/app/features/user-page/routes/u.$identifier.seasons.index.tsx b/apps/web-react/app/features/user-page/routes/u.$identifier.seasons.index.tsx similarity index 100% rename from app/features/user-page/routes/u.$identifier.seasons.index.tsx rename to apps/web-react/app/features/user-page/routes/u.$identifier.seasons.index.tsx diff --git a/app/features/user-page/routes/u.$identifier.seasons.stats.tsx b/apps/web-react/app/features/user-page/routes/u.$identifier.seasons.stats.tsx similarity index 100% rename from app/features/user-page/routes/u.$identifier.seasons.stats.tsx rename to apps/web-react/app/features/user-page/routes/u.$identifier.seasons.stats.tsx diff --git a/app/features/user-page/routes/u.$identifier.seasons.summary-graphic.ts b/apps/web-react/app/features/user-page/routes/u.$identifier.seasons.summary-graphic.ts similarity index 100% rename from app/features/user-page/routes/u.$identifier.seasons.summary-graphic.ts rename to apps/web-react/app/features/user-page/routes/u.$identifier.seasons.summary-graphic.ts diff --git a/app/features/user-page/routes/u.$identifier.seasons.tsx b/apps/web-react/app/features/user-page/routes/u.$identifier.seasons.tsx similarity index 100% rename from app/features/user-page/routes/u.$identifier.seasons.tsx rename to apps/web-react/app/features/user-page/routes/u.$identifier.seasons.tsx diff --git a/app/features/user-page/routes/u.$identifier.tsx b/apps/web-react/app/features/user-page/routes/u.$identifier.tsx similarity index 100% rename from app/features/user-page/routes/u.$identifier.tsx rename to apps/web-react/app/features/user-page/routes/u.$identifier.tsx diff --git a/app/features/user-page/routes/u.$identifier.vods.tsx b/apps/web-react/app/features/user-page/routes/u.$identifier.vods.tsx similarity index 100% rename from app/features/user-page/routes/u.$identifier.vods.tsx rename to apps/web-react/app/features/user-page/routes/u.$identifier.vods.tsx diff --git a/app/features/user-page/user-page-constants.ts b/apps/web-react/app/features/user-page/user-page-constants.ts similarity index 100% rename from app/features/user-page/user-page-constants.ts rename to apps/web-react/app/features/user-page/user-page-constants.ts diff --git a/app/features/user-page/user-page-schemas.server.ts b/apps/web-react/app/features/user-page/user-page-schemas.server.ts similarity index 100% rename from app/features/user-page/user-page-schemas.server.ts rename to apps/web-react/app/features/user-page/user-page-schemas.server.ts diff --git a/app/features/user-page/user-page-schemas.ts b/apps/web-react/app/features/user-page/user-page-schemas.ts similarity index 100% rename from app/features/user-page/user-page-schemas.ts rename to apps/web-react/app/features/user-page/user-page-schemas.ts diff --git a/app/features/user-page/user-page-search-params.test.ts b/apps/web-react/app/features/user-page/user-page-search-params.test.ts similarity index 100% rename from app/features/user-page/user-page-search-params.test.ts rename to apps/web-react/app/features/user-page/user-page-search-params.test.ts diff --git a/app/features/user-page/user-page-search-params.ts b/apps/web-react/app/features/user-page/user-page-search-params.ts similarity index 100% rename from app/features/user-page/user-page-search-params.ts rename to apps/web-react/app/features/user-page/user-page-search-params.ts diff --git a/app/features/user-page/user-page-urls.ts b/apps/web-react/app/features/user-page/user-page-urls.ts similarity index 100% rename from app/features/user-page/user-page-urls.ts rename to apps/web-react/app/features/user-page/user-page-urls.ts diff --git a/app/features/user-page/user-page.module.css b/apps/web-react/app/features/user-page/user-page.module.css similarity index 100% rename from app/features/user-page/user-page.module.css rename to apps/web-react/app/features/user-page/user-page.module.css diff --git a/app/features/user-report/UserReportRepository.server.ts b/apps/web-react/app/features/user-report/UserReportRepository.server.ts similarity index 100% rename from app/features/user-report/UserReportRepository.server.ts rename to apps/web-react/app/features/user-report/UserReportRepository.server.ts diff --git a/app/features/user-report/components/ReportUserDialog.tsx b/apps/web-react/app/features/user-report/components/ReportUserDialog.tsx similarity index 100% rename from app/features/user-report/components/ReportUserDialog.tsx rename to apps/web-react/app/features/user-report/components/ReportUserDialog.tsx diff --git a/app/features/user-report/components/ReportsBarChart.module.css b/apps/web-react/app/features/user-report/components/ReportsBarChart.module.css similarity index 100% rename from app/features/user-report/components/ReportsBarChart.module.css rename to apps/web-react/app/features/user-report/components/ReportsBarChart.module.css diff --git a/app/features/user-report/components/ReportsBarChart.tsx b/apps/web-react/app/features/user-report/components/ReportsBarChart.tsx similarity index 100% rename from app/features/user-report/components/ReportsBarChart.tsx rename to apps/web-react/app/features/user-report/components/ReportsBarChart.tsx diff --git a/app/features/user-report/core/discord-webhook.server.ts b/apps/web-react/app/features/user-report/core/discord-webhook.server.ts similarity index 100% rename from app/features/user-report/core/discord-webhook.server.ts rename to apps/web-react/app/features/user-report/core/discord-webhook.server.ts diff --git a/app/features/user-report/routes/user-report.$id.ts b/apps/web-react/app/features/user-report/routes/user-report.$id.ts similarity index 100% rename from app/features/user-report/routes/user-report.$id.ts rename to apps/web-react/app/features/user-report/routes/user-report.$id.ts diff --git a/app/features/user-report/user-report-constants.ts b/apps/web-react/app/features/user-report/user-report-constants.ts similarity index 100% rename from app/features/user-report/user-report-constants.ts rename to apps/web-react/app/features/user-report/user-report-constants.ts diff --git a/app/features/user-report/user-report-schemas.server.ts b/apps/web-react/app/features/user-report/user-report-schemas.server.ts similarity index 100% rename from app/features/user-report/user-report-schemas.server.ts rename to apps/web-react/app/features/user-report/user-report-schemas.server.ts diff --git a/app/features/user-report/user-report-schemas.ts b/apps/web-react/app/features/user-report/user-report-schemas.ts similarity index 100% rename from app/features/user-report/user-report-schemas.ts rename to apps/web-react/app/features/user-report/user-report-schemas.ts diff --git a/app/features/user-search/routes/u.tsx b/apps/web-react/app/features/user-search/routes/u.tsx similarity index 100% rename from app/features/user-search/routes/u.tsx rename to apps/web-react/app/features/user-search/routes/u.tsx diff --git a/app/features/vods/VodRepository.server.test.ts b/apps/web-react/app/features/vods/VodRepository.server.test.ts similarity index 100% rename from app/features/vods/VodRepository.server.test.ts rename to apps/web-react/app/features/vods/VodRepository.server.test.ts diff --git a/app/features/vods/VodRepository.server.ts b/apps/web-react/app/features/vods/VodRepository.server.ts similarity index 100% rename from app/features/vods/VodRepository.server.ts rename to apps/web-react/app/features/vods/VodRepository.server.ts diff --git a/app/features/vods/actions/vods.$id.server.ts b/apps/web-react/app/features/vods/actions/vods.$id.server.ts similarity index 100% rename from app/features/vods/actions/vods.$id.server.ts rename to apps/web-react/app/features/vods/actions/vods.$id.server.ts diff --git a/app/features/vods/actions/vods.new.server.ts b/apps/web-react/app/features/vods/actions/vods.new.server.ts similarity index 100% rename from app/features/vods/actions/vods.new.server.ts rename to apps/web-react/app/features/vods/actions/vods.new.server.ts diff --git a/app/features/vods/components/VodListing.module.css b/apps/web-react/app/features/vods/components/VodListing.module.css similarity index 100% rename from app/features/vods/components/VodListing.module.css rename to apps/web-react/app/features/vods/components/VodListing.module.css diff --git a/app/features/vods/components/VodListing.tsx b/apps/web-react/app/features/vods/components/VodListing.tsx similarity index 100% rename from app/features/vods/components/VodListing.tsx rename to apps/web-react/app/features/vods/components/VodListing.tsx diff --git a/app/features/vods/components/VodPov.tsx b/apps/web-react/app/features/vods/components/VodPov.tsx similarity index 100% rename from app/features/vods/components/VodPov.tsx rename to apps/web-react/app/features/vods/components/VodPov.tsx diff --git a/app/features/vods/loaders/vods.$id.server.ts b/apps/web-react/app/features/vods/loaders/vods.$id.server.ts similarity index 100% rename from app/features/vods/loaders/vods.$id.server.ts rename to apps/web-react/app/features/vods/loaders/vods.$id.server.ts diff --git a/app/features/vods/loaders/vods.new.server.ts b/apps/web-react/app/features/vods/loaders/vods.new.server.ts similarity index 100% rename from app/features/vods/loaders/vods.new.server.ts rename to apps/web-react/app/features/vods/loaders/vods.new.server.ts diff --git a/app/features/vods/loaders/vods.server.ts b/apps/web-react/app/features/vods/loaders/vods.server.ts similarity index 100% rename from app/features/vods/loaders/vods.server.ts rename to apps/web-react/app/features/vods/loaders/vods.server.ts diff --git a/app/features/vods/routes/vods.$id.module.css b/apps/web-react/app/features/vods/routes/vods.$id.module.css similarity index 100% rename from app/features/vods/routes/vods.$id.module.css rename to apps/web-react/app/features/vods/routes/vods.$id.module.css diff --git a/app/features/vods/routes/vods.$id.tsx b/apps/web-react/app/features/vods/routes/vods.$id.tsx similarity index 100% rename from app/features/vods/routes/vods.$id.tsx rename to apps/web-react/app/features/vods/routes/vods.$id.tsx diff --git a/app/features/vods/routes/vods.module.css b/apps/web-react/app/features/vods/routes/vods.module.css similarity index 100% rename from app/features/vods/routes/vods.module.css rename to apps/web-react/app/features/vods/routes/vods.module.css diff --git a/app/features/vods/routes/vods.new.browser.test.tsx b/apps/web-react/app/features/vods/routes/vods.new.browser.test.tsx similarity index 100% rename from app/features/vods/routes/vods.new.browser.test.tsx rename to apps/web-react/app/features/vods/routes/vods.new.browser.test.tsx diff --git a/app/features/vods/routes/vods.new.module.css b/apps/web-react/app/features/vods/routes/vods.new.module.css similarity index 100% rename from app/features/vods/routes/vods.new.module.css rename to apps/web-react/app/features/vods/routes/vods.new.module.css diff --git a/app/features/vods/routes/vods.new.test.ts b/apps/web-react/app/features/vods/routes/vods.new.test.ts similarity index 100% rename from app/features/vods/routes/vods.new.test.ts rename to apps/web-react/app/features/vods/routes/vods.new.test.ts diff --git a/app/features/vods/routes/vods.new.tsx b/apps/web-react/app/features/vods/routes/vods.new.tsx similarity index 100% rename from app/features/vods/routes/vods.new.tsx rename to apps/web-react/app/features/vods/routes/vods.new.tsx diff --git a/app/features/vods/routes/vods.tsx b/apps/web-react/app/features/vods/routes/vods.tsx similarity index 100% rename from app/features/vods/routes/vods.tsx rename to apps/web-react/app/features/vods/routes/vods.tsx diff --git a/app/features/vods/vods-constants.ts b/apps/web-react/app/features/vods/vods-constants.ts similarity index 100% rename from app/features/vods/vods-constants.ts rename to apps/web-react/app/features/vods/vods-constants.ts diff --git a/app/features/vods/vods-schemas.server.ts b/apps/web-react/app/features/vods/vods-schemas.server.ts similarity index 100% rename from app/features/vods/vods-schemas.server.ts rename to apps/web-react/app/features/vods/vods-schemas.server.ts diff --git a/app/features/vods/vods-schemas.ts b/apps/web-react/app/features/vods/vods-schemas.ts similarity index 100% rename from app/features/vods/vods-schemas.ts rename to apps/web-react/app/features/vods/vods-schemas.ts diff --git a/app/features/vods/vods-search-params.test.ts b/apps/web-react/app/features/vods/vods-search-params.test.ts similarity index 100% rename from app/features/vods/vods-search-params.test.ts rename to apps/web-react/app/features/vods/vods-search-params.test.ts diff --git a/app/features/vods/vods-search-params.ts b/apps/web-react/app/features/vods/vods-search-params.ts similarity index 100% rename from app/features/vods/vods-search-params.ts rename to apps/web-react/app/features/vods/vods-search-params.ts diff --git a/app/features/vods/vods-types.ts b/apps/web-react/app/features/vods/vods-types.ts similarity index 100% rename from app/features/vods/vods-types.ts rename to apps/web-react/app/features/vods/vods-types.ts diff --git a/app/features/vods/vods-urls.ts b/apps/web-react/app/features/vods/vods-urls.ts similarity index 100% rename from app/features/vods/vods-urls.ts rename to apps/web-react/app/features/vods/vods-urls.ts diff --git a/app/features/vods/vods-utils.test.ts b/apps/web-react/app/features/vods/vods-utils.test.ts similarity index 100% rename from app/features/vods/vods-utils.test.ts rename to apps/web-react/app/features/vods/vods-utils.test.ts diff --git a/app/features/vods/vods-utils.ts b/apps/web-react/app/features/vods/vods-utils.ts similarity index 100% rename from app/features/vods/vods-utils.ts rename to apps/web-react/app/features/vods/vods-utils.ts diff --git a/app/form/FormField.tsx b/apps/web-react/app/form/FormField.tsx similarity index 100% rename from app/form/FormField.tsx rename to apps/web-react/app/form/FormField.tsx diff --git a/app/form/SendouForm.browser.test.tsx b/apps/web-react/app/form/SendouForm.browser.test.tsx similarity index 100% rename from app/form/SendouForm.browser.test.tsx rename to apps/web-react/app/form/SendouForm.browser.test.tsx diff --git a/app/form/SendouForm.module.css b/apps/web-react/app/form/SendouForm.module.css similarity index 100% rename from app/form/SendouForm.module.css rename to apps/web-react/app/form/SendouForm.module.css diff --git a/app/form/SendouForm.tsx b/apps/web-react/app/form/SendouForm.tsx similarity index 100% rename from app/form/SendouForm.tsx rename to apps/web-react/app/form/SendouForm.tsx diff --git a/app/form/UnsavedChangesGuard.tsx b/apps/web-react/app/form/UnsavedChangesGuard.tsx similarity index 100% rename from app/form/UnsavedChangesGuard.tsx rename to apps/web-react/app/form/UnsavedChangesGuard.tsx diff --git a/app/form/fields.ts b/apps/web-react/app/form/fields.ts similarity index 100% rename from app/form/fields.ts rename to apps/web-react/app/form/fields.ts diff --git a/app/form/fields/ArrayFormField.module.css b/apps/web-react/app/form/fields/ArrayFormField.module.css similarity index 100% rename from app/form/fields/ArrayFormField.module.css rename to apps/web-react/app/form/fields/ArrayFormField.module.css diff --git a/app/form/fields/ArrayFormField.tsx b/apps/web-react/app/form/fields/ArrayFormField.tsx similarity index 100% rename from app/form/fields/ArrayFormField.tsx rename to apps/web-react/app/form/fields/ArrayFormField.tsx diff --git a/app/form/fields/BadgesFormField.tsx b/apps/web-react/app/form/fields/BadgesFormField.tsx similarity index 100% rename from app/form/fields/BadgesFormField.tsx rename to apps/web-react/app/form/fields/BadgesFormField.tsx diff --git a/app/form/fields/DatetimeFormField.tsx b/apps/web-react/app/form/fields/DatetimeFormField.tsx similarity index 100% rename from app/form/fields/DatetimeFormField.tsx rename to apps/web-react/app/form/fields/DatetimeFormField.tsx diff --git a/app/form/fields/DualSelectFormField.tsx b/apps/web-react/app/form/fields/DualSelectFormField.tsx similarity index 100% rename from app/form/fields/DualSelectFormField.tsx rename to apps/web-react/app/form/fields/DualSelectFormField.tsx diff --git a/app/form/fields/FieldsetFormField.tsx b/apps/web-react/app/form/fields/FieldsetFormField.tsx similarity index 100% rename from app/form/fields/FieldsetFormField.tsx rename to apps/web-react/app/form/fields/FieldsetFormField.tsx diff --git a/app/form/fields/FormFieldWrapper.module.css b/apps/web-react/app/form/fields/FormFieldWrapper.module.css similarity index 100% rename from app/form/fields/FormFieldWrapper.module.css rename to apps/web-react/app/form/fields/FormFieldWrapper.module.css diff --git a/app/form/fields/FormFieldWrapper.tsx b/apps/web-react/app/form/fields/FormFieldWrapper.tsx similarity index 100% rename from app/form/fields/FormFieldWrapper.tsx rename to apps/web-react/app/form/fields/FormFieldWrapper.tsx diff --git a/app/form/fields/ImageFormField.module.css b/apps/web-react/app/form/fields/ImageFormField.module.css similarity index 100% rename from app/form/fields/ImageFormField.module.css rename to apps/web-react/app/form/fields/ImageFormField.module.css diff --git a/app/form/fields/ImageFormField.tsx b/apps/web-react/app/form/fields/ImageFormField.tsx similarity index 100% rename from app/form/fields/ImageFormField.tsx rename to apps/web-react/app/form/fields/ImageFormField.tsx diff --git a/app/form/fields/InGameNameFormField.tsx b/apps/web-react/app/form/fields/InGameNameFormField.tsx similarity index 100% rename from app/form/fields/InGameNameFormField.tsx rename to apps/web-react/app/form/fields/InGameNameFormField.tsx diff --git a/app/form/fields/InputFormField.tsx b/apps/web-react/app/form/fields/InputFormField.tsx similarity index 100% rename from app/form/fields/InputFormField.tsx rename to apps/web-react/app/form/fields/InputFormField.tsx diff --git a/app/form/fields/InputGroupFormField.tsx b/apps/web-react/app/form/fields/InputGroupFormField.tsx similarity index 100% rename from app/form/fields/InputGroupFormField.tsx rename to apps/web-react/app/form/fields/InputGroupFormField.tsx diff --git a/app/form/fields/SelectFormField.module.css b/apps/web-react/app/form/fields/SelectFormField.module.css similarity index 100% rename from app/form/fields/SelectFormField.module.css rename to apps/web-react/app/form/fields/SelectFormField.module.css diff --git a/app/form/fields/SelectFormField.tsx b/apps/web-react/app/form/fields/SelectFormField.tsx similarity index 100% rename from app/form/fields/SelectFormField.tsx rename to apps/web-react/app/form/fields/SelectFormField.tsx diff --git a/app/form/fields/StageSelectFormField.module.css b/apps/web-react/app/form/fields/StageSelectFormField.module.css similarity index 100% rename from app/form/fields/StageSelectFormField.module.css rename to apps/web-react/app/form/fields/StageSelectFormField.module.css diff --git a/app/form/fields/StageSelectFormField.tsx b/apps/web-react/app/form/fields/StageSelectFormField.tsx similarity index 100% rename from app/form/fields/StageSelectFormField.tsx rename to apps/web-react/app/form/fields/StageSelectFormField.tsx diff --git a/app/form/fields/SwitchFormField.tsx b/apps/web-react/app/form/fields/SwitchFormField.tsx similarity index 100% rename from app/form/fields/SwitchFormField.tsx rename to apps/web-react/app/form/fields/SwitchFormField.tsx diff --git a/app/form/fields/TeamSearchFormField.tsx b/apps/web-react/app/form/fields/TeamSearchFormField.tsx similarity index 100% rename from app/form/fields/TeamSearchFormField.tsx rename to apps/web-react/app/form/fields/TeamSearchFormField.tsx diff --git a/app/form/fields/TextareaFormField.tsx b/apps/web-react/app/form/fields/TextareaFormField.tsx similarity index 100% rename from app/form/fields/TextareaFormField.tsx rename to apps/web-react/app/form/fields/TextareaFormField.tsx diff --git a/app/form/fields/TimeRangeFormField.tsx b/apps/web-react/app/form/fields/TimeRangeFormField.tsx similarity index 100% rename from app/form/fields/TimeRangeFormField.tsx rename to apps/web-react/app/form/fields/TimeRangeFormField.tsx diff --git a/app/form/fields/TournamentSearchFormField.tsx b/apps/web-react/app/form/fields/TournamentSearchFormField.tsx similarity index 100% rename from app/form/fields/TournamentSearchFormField.tsx rename to apps/web-react/app/form/fields/TournamentSearchFormField.tsx diff --git a/app/form/fields/TrophiesFormField.tsx b/apps/web-react/app/form/fields/TrophiesFormField.tsx similarity index 100% rename from app/form/fields/TrophiesFormField.tsx rename to apps/web-react/app/form/fields/TrophiesFormField.tsx diff --git a/app/form/fields/UserSearchFormField.module.css b/apps/web-react/app/form/fields/UserSearchFormField.module.css similarity index 100% rename from app/form/fields/UserSearchFormField.module.css rename to apps/web-react/app/form/fields/UserSearchFormField.module.css diff --git a/app/form/fields/UserSearchFormField.tsx b/apps/web-react/app/form/fields/UserSearchFormField.tsx similarity index 100% rename from app/form/fields/UserSearchFormField.tsx rename to apps/web-react/app/form/fields/UserSearchFormField.tsx diff --git a/app/form/fields/WeaponPoolFormField.module.css b/apps/web-react/app/form/fields/WeaponPoolFormField.module.css similarity index 100% rename from app/form/fields/WeaponPoolFormField.module.css rename to apps/web-react/app/form/fields/WeaponPoolFormField.module.css diff --git a/app/form/fields/WeaponPoolFormField.tsx b/apps/web-react/app/form/fields/WeaponPoolFormField.tsx similarity index 100% rename from app/form/fields/WeaponPoolFormField.tsx rename to apps/web-react/app/form/fields/WeaponPoolFormField.tsx diff --git a/app/form/fields/WeaponSelectFormField.module.css b/apps/web-react/app/form/fields/WeaponSelectFormField.module.css similarity index 100% rename from app/form/fields/WeaponSelectFormField.module.css rename to apps/web-react/app/form/fields/WeaponSelectFormField.module.css diff --git a/app/form/fields/WeaponSelectFormField.tsx b/apps/web-react/app/form/fields/WeaponSelectFormField.tsx similarity index 100% rename from app/form/fields/WeaponSelectFormField.tsx rename to apps/web-react/app/form/fields/WeaponSelectFormField.tsx diff --git a/app/form/image-field.ts b/apps/web-react/app/form/image-field.ts similarity index 100% rename from app/form/image-field.ts rename to apps/web-react/app/form/image-field.ts diff --git a/app/form/index.ts b/apps/web-react/app/form/index.ts similarity index 100% rename from app/form/index.ts rename to apps/web-react/app/form/index.ts diff --git a/app/form/parse.server.ts b/apps/web-react/app/form/parse.server.ts similarity index 100% rename from app/form/parse.server.ts rename to apps/web-react/app/form/parse.server.ts diff --git a/app/form/types.ts b/apps/web-react/app/form/types.ts similarity index 100% rename from app/form/types.ts rename to apps/web-react/app/form/types.ts diff --git a/app/form/utils.test.ts b/apps/web-react/app/form/utils.test.ts similarity index 100% rename from app/form/utils.test.ts rename to apps/web-react/app/form/utils.test.ts diff --git a/app/form/utils.ts b/apps/web-react/app/form/utils.ts similarity index 100% rename from app/form/utils.ts rename to apps/web-react/app/form/utils.ts diff --git a/app/hooks/intl/useDateTimeFormat.ts b/apps/web-react/app/hooks/intl/useDateTimeFormat.ts similarity index 100% rename from app/hooks/intl/useDateTimeFormat.ts rename to apps/web-react/app/hooks/intl/useDateTimeFormat.ts diff --git a/app/hooks/intl/useFormatDistanceToNow.ts b/apps/web-react/app/hooks/intl/useFormatDistanceToNow.ts similarity index 100% rename from app/hooks/intl/useFormatDistanceToNow.ts rename to apps/web-react/app/hooks/intl/useFormatDistanceToNow.ts diff --git a/app/hooks/intl/useUserIntlPreference.ts b/apps/web-react/app/hooks/intl/useUserIntlPreference.ts similarity index 100% rename from app/hooks/intl/useUserIntlPreference.ts rename to apps/web-react/app/hooks/intl/useUserIntlPreference.ts diff --git a/app/hooks/swr.ts b/apps/web-react/app/hooks/swr.ts similarity index 100% rename from app/hooks/swr.ts rename to apps/web-react/app/hooks/swr.ts diff --git a/app/hooks/useActionSubmit.ts b/apps/web-react/app/hooks/useActionSubmit.ts similarity index 100% rename from app/hooks/useActionSubmit.ts rename to apps/web-react/app/hooks/useActionSubmit.ts diff --git a/app/hooks/useAutoRerender.ts b/apps/web-react/app/hooks/useAutoRerender.ts similarity index 100% rename from app/hooks/useAutoRerender.ts rename to apps/web-react/app/hooks/useAutoRerender.ts diff --git a/app/hooks/useBackgroundResource.ts b/apps/web-react/app/hooks/useBackgroundResource.ts similarity index 100% rename from app/hooks/useBackgroundResource.ts rename to apps/web-react/app/hooks/useBackgroundResource.ts diff --git a/app/hooks/useCopyToClipboard.ts b/apps/web-react/app/hooks/useCopyToClipboard.ts similarity index 100% rename from app/hooks/useCopyToClipboard.ts rename to apps/web-react/app/hooks/useCopyToClipboard.ts diff --git a/app/hooks/useDebounce.ts b/apps/web-react/app/hooks/useDebounce.ts similarity index 100% rename from app/hooks/useDebounce.ts rename to apps/web-react/app/hooks/useDebounce.ts diff --git a/app/hooks/useHydrated.ts b/apps/web-react/app/hooks/useHydrated.ts similarity index 100% rename from app/hooks/useHydrated.ts rename to apps/web-react/app/hooks/useHydrated.ts diff --git a/app/hooks/useIsomorphicLayoutEffect.ts b/apps/web-react/app/hooks/useIsomorphicLayoutEffect.ts similarity index 100% rename from app/hooks/useIsomorphicLayoutEffect.ts rename to apps/web-react/app/hooks/useIsomorphicLayoutEffect.ts diff --git a/app/hooks/useMainContentWidth.ts b/apps/web-react/app/hooks/useMainContentWidth.ts similarity index 100% rename from app/hooks/useMainContentWidth.ts rename to apps/web-react/app/hooks/useMainContentWidth.ts diff --git a/app/hooks/usePagination.ts b/apps/web-react/app/hooks/usePagination.ts similarity index 100% rename from app/hooks/usePagination.ts rename to apps/web-react/app/hooks/usePagination.ts diff --git a/app/hooks/usePrefersReducedMotion.ts b/apps/web-react/app/hooks/usePrefersReducedMotion.ts similarity index 100% rename from app/hooks/usePrefersReducedMotion.ts rename to apps/web-react/app/hooks/usePrefersReducedMotion.ts diff --git a/app/hooks/useRecentlyReportedWeapons.test.ts b/apps/web-react/app/hooks/useRecentlyReportedWeapons.test.ts similarity index 100% rename from app/hooks/useRecentlyReportedWeapons.test.ts rename to apps/web-react/app/hooks/useRecentlyReportedWeapons.test.ts diff --git a/app/hooks/useRecentlyReportedWeapons.ts b/apps/web-react/app/hooks/useRecentlyReportedWeapons.ts similarity index 100% rename from app/hooks/useRecentlyReportedWeapons.ts rename to apps/web-react/app/hooks/useRecentlyReportedWeapons.ts diff --git a/app/hooks/useReloadOnNewDeploy.ts b/apps/web-react/app/hooks/useReloadOnNewDeploy.ts similarity index 100% rename from app/hooks/useReloadOnNewDeploy.ts rename to apps/web-react/app/hooks/useReloadOnNewDeploy.ts diff --git a/app/hooks/useSearchParamPagination.ts b/apps/web-react/app/hooks/useSearchParamPagination.ts similarity index 100% rename from app/hooks/useSearchParamPagination.ts rename to apps/web-react/app/hooks/useSearchParamPagination.ts diff --git a/app/hooks/useSpoilerFree.test.ts b/apps/web-react/app/hooks/useSpoilerFree.test.ts similarity index 100% rename from app/hooks/useSpoilerFree.test.ts rename to apps/web-react/app/hooks/useSpoilerFree.test.ts diff --git a/app/hooks/useSpoilerFree.ts b/apps/web-react/app/hooks/useSpoilerFree.ts similarity index 100% rename from app/hooks/useSpoilerFree.ts rename to apps/web-react/app/hooks/useSpoilerFree.ts diff --git a/app/hooks/useThemeColors.ts b/apps/web-react/app/hooks/useThemeColors.ts similarity index 100% rename from app/hooks/useThemeColors.ts rename to apps/web-react/app/hooks/useThemeColors.ts diff --git a/app/hooks/useUnseenFriendRequests.test.ts b/apps/web-react/app/hooks/useUnseenFriendRequests.test.ts similarity index 100% rename from app/hooks/useUnseenFriendRequests.test.ts rename to apps/web-react/app/hooks/useUnseenFriendRequests.test.ts diff --git a/app/hooks/useUnseenFriendRequests.ts b/apps/web-react/app/hooks/useUnseenFriendRequests.ts similarity index 100% rename from app/hooks/useUnseenFriendRequests.ts rename to apps/web-react/app/hooks/useUnseenFriendRequests.ts diff --git a/app/hooks/useVisualViewportHeight.ts b/apps/web-react/app/hooks/useVisualViewportHeight.ts similarity index 100% rename from app/hooks/useVisualViewportHeight.ts rename to apps/web-react/app/hooks/useVisualViewportHeight.ts diff --git a/app/hooks/useWindowSize.ts b/apps/web-react/app/hooks/useWindowSize.ts similarity index 100% rename from app/hooks/useWindowSize.ts rename to apps/web-react/app/hooks/useWindowSize.ts diff --git a/app/modules/cache/index.test.ts b/apps/web-react/app/modules/cache/index.test.ts similarity index 100% rename from app/modules/cache/index.test.ts rename to apps/web-react/app/modules/cache/index.test.ts diff --git a/app/modules/cache/index.ts b/apps/web-react/app/modules/cache/index.ts similarity index 100% rename from app/modules/cache/index.ts rename to apps/web-react/app/modules/cache/index.ts diff --git a/app/modules/csv.test.ts b/apps/web-react/app/modules/csv.test.ts similarity index 100% rename from app/modules/csv.test.ts rename to apps/web-react/app/modules/csv.test.ts diff --git a/app/modules/csv.ts b/apps/web-react/app/modules/csv.ts similarity index 100% rename from app/modules/csv.ts rename to apps/web-react/app/modules/csv.ts diff --git a/app/modules/discord-webhook.server.ts b/apps/web-react/app/modules/discord-webhook.server.ts similarity index 100% rename from app/modules/discord-webhook.server.ts rename to apps/web-react/app/modules/discord-webhook.server.ts diff --git a/app/modules/i18n/InitialI18nStore.tsx b/apps/web-react/app/modules/i18n/InitialI18nStore.tsx similarity index 100% rename from app/modules/i18n/InitialI18nStore.tsx rename to apps/web-react/app/modules/i18n/InitialI18nStore.tsx diff --git a/app/modules/i18n/config.ts b/apps/web-react/app/modules/i18n/config.ts similarity index 100% rename from app/modules/i18n/config.ts rename to apps/web-react/app/modules/i18n/config.ts diff --git a/app/modules/i18n/i18next.server.ts b/apps/web-react/app/modules/i18n/i18next.server.ts similarity index 100% rename from app/modules/i18n/i18next.server.ts rename to apps/web-react/app/modules/i18n/i18next.server.ts diff --git a/app/modules/i18n/loader.ts b/apps/web-react/app/modules/i18n/loader.ts similarity index 100% rename from app/modules/i18n/loader.ts rename to apps/web-react/app/modules/i18n/loader.ts diff --git a/app/modules/i18n/resources.browser.ts b/apps/web-react/app/modules/i18n/resources.browser.ts similarity index 100% rename from app/modules/i18n/resources.browser.ts rename to apps/web-react/app/modules/i18n/resources.browser.ts diff --git a/app/modules/i18n/resources.server.ts b/apps/web-react/app/modules/i18n/resources.server.ts similarity index 100% rename from app/modules/i18n/resources.server.ts rename to apps/web-react/app/modules/i18n/resources.server.ts diff --git a/app/modules/i18n/useChangeLanguage.ts b/apps/web-react/app/modules/i18n/useChangeLanguage.ts similarity index 100% rename from app/modules/i18n/useChangeLanguage.ts rename to apps/web-react/app/modules/i18n/useChangeLanguage.ts diff --git a/app/modules/in-game-lists/abilities.ts b/apps/web-react/app/modules/in-game-lists/abilities.ts similarity index 100% rename from app/modules/in-game-lists/abilities.ts rename to apps/web-react/app/modules/in-game-lists/abilities.ts diff --git a/app/modules/in-game-lists/brand-ids.ts b/apps/web-react/app/modules/in-game-lists/brand-ids.ts similarity index 100% rename from app/modules/in-game-lists/brand-ids.ts rename to apps/web-react/app/modules/in-game-lists/brand-ids.ts diff --git a/app/modules/in-game-lists/game-badge-ids.ts b/apps/web-react/app/modules/in-game-lists/game-badge-ids.ts similarity index 100% rename from app/modules/in-game-lists/game-badge-ids.ts rename to apps/web-react/app/modules/in-game-lists/game-badge-ids.ts diff --git a/app/modules/in-game-lists/games.ts b/apps/web-react/app/modules/in-game-lists/games.ts similarity index 100% rename from app/modules/in-game-lists/games.ts rename to apps/web-react/app/modules/in-game-lists/games.ts diff --git a/app/modules/in-game-lists/gear-ids.ts b/apps/web-react/app/modules/in-game-lists/gear-ids.ts similarity index 100% rename from app/modules/in-game-lists/gear-ids.ts rename to apps/web-react/app/modules/in-game-lists/gear-ids.ts diff --git a/app/modules/in-game-lists/modes.ts b/apps/web-react/app/modules/in-game-lists/modes.ts similarity index 100% rename from app/modules/in-game-lists/modes.ts rename to apps/web-react/app/modules/in-game-lists/modes.ts diff --git a/app/modules/in-game-lists/stage-ids.ts b/apps/web-react/app/modules/in-game-lists/stage-ids.ts similarity index 100% rename from app/modules/in-game-lists/stage-ids.ts rename to apps/web-react/app/modules/in-game-lists/stage-ids.ts diff --git a/app/modules/in-game-lists/types.ts b/apps/web-react/app/modules/in-game-lists/types.ts similarity index 100% rename from app/modules/in-game-lists/types.ts rename to apps/web-react/app/modules/in-game-lists/types.ts diff --git a/app/modules/in-game-lists/utils.test.ts b/apps/web-react/app/modules/in-game-lists/utils.test.ts similarity index 100% rename from app/modules/in-game-lists/utils.test.ts rename to apps/web-react/app/modules/in-game-lists/utils.test.ts diff --git a/app/modules/in-game-lists/utils.ts b/apps/web-react/app/modules/in-game-lists/utils.ts similarity index 100% rename from app/modules/in-game-lists/utils.ts rename to apps/web-react/app/modules/in-game-lists/utils.ts diff --git a/app/modules/in-game-lists/weapon-alt-names.ts b/apps/web-react/app/modules/in-game-lists/weapon-alt-names.ts similarity index 100% rename from app/modules/in-game-lists/weapon-alt-names.ts rename to apps/web-react/app/modules/in-game-lists/weapon-alt-names.ts diff --git a/app/modules/in-game-lists/weapon-ids.test.ts b/apps/web-react/app/modules/in-game-lists/weapon-ids.test.ts similarity index 100% rename from app/modules/in-game-lists/weapon-ids.test.ts rename to apps/web-react/app/modules/in-game-lists/weapon-ids.test.ts diff --git a/app/modules/in-game-lists/weapon-ids.ts b/apps/web-react/app/modules/in-game-lists/weapon-ids.ts similarity index 100% rename from app/modules/in-game-lists/weapon-ids.ts rename to apps/web-react/app/modules/in-game-lists/weapon-ids.ts diff --git a/app/modules/patreon/constants.ts b/apps/web-react/app/modules/patreon/constants.ts similarity index 100% rename from app/modules/patreon/constants.ts rename to apps/web-react/app/modules/patreon/constants.ts diff --git a/app/modules/patreon/index.ts b/apps/web-react/app/modules/patreon/index.ts similarity index 100% rename from app/modules/patreon/index.ts rename to apps/web-react/app/modules/patreon/index.ts diff --git a/app/modules/patreon/schema.ts b/apps/web-react/app/modules/patreon/schema.ts similarity index 100% rename from app/modules/patreon/schema.ts rename to apps/web-react/app/modules/patreon/schema.ts diff --git a/app/modules/patreon/updater.ts b/apps/web-react/app/modules/patreon/updater.ts similarity index 100% rename from app/modules/patreon/updater.ts rename to apps/web-react/app/modules/patreon/updater.ts diff --git a/app/modules/permissions/guards.server.ts b/apps/web-react/app/modules/permissions/guards.server.ts similarity index 100% rename from app/modules/permissions/guards.server.ts rename to apps/web-react/app/modules/permissions/guards.server.ts diff --git a/app/modules/permissions/hooks.ts b/apps/web-react/app/modules/permissions/hooks.ts similarity index 100% rename from app/modules/permissions/hooks.ts rename to apps/web-react/app/modules/permissions/hooks.ts diff --git a/app/modules/permissions/mapper.server.ts b/apps/web-react/app/modules/permissions/mapper.server.ts similarity index 100% rename from app/modules/permissions/mapper.server.ts rename to apps/web-react/app/modules/permissions/mapper.server.ts diff --git a/app/modules/permissions/types.ts b/apps/web-react/app/modules/permissions/types.ts similarity index 100% rename from app/modules/permissions/types.ts rename to apps/web-react/app/modules/permissions/types.ts diff --git a/app/modules/permissions/utils.test.ts b/apps/web-react/app/modules/permissions/utils.test.ts similarity index 100% rename from app/modules/permissions/utils.test.ts rename to apps/web-react/app/modules/permissions/utils.test.ts diff --git a/app/modules/permissions/utils.ts b/apps/web-react/app/modules/permissions/utils.ts similarity index 100% rename from app/modules/permissions/utils.ts rename to apps/web-react/app/modules/permissions/utils.ts diff --git a/app/modules/persisted-state/hooks.browser.test.tsx b/apps/web-react/app/modules/persisted-state/hooks.browser.test.tsx similarity index 100% rename from app/modules/persisted-state/hooks.browser.test.tsx rename to apps/web-react/app/modules/persisted-state/hooks.browser.test.tsx diff --git a/app/modules/persisted-state/hooks.ts b/apps/web-react/app/modules/persisted-state/hooks.ts similarity index 100% rename from app/modules/persisted-state/hooks.ts rename to apps/web-react/app/modules/persisted-state/hooks.ts diff --git a/app/modules/persisted-state/persisted-state-test-utils.ts b/apps/web-react/app/modules/persisted-state/persisted-state-test-utils.ts similarity index 100% rename from app/modules/persisted-state/persisted-state-test-utils.ts rename to apps/web-react/app/modules/persisted-state/persisted-state-test-utils.ts diff --git a/app/modules/persisted-state/persisted-state.test.ts b/apps/web-react/app/modules/persisted-state/persisted-state.test.ts similarity index 100% rename from app/modules/persisted-state/persisted-state.test.ts rename to apps/web-react/app/modules/persisted-state/persisted-state.test.ts diff --git a/app/modules/persisted-state/persisted-state.ts b/apps/web-react/app/modules/persisted-state/persisted-state.ts similarity index 100% rename from app/modules/persisted-state/persisted-state.ts rename to apps/web-react/app/modules/persisted-state/persisted-state.ts diff --git a/app/modules/responsive-masonry/components/Masonry.tsx b/apps/web-react/app/modules/responsive-masonry/components/Masonry.tsx similarity index 100% rename from app/modules/responsive-masonry/components/Masonry.tsx rename to apps/web-react/app/modules/responsive-masonry/components/Masonry.tsx diff --git a/app/modules/responsive-masonry/components/ResponsiveMasonry.tsx b/apps/web-react/app/modules/responsive-masonry/components/ResponsiveMasonry.tsx similarity index 100% rename from app/modules/responsive-masonry/components/ResponsiveMasonry.tsx rename to apps/web-react/app/modules/responsive-masonry/components/ResponsiveMasonry.tsx diff --git a/app/modules/search-params/hooks.browser.test.tsx b/apps/web-react/app/modules/search-params/hooks.browser.test.tsx similarity index 100% rename from app/modules/search-params/hooks.browser.test.tsx rename to apps/web-react/app/modules/search-params/hooks.browser.test.tsx diff --git a/app/modules/search-params/hooks.ts b/apps/web-react/app/modules/search-params/hooks.ts similarity index 100% rename from app/modules/search-params/hooks.ts rename to apps/web-react/app/modules/search-params/hooks.ts diff --git a/app/modules/search-params/search-params-test-utils.ts b/apps/web-react/app/modules/search-params/search-params-test-utils.ts similarity index 100% rename from app/modules/search-params/search-params-test-utils.ts rename to apps/web-react/app/modules/search-params/search-params-test-utils.ts diff --git a/app/modules/search-params/search-params.test.ts b/apps/web-react/app/modules/search-params/search-params.test.ts similarity index 100% rename from app/modules/search-params/search-params.test.ts rename to apps/web-react/app/modules/search-params/search-params.test.ts diff --git a/app/modules/search-params/search-params.ts b/apps/web-react/app/modules/search-params/search-params.ts similarity index 100% rename from app/modules/search-params/search-params.ts rename to apps/web-react/app/modules/search-params/search-params.ts diff --git a/app/modules/search-params/store.ts b/apps/web-react/app/modules/search-params/store.ts similarity index 100% rename from app/modules/search-params/store.ts rename to apps/web-react/app/modules/search-params/store.ts diff --git a/app/modules/tournament-map-list-generator/balanced-map-list.ts b/apps/web-react/app/modules/tournament-map-list-generator/balanced-map-list.ts similarity index 100% rename from app/modules/tournament-map-list-generator/balanced-map-list.ts rename to apps/web-react/app/modules/tournament-map-list-generator/balanced-map-list.ts diff --git a/app/modules/tournament-map-list-generator/constants.ts b/apps/web-react/app/modules/tournament-map-list-generator/constants.ts similarity index 100% rename from app/modules/tournament-map-list-generator/constants.ts rename to apps/web-react/app/modules/tournament-map-list-generator/constants.ts diff --git a/app/modules/tournament-map-list-generator/generation.test.ts b/apps/web-react/app/modules/tournament-map-list-generator/generation.test.ts similarity index 100% rename from app/modules/tournament-map-list-generator/generation.test.ts rename to apps/web-react/app/modules/tournament-map-list-generator/generation.test.ts diff --git a/app/modules/tournament-map-list-generator/source.ts b/apps/web-react/app/modules/tournament-map-list-generator/source.ts similarity index 100% rename from app/modules/tournament-map-list-generator/source.ts rename to apps/web-react/app/modules/tournament-map-list-generator/source.ts diff --git a/app/modules/tournament-map-list-generator/starter-map.ts b/apps/web-react/app/modules/tournament-map-list-generator/starter-map.ts similarity index 100% rename from app/modules/tournament-map-list-generator/starter-map.ts rename to apps/web-react/app/modules/tournament-map-list-generator/starter-map.ts diff --git a/app/modules/tournament-map-list-generator/types.ts b/apps/web-react/app/modules/tournament-map-list-generator/types.ts similarity index 100% rename from app/modules/tournament-map-list-generator/types.ts rename to apps/web-react/app/modules/tournament-map-list-generator/types.ts diff --git a/app/modules/twitch/fetch.ts b/apps/web-react/app/modules/twitch/fetch.ts similarity index 100% rename from app/modules/twitch/fetch.ts rename to apps/web-react/app/modules/twitch/fetch.ts diff --git a/app/modules/twitch/index.ts b/apps/web-react/app/modules/twitch/index.ts similarity index 100% rename from app/modules/twitch/index.ts rename to apps/web-react/app/modules/twitch/index.ts diff --git a/app/modules/twitch/schemas.ts b/apps/web-react/app/modules/twitch/schemas.ts similarity index 100% rename from app/modules/twitch/schemas.ts rename to apps/web-react/app/modules/twitch/schemas.ts diff --git a/app/modules/twitch/streams.ts b/apps/web-react/app/modules/twitch/streams.ts similarity index 100% rename from app/modules/twitch/streams.ts rename to apps/web-react/app/modules/twitch/streams.ts diff --git a/app/modules/twitch/token.ts b/apps/web-react/app/modules/twitch/token.ts similarity index 100% rename from app/modules/twitch/token.ts rename to apps/web-react/app/modules/twitch/token.ts diff --git a/app/modules/twitch/utils.server.ts b/apps/web-react/app/modules/twitch/utils.server.ts similarity index 100% rename from app/modules/twitch/utils.server.ts rename to apps/web-react/app/modules/twitch/utils.server.ts diff --git a/app/modules/twitch/utils.ts b/apps/web-react/app/modules/twitch/utils.ts similarity index 100% rename from app/modules/twitch/utils.ts rename to apps/web-react/app/modules/twitch/utils.ts diff --git a/app/modules/twitch/vods.test.ts b/apps/web-react/app/modules/twitch/vods.test.ts similarity index 100% rename from app/modules/twitch/vods.test.ts rename to apps/web-react/app/modules/twitch/vods.test.ts diff --git a/app/modules/twitch/vods.ts b/apps/web-react/app/modules/twitch/vods.ts similarity index 100% rename from app/modules/twitch/vods.ts rename to apps/web-react/app/modules/twitch/vods.ts diff --git a/app/root.tsx b/apps/web-react/app/root.tsx similarity index 100% rename from app/root.tsx rename to apps/web-react/app/root.tsx diff --git a/app/routes.ts b/apps/web-react/app/routes.ts similarity index 100% rename from app/routes.ts rename to apps/web-react/app/routes.ts diff --git a/app/routines/closeExpiredCommissions.ts b/apps/web-react/app/routines/closeExpiredCommissions.ts similarity index 100% rename from app/routines/closeExpiredCommissions.ts rename to apps/web-react/app/routines/closeExpiredCommissions.ts diff --git a/app/routines/closeExpiredContinueVotes.test.ts b/apps/web-react/app/routines/closeExpiredContinueVotes.test.ts similarity index 100% rename from app/routines/closeExpiredContinueVotes.test.ts rename to apps/web-react/app/routines/closeExpiredContinueVotes.test.ts diff --git a/app/routines/closeExpiredContinueVotes.ts b/apps/web-react/app/routines/closeExpiredContinueVotes.ts similarity index 100% rename from app/routines/closeExpiredContinueVotes.ts rename to apps/web-react/app/routines/closeExpiredContinueVotes.ts diff --git a/app/routines/computeLutiDivs.ts b/apps/web-react/app/routines/computeLutiDivs.ts similarity index 100% rename from app/routines/computeLutiDivs.ts rename to apps/web-react/app/routines/computeLutiDivs.ts diff --git a/app/routines/deleteObsoleteMatchVods.ts b/apps/web-react/app/routines/deleteObsoleteMatchVods.ts similarity index 100% rename from app/routines/deleteObsoleteMatchVods.ts rename to apps/web-react/app/routines/deleteObsoleteMatchVods.ts diff --git a/app/routines/deleteOldExternalStreams.ts b/apps/web-react/app/routines/deleteOldExternalStreams.ts similarity index 100% rename from app/routines/deleteOldExternalStreams.ts rename to apps/web-react/app/routines/deleteOldExternalStreams.ts diff --git a/app/routines/deleteOldNotifications.ts b/apps/web-react/app/routines/deleteOldNotifications.ts similarity index 100% rename from app/routines/deleteOldNotifications.ts rename to apps/web-react/app/routines/deleteOldNotifications.ts diff --git a/app/routines/deleteOldPendingFriendRequests.ts b/apps/web-react/app/routines/deleteOldPendingFriendRequests.ts similarity index 100% rename from app/routines/deleteOldPendingFriendRequests.ts rename to apps/web-react/app/routines/deleteOldPendingFriendRequests.ts diff --git a/app/routines/deleteOldScrimPickupRosters.ts b/apps/web-react/app/routines/deleteOldScrimPickupRosters.ts similarity index 100% rename from app/routines/deleteOldScrimPickupRosters.ts rename to apps/web-react/app/routines/deleteOldScrimPickupRosters.ts diff --git a/app/routines/deleteOldTournamentAuditLogs.ts b/apps/web-react/app/routines/deleteOldTournamentAuditLogs.ts similarity index 100% rename from app/routines/deleteOldTournamentAuditLogs.ts rename to apps/web-react/app/routines/deleteOldTournamentAuditLogs.ts diff --git a/app/routines/deleteOrphanArtTags.ts b/apps/web-react/app/routines/deleteOrphanArtTags.ts similarity index 100% rename from app/routines/deleteOrphanArtTags.ts rename to apps/web-react/app/routines/deleteOrphanArtTags.ts diff --git a/app/routines/evictStaleRunningTournaments.ts b/apps/web-react/app/routines/evictStaleRunningTournaments.ts similarity index 100% rename from app/routines/evictStaleRunningTournaments.ts rename to apps/web-react/app/routines/evictStaleRunningTournaments.ts diff --git a/app/routines/expireReadyChecks.ts b/apps/web-react/app/routines/expireReadyChecks.ts similarity index 100% rename from app/routines/expireReadyChecks.ts rename to apps/web-react/app/routines/expireReadyChecks.ts diff --git a/app/routines/list.server.ts b/apps/web-react/app/routines/list.server.ts similarity index 100% rename from app/routines/list.server.ts rename to apps/web-react/app/routines/list.server.ts diff --git a/app/routines/notifyCheckInStart.test.ts b/apps/web-react/app/routines/notifyCheckInStart.test.ts similarity index 100% rename from app/routines/notifyCheckInStart.test.ts rename to apps/web-react/app/routines/notifyCheckInStart.test.ts diff --git a/app/routines/notifyCheckInStart.ts b/apps/web-react/app/routines/notifyCheckInStart.ts similarity index 100% rename from app/routines/notifyCheckInStart.ts rename to apps/web-react/app/routines/notifyCheckInStart.ts diff --git a/app/routines/notifyPlusServerVoting.ts b/apps/web-react/app/routines/notifyPlusServerVoting.ts similarity index 100% rename from app/routines/notifyPlusServerVoting.ts rename to apps/web-react/app/routines/notifyPlusServerVoting.ts diff --git a/app/routines/notifyScrimStartingSoon.ts b/apps/web-react/app/routines/notifyScrimStartingSoon.ts similarity index 100% rename from app/routines/notifyScrimStartingSoon.ts rename to apps/web-react/app/routines/notifyScrimStartingSoon.ts diff --git a/app/routines/notifySeasonStart.ts b/apps/web-react/app/routines/notifySeasonStart.ts similarity index 100% rename from app/routines/notifySeasonStart.ts rename to apps/web-react/app/routines/notifySeasonStart.ts diff --git a/app/routines/optimizeDatabase.ts b/apps/web-react/app/routines/optimizeDatabase.ts similarity index 100% rename from app/routines/optimizeDatabase.ts rename to apps/web-react/app/routines/optimizeDatabase.ts diff --git a/app/routines/resolveStaleSQMatches.test.ts b/apps/web-react/app/routines/resolveStaleSQMatches.test.ts similarity index 100% rename from app/routines/resolveStaleSQMatches.test.ts rename to apps/web-react/app/routines/resolveStaleSQMatches.test.ts diff --git a/app/routines/resolveStaleSQMatches.ts b/apps/web-react/app/routines/resolveStaleSQMatches.ts similarity index 100% rename from app/routines/resolveStaleSQMatches.ts rename to apps/web-react/app/routines/resolveStaleSQMatches.ts diff --git a/app/routines/routine.server.ts b/apps/web-react/app/routines/routine.server.ts similarity index 100% rename from app/routines/routine.server.ts rename to apps/web-react/app/routines/routine.server.ts diff --git a/app/routines/setOldGroupsAsInactive.ts b/apps/web-react/app/routines/setOldGroupsAsInactive.ts similarity index 100% rename from app/routines/setOldGroupsAsInactive.ts rename to apps/web-react/app/routines/setOldGroupsAsInactive.ts diff --git a/app/routines/syncLiveStreams.test.ts b/apps/web-react/app/routines/syncLiveStreams.test.ts similarity index 100% rename from app/routines/syncLiveStreams.test.ts rename to apps/web-react/app/routines/syncLiveStreams.test.ts diff --git a/app/routines/syncLiveStreams.ts b/apps/web-react/app/routines/syncLiveStreams.ts similarity index 100% rename from app/routines/syncLiveStreams.ts rename to apps/web-react/app/routines/syncLiveStreams.ts diff --git a/app/routines/syncSplatoonRotations.ts b/apps/web-react/app/routines/syncSplatoonRotations.ts similarity index 100% rename from app/routines/syncSplatoonRotations.ts rename to apps/web-react/app/routines/syncSplatoonRotations.ts diff --git a/app/routines/syncTournamentVods.test.ts b/apps/web-react/app/routines/syncTournamentVods.test.ts similarity index 100% rename from app/routines/syncTournamentVods.test.ts rename to apps/web-react/app/routines/syncTournamentVods.test.ts diff --git a/app/routines/syncTournamentVods.ts b/apps/web-react/app/routines/syncTournamentVods.ts similarity index 100% rename from app/routines/syncTournamentVods.ts rename to apps/web-react/app/routines/syncTournamentVods.ts diff --git a/app/routines/updatePatreonData.ts b/apps/web-react/app/routines/updatePatreonData.ts similarity index 100% rename from app/routines/updatePatreonData.ts rename to apps/web-react/app/routines/updatePatreonData.ts diff --git a/app/styles/common.css b/apps/web-react/app/styles/common.css similarity index 100% rename from app/styles/common.css rename to apps/web-react/app/styles/common.css diff --git a/app/styles/flags.css b/apps/web-react/app/styles/flags.css similarity index 100% rename from app/styles/flags.css rename to apps/web-react/app/styles/flags.css diff --git a/app/styles/fonts.css b/apps/web-react/app/styles/fonts.css similarity index 100% rename from app/styles/fonts.css rename to apps/web-react/app/styles/fonts.css diff --git a/app/styles/fonts/lexend-latin-ext.woff2 b/apps/web-react/app/styles/fonts/lexend-latin-ext.woff2 similarity index 100% rename from app/styles/fonts/lexend-latin-ext.woff2 rename to apps/web-react/app/styles/fonts/lexend-latin-ext.woff2 diff --git a/app/styles/fonts/lexend-latin.woff2 b/apps/web-react/app/styles/fonts/lexend-latin.woff2 similarity index 100% rename from app/styles/fonts/lexend-latin.woff2 rename to apps/web-react/app/styles/fonts/lexend-latin.woff2 diff --git a/app/styles/front.module.css b/apps/web-react/app/styles/front.module.css similarity index 100% rename from app/styles/front.module.css rename to apps/web-react/app/styles/front.module.css diff --git a/app/styles/normalize.css b/apps/web-react/app/styles/normalize.css similarity index 100% rename from app/styles/normalize.css rename to apps/web-react/app/styles/normalize.css diff --git a/app/styles/utils.css b/apps/web-react/app/styles/utils.css similarity index 100% rename from app/styles/utils.css rename to apps/web-react/app/styles/utils.css diff --git a/app/styles/vars.css b/apps/web-react/app/styles/vars.css similarity index 100% rename from app/styles/vars.css rename to apps/web-react/app/styles/vars.css diff --git a/app/test-setup.ts b/apps/web-react/app/test-setup.ts similarity index 100% rename from app/test-setup.ts rename to apps/web-react/app/test-setup.ts diff --git a/app/utils/Test.ts b/apps/web-react/app/utils/Test.ts similarity index 100% rename from app/utils/Test.ts rename to apps/web-react/app/utils/Test.ts diff --git a/app/utils/action-schemas.ts b/apps/web-react/app/utils/action-schemas.ts similarity index 100% rename from app/utils/action-schemas.ts rename to apps/web-react/app/utils/action-schemas.ts diff --git a/app/utils/arrays.test.ts b/apps/web-react/app/utils/arrays.test.ts similarity index 100% rename from app/utils/arrays.test.ts rename to apps/web-react/app/utils/arrays.test.ts diff --git a/app/utils/arrays.ts b/apps/web-react/app/utils/arrays.ts similarity index 100% rename from app/utils/arrays.ts rename to apps/web-react/app/utils/arrays.ts diff --git a/app/utils/cache.server.ts b/apps/web-react/app/utils/cache.server.ts similarity index 100% rename from app/utils/cache.server.ts rename to apps/web-react/app/utils/cache.server.ts diff --git a/app/utils/compression.test.ts b/apps/web-react/app/utils/compression.test.ts similarity index 100% rename from app/utils/compression.test.ts rename to apps/web-react/app/utils/compression.test.ts diff --git a/app/utils/compression.ts b/apps/web-react/app/utils/compression.ts similarity index 100% rename from app/utils/compression.ts rename to apps/web-react/app/utils/compression.ts diff --git a/app/utils/dates.test.ts b/apps/web-react/app/utils/dates.test.ts similarity index 100% rename from app/utils/dates.test.ts rename to apps/web-react/app/utils/dates.test.ts diff --git a/app/utils/dates.ts b/apps/web-react/app/utils/dates.ts similarity index 100% rename from app/utils/dates.ts rename to apps/web-react/app/utils/dates.ts diff --git a/app/utils/e2e.ts b/apps/web-react/app/utils/e2e.ts similarity index 100% rename from app/utils/e2e.ts rename to apps/web-react/app/utils/e2e.ts diff --git a/app/utils/errors.ts b/apps/web-react/app/utils/errors.ts similarity index 100% rename from app/utils/errors.ts rename to apps/web-react/app/utils/errors.ts diff --git a/app/utils/fetch.ts b/apps/web-react/app/utils/fetch.ts similarity index 100% rename from app/utils/fetch.ts rename to apps/web-react/app/utils/fetch.ts diff --git a/app/utils/git-commit.ts b/apps/web-react/app/utils/git-commit.ts similarity index 100% rename from app/utils/git-commit.ts rename to apps/web-react/app/utils/git-commit.ts diff --git a/app/utils/i18n.test.ts b/apps/web-react/app/utils/i18n.test.ts similarity index 100% rename from app/utils/i18n.test.ts rename to apps/web-react/app/utils/i18n.test.ts diff --git a/app/utils/i18n.ts b/apps/web-react/app/utils/i18n.ts similarity index 100% rename from app/utils/i18n.ts rename to apps/web-react/app/utils/i18n.ts diff --git a/app/utils/id.ts b/apps/web-react/app/utils/id.ts similarity index 100% rename from app/utils/id.ts rename to apps/web-react/app/utils/id.ts diff --git a/app/utils/invariant.ts b/apps/web-react/app/utils/invariant.ts similarity index 100% rename from app/utils/invariant.ts rename to apps/web-react/app/utils/invariant.ts diff --git a/app/utils/kysely.server.ts b/apps/web-react/app/utils/kysely.server.ts similarity index 100% rename from app/utils/kysely.server.ts rename to apps/web-react/app/utils/kysely.server.ts diff --git a/app/utils/logger.ts b/apps/web-react/app/utils/logger.ts similarity index 100% rename from app/utils/logger.ts rename to apps/web-react/app/utils/logger.ts diff --git a/app/utils/number.ts b/apps/web-react/app/utils/number.ts similarity index 100% rename from app/utils/number.ts rename to apps/web-react/app/utils/number.ts diff --git a/app/utils/numbers.test.ts b/apps/web-react/app/utils/numbers.test.ts similarity index 100% rename from app/utils/numbers.test.ts rename to apps/web-react/app/utils/numbers.test.ts diff --git a/app/utils/oklch-gamut.ts b/apps/web-react/app/utils/oklch-gamut.ts similarity index 100% rename from app/utils/oklch-gamut.ts rename to apps/web-react/app/utils/oklch-gamut.ts diff --git a/app/utils/random.test.ts b/apps/web-react/app/utils/random.test.ts similarity index 100% rename from app/utils/random.test.ts rename to apps/web-react/app/utils/random.test.ts diff --git a/app/utils/random.ts b/apps/web-react/app/utils/random.ts similarity index 100% rename from app/utils/random.ts rename to apps/web-react/app/utils/random.ts diff --git a/app/utils/remix.server.test.ts b/apps/web-react/app/utils/remix.server.test.ts similarity index 100% rename from app/utils/remix.server.test.ts rename to apps/web-react/app/utils/remix.server.test.ts diff --git a/app/utils/remix.server.ts b/apps/web-react/app/utils/remix.server.ts similarity index 100% rename from app/utils/remix.server.ts rename to apps/web-react/app/utils/remix.server.ts diff --git a/app/utils/remix.test.ts b/apps/web-react/app/utils/remix.test.ts similarity index 100% rename from app/utils/remix.test.ts rename to apps/web-react/app/utils/remix.test.ts diff --git a/app/utils/remix.ts b/apps/web-react/app/utils/remix.ts similarity index 100% rename from app/utils/remix.ts rename to apps/web-react/app/utils/remix.ts diff --git a/app/utils/request-context-middleware.server.ts b/apps/web-react/app/utils/request-context-middleware.server.ts similarity index 100% rename from app/utils/request-context-middleware.server.ts rename to apps/web-react/app/utils/request-context-middleware.server.ts diff --git a/app/utils/request-context.server.ts b/apps/web-react/app/utils/request-context.server.ts similarity index 100% rename from app/utils/request-context.server.ts rename to apps/web-react/app/utils/request-context.server.ts diff --git a/app/utils/result.ts b/apps/web-react/app/utils/result.ts similarity index 100% rename from app/utils/result.ts rename to apps/web-react/app/utils/result.ts diff --git a/app/utils/session-id.ts b/apps/web-react/app/utils/session-id.ts similarity index 100% rename from app/utils/session-id.ts rename to apps/web-react/app/utils/session-id.ts diff --git a/app/utils/sql.ts b/apps/web-react/app/utils/sql.ts similarity index 100% rename from app/utils/sql.ts rename to apps/web-react/app/utils/sql.ts diff --git a/app/utils/string.test.ts b/apps/web-react/app/utils/string.test.ts similarity index 100% rename from app/utils/string.test.ts rename to apps/web-react/app/utils/string.test.ts diff --git a/app/utils/strings.ts b/apps/web-react/app/utils/strings.ts similarity index 100% rename from app/utils/strings.ts rename to apps/web-react/app/utils/strings.ts diff --git a/app/utils/team-name-data.ts b/apps/web-react/app/utils/team-name-data.ts similarity index 100% rename from app/utils/team-name-data.ts rename to apps/web-react/app/utils/team-name-data.ts diff --git a/app/utils/team-name.ts b/apps/web-react/app/utils/team-name.ts similarity index 100% rename from app/utils/team-name.ts rename to apps/web-react/app/utils/team-name.ts diff --git a/app/utils/types.ts b/apps/web-react/app/utils/types.ts similarity index 100% rename from app/utils/types.ts rename to apps/web-react/app/utils/types.ts diff --git a/app/utils/unslugify.server.ts b/apps/web-react/app/utils/unslugify.server.ts similarity index 100% rename from app/utils/unslugify.server.ts rename to apps/web-react/app/utils/unslugify.server.ts diff --git a/app/utils/urls.ts b/apps/web-react/app/utils/urls.ts similarity index 100% rename from app/utils/urls.ts rename to apps/web-react/app/utils/urls.ts diff --git a/app/utils/users.test.ts b/apps/web-react/app/utils/users.test.ts similarity index 100% rename from app/utils/users.test.ts rename to apps/web-react/app/utils/users.test.ts diff --git a/app/utils/users.ts b/apps/web-react/app/utils/users.ts similarity index 100% rename from app/utils/users.ts rename to apps/web-react/app/utils/users.ts diff --git a/app/utils/zod.test.ts b/apps/web-react/app/utils/zod.test.ts similarity index 100% rename from app/utils/zod.test.ts rename to apps/web-react/app/utils/zod.test.ts diff --git a/app/utils/zod.ts b/apps/web-react/app/utils/zod.ts similarity index 100% rename from app/utils/zod.ts rename to apps/web-react/app/utils/zod.ts diff --git a/content/articles/20xx-series-6-recap.md b/apps/web-react/content/articles/20xx-series-6-recap.md similarity index 100% rename from content/articles/20xx-series-6-recap.md rename to apps/web-react/content/articles/20xx-series-6-recap.md diff --git a/content/articles/3rd-kits-weapons-that-could-completely-alter-the-metagame.md b/apps/web-react/content/articles/3rd-kits-weapons-that-could-completely-alter-the-metagame.md similarity index 100% rename from content/articles/3rd-kits-weapons-that-could-completely-alter-the-metagame.md rename to apps/web-react/content/articles/3rd-kits-weapons-that-could-completely-alter-the-metagame.md diff --git a/content/articles/A-dying-scene-Stronghold-and-Splatoon-4.md b/apps/web-react/content/articles/A-dying-scene-Stronghold-and-Splatoon-4.md similarity index 100% rename from content/articles/A-dying-scene-Stronghold-and-Splatoon-4.md rename to apps/web-react/content/articles/A-dying-scene-Stronghold-and-Splatoon-4.md diff --git a/content/articles/a-fresh-start.md b/apps/web-react/content/articles/a-fresh-start.md similarity index 100% rename from content/articles/a-fresh-start.md rename to apps/web-react/content/articles/a-fresh-start.md diff --git a/content/articles/austrian-championship-2023.md b/apps/web-react/content/articles/austrian-championship-2023.md similarity index 100% rename from content/articles/austrian-championship-2023.md rename to apps/web-react/content/articles/austrian-championship-2023.md diff --git a/content/articles/belgian-championship-2023.md b/apps/web-react/content/articles/belgian-championship-2023.md similarity index 100% rename from content/articles/belgian-championship-2023.md rename to apps/web-react/content/articles/belgian-championship-2023.md diff --git a/content/articles/competitive-guidebook-part-1.md b/apps/web-react/content/articles/competitive-guidebook-part-1.md similarity index 100% rename from content/articles/competitive-guidebook-part-1.md rename to apps/web-react/content/articles/competitive-guidebook-part-1.md diff --git a/content/articles/dutch-championship-2023.md b/apps/web-react/content/articles/dutch-championship-2023.md similarity index 100% rename from content/articles/dutch-championship-2023.md rename to apps/web-react/content/articles/dutch-championship-2023.md diff --git a/content/articles/final-low-ink.md b/apps/web-react/content/articles/final-low-ink.md similarity index 100% rename from content/articles/final-low-ink.md rename to apps/web-react/content/articles/final-low-ink.md diff --git a/content/articles/flippa-floppa-wins-first-major-of-20xx.md b/apps/web-react/content/articles/flippa-floppa-wins-first-major-of-20xx.md similarity index 100% rename from content/articles/flippa-floppa-wins-first-major-of-20xx.md rename to apps/web-react/content/articles/flippa-floppa-wins-first-major-of-20xx.md diff --git a/content/articles/gamers-for-giving-2026.md b/apps/web-react/content/articles/gamers-for-giving-2026.md similarity index 100% rename from content/articles/gamers-for-giving-2026.md rename to apps/web-react/content/articles/gamers-for-giving-2026.md diff --git a/content/articles/german-championship-2023.md b/apps/web-react/content/articles/german-championship-2023.md similarity index 100% rename from content/articles/german-championship-2023.md rename to apps/web-react/content/articles/german-championship-2023.md diff --git a/content/articles/golden-squid-junction-40.md b/apps/web-react/content/articles/golden-squid-junction-40.md similarity index 100% rename from content/articles/golden-squid-junction-40.md rename to apps/web-react/content/articles/golden-squid-junction-40.md diff --git a/content/articles/hypernova-roster-shuffle.md b/apps/web-react/content/articles/hypernova-roster-shuffle.md similarity index 100% rename from content/articles/hypernova-roster-shuffle.md rename to apps/web-react/content/articles/hypernova-roster-shuffle.md diff --git a/content/articles/in-the-zone-26-winners.md b/apps/web-react/content/articles/in-the-zone-26-winners.md similarity index 100% rename from content/articles/in-the-zone-26-winners.md rename to apps/web-react/content/articles/in-the-zone-26-winners.md diff --git a/content/articles/inktv-announces-return.md b/apps/web-react/content/articles/inktv-announces-return.md similarity index 100% rename from content/articles/inktv-announces-return.md rename to apps/web-react/content/articles/inktv-announces-return.md diff --git a/content/articles/interactive-LAN-map-now-available.md b/apps/web-react/content/articles/interactive-LAN-map-now-available.md similarity index 100% rename from content/articles/interactive-LAN-map-now-available.md rename to apps/web-react/content/articles/interactive-LAN-map-now-available.md diff --git a/content/articles/ipl-x-area-cup-splat-world-series.md b/apps/web-react/content/articles/ipl-x-area-cup-splat-world-series.md similarity index 100% rename from content/articles/ipl-x-area-cup-splat-world-series.md rename to apps/web-react/content/articles/ipl-x-area-cup-splat-world-series.md diff --git a/content/articles/iplxareacup-sws-2026-season-reveal.md b/apps/web-react/content/articles/iplxareacup-sws-2026-season-reveal.md similarity index 100% rename from content/articles/iplxareacup-sws-2026-season-reveal.md rename to apps/web-react/content/articles/iplxareacup-sws-2026-season-reveal.md diff --git a/content/articles/january-february-2026-lans.md b/apps/web-react/content/articles/january-february-2026-lans.md similarity index 100% rename from content/articles/january-february-2026-lans.md rename to apps/web-react/content/articles/january-february-2026-lans.md diff --git a/content/articles/july-august-2026-lans.md b/apps/web-react/content/articles/july-august-2026-lans.md similarity index 100% rename from content/articles/july-august-2026-lans.md rename to apps/web-react/content/articles/july-august-2026-lans.md diff --git a/content/articles/luti-season-13.md b/apps/web-react/content/articles/luti-season-13.md similarity index 100% rename from content/articles/luti-season-13.md rename to apps/web-react/content/articles/luti-season-13.md diff --git a/content/articles/march-april-2026-LANs.md b/apps/web-react/content/articles/march-april-2026-LANs.md similarity index 100% rename from content/articles/march-april-2026-LANs.md rename to apps/web-react/content/articles/march-april-2026-LANs.md diff --git a/content/articles/may-june-2026-LANs.md b/apps/web-react/content/articles/may-june-2026-LANs.md similarity index 100% rename from content/articles/may-june-2026-LANs.md rename to apps/web-react/content/articles/may-june-2026-LANs.md diff --git a/content/articles/na-lague-2026-p1e1.md b/apps/web-react/content/articles/na-lague-2026-p1e1.md similarity index 100% rename from content/articles/na-lague-2026-p1e1.md rename to apps/web-react/content/articles/na-lague-2026-p1e1.md diff --git a/content/articles/na-league-2026-p2e2.md b/apps/web-react/content/articles/na-league-2026-p2e2.md similarity index 100% rename from content/articles/na-league-2026-p2e2.md rename to apps/web-react/content/articles/na-league-2026-p2e2.md diff --git a/content/articles/na-league-2026-playoffs.md b/apps/web-react/content/articles/na-league-2026-playoffs.md similarity index 100% rename from content/articles/na-league-2026-playoffs.md rename to apps/web-react/content/articles/na-league-2026-playoffs.md diff --git a/content/articles/na-league-2026-r1e3.md b/apps/web-react/content/articles/na-league-2026-r1e3.md similarity index 100% rename from content/articles/na-league-2026-r1e3.md rename to apps/web-react/content/articles/na-league-2026-r1e3.md diff --git a/content/articles/na-league-2026-r2e4.md b/apps/web-react/content/articles/na-league-2026-r2e4.md similarity index 100% rename from content/articles/na-league-2026-r2e4.md rename to apps/web-react/content/articles/na-league-2026-r2e4.md diff --git a/content/articles/na-league-2026-r3-e5.md b/apps/web-react/content/articles/na-league-2026-r3-e5.md similarity index 100% rename from content/articles/na-league-2026-r3-e5.md rename to apps/web-react/content/articles/na-league-2026-r3-e5.md diff --git a/content/articles/na-league-2026-r4-e6.md b/apps/web-react/content/articles/na-league-2026-r4-e6.md similarity index 100% rename from content/articles/na-league-2026-r4-e6.md rename to apps/web-react/content/articles/na-league-2026-r4-e6.md diff --git a/content/articles/na-league-2026-r5-e7.md b/apps/web-react/content/articles/na-league-2026-r5-e7.md similarity index 100% rename from content/articles/na-league-2026-r5-e7.md rename to apps/web-react/content/articles/na-league-2026-r5-e7.md diff --git a/content/articles/na-league-2026-r6-e8.md b/apps/web-react/content/articles/na-league-2026-r6-e8.md similarity index 100% rename from content/articles/na-league-2026-r6-e8.md rename to apps/web-react/content/articles/na-league-2026-r6-e8.md diff --git a/content/articles/na-league-2026-r7-e9.md b/apps/web-react/content/articles/na-league-2026-r7-e9.md similarity index 100% rename from content/articles/na-league-2026-r7-e9.md rename to apps/web-react/content/articles/na-league-2026-r7-e9.md diff --git a/content/articles/na-league-2026-r8-e10.md b/apps/web-react/content/articles/na-league-2026-r8-e10.md similarity index 100% rename from content/articles/na-league-2026-r8-e10.md rename to apps/web-react/content/articles/na-league-2026-r8-e10.md diff --git a/content/articles/nintendo-sponsorship-brings-splatoon-3-to-80000-students.md b/apps/web-react/content/articles/nintendo-sponsorship-brings-splatoon-3-to-80000-students.md similarity index 100% rename from content/articles/nintendo-sponsorship-brings-splatoon-3-to-80000-students.md rename to apps/web-react/content/articles/nintendo-sponsorship-brings-splatoon-3-to-80000-students.md diff --git a/content/articles/november-splatfest-theme.md b/apps/web-react/content/articles/november-splatfest-theme.md similarity index 100% rename from content/articles/november-splatfest-theme.md rename to apps/web-react/content/articles/november-splatfest-theme.md diff --git a/content/articles/oktofest-2025.md b/apps/web-react/content/articles/oktofest-2025.md similarity index 100% rename from content/articles/oktofest-2025.md rename to apps/web-react/content/articles/oktofest-2025.md diff --git a/content/articles/onward-the-journey-beyond-the-north-american-league.md b/apps/web-react/content/articles/onward-the-journey-beyond-the-north-american-league.md similarity index 100% rename from content/articles/onward-the-journey-beyond-the-north-american-league.md rename to apps/web-react/content/articles/onward-the-journey-beyond-the-north-american-league.md diff --git a/content/articles/qualifier-1-the-road-to-splat-world-series.md b/apps/web-react/content/articles/qualifier-1-the-road-to-splat-world-series.md similarity index 100% rename from content/articles/qualifier-1-the-road-to-splat-world-series.md rename to apps/web-react/content/articles/qualifier-1-the-road-to-splat-world-series.md diff --git a/content/articles/qualifier-2-the-road-to-sws.md b/apps/web-react/content/articles/qualifier-2-the-road-to-sws.md similarity index 100% rename from content/articles/qualifier-2-the-road-to-sws.md rename to apps/web-react/content/articles/qualifier-2-the-road-to-sws.md diff --git a/content/articles/raise-4-raices.md b/apps/web-react/content/articles/raise-4-raices.md similarity index 100% rename from content/articles/raise-4-raices.md rename to apps/web-react/content/articles/raise-4-raices.md diff --git a/content/articles/range-players-harmony.md b/apps/web-react/content/articles/range-players-harmony.md similarity index 100% rename from content/articles/range-players-harmony.md rename to apps/web-react/content/articles/range-players-harmony.md diff --git a/content/articles/results-from-riptide-2025.md b/apps/web-react/content/articles/results-from-riptide-2025.md similarity index 100% rename from content/articles/results-from-riptide-2025.md rename to apps/web-react/content/articles/results-from-riptide-2025.md diff --git a/content/articles/sendouq-faq.md b/apps/web-react/content/articles/sendouq-faq.md similarity index 100% rename from content/articles/sendouq-faq.md rename to apps/web-react/content/articles/sendouq-faq.md diff --git a/content/articles/sendouq-season-10-finale-recap.md b/apps/web-react/content/articles/sendouq-season-10-finale-recap.md similarity index 100% rename from content/articles/sendouq-season-10-finale-recap.md rename to apps/web-react/content/articles/sendouq-season-10-finale-recap.md diff --git a/content/articles/sendouq-season8-finale-recap.md b/apps/web-react/content/articles/sendouq-season8-finale-recap.md similarity index 100% rename from content/articles/sendouq-season8-finale-recap.md rename to apps/web-react/content/articles/sendouq-season8-finale-recap.md diff --git a/content/articles/sendouq-season9-finale-recap.md b/apps/web-react/content/articles/sendouq-season9-finale-recap.md similarity index 100% rename from content/articles/sendouq-season9-finale-recap.md rename to apps/web-react/content/articles/sendouq-season9-finale-recap.md diff --git a/content/articles/series-weapon-power-breakdown.md b/apps/web-react/content/articles/series-weapon-power-breakdown.md similarity index 100% rename from content/articles/series-weapon-power-breakdown.md rename to apps/web-react/content/articles/series-weapon-power-breakdown.md diff --git a/content/articles/splat-world-series-finals.md b/apps/web-react/content/articles/splat-world-series-finals.md similarity index 100% rename from content/articles/splat-world-series-finals.md rename to apps/web-react/content/articles/splat-world-series-finals.md diff --git a/content/articles/splatfest-world-premiere-results.md b/apps/web-react/content/articles/splatfest-world-premiere-results.md similarity index 100% rename from content/articles/splatfest-world-premiere-results.md rename to apps/web-react/content/articles/splatfest-world-premiere-results.md diff --git a/content/articles/splatfest-world-premiere.md b/apps/web-react/content/articles/splatfest-world-premiere.md similarity index 100% rename from content/articles/splatfest-world-premiere.md rename to apps/web-react/content/articles/splatfest-world-premiere.md diff --git a/content/articles/splatoon-3-breaks-sales-record.md b/apps/web-react/content/articles/splatoon-3-breaks-sales-record.md similarity index 100% rename from content/articles/splatoon-3-breaks-sales-record.md rename to apps/web-react/content/articles/splatoon-3-breaks-sales-record.md diff --git a/content/articles/splatoon-3-more-ways-to-compete.md b/apps/web-react/content/articles/splatoon-3-more-ways-to-compete.md similarity index 100% rename from content/articles/splatoon-3-more-ways-to-compete.md rename to apps/web-react/content/articles/splatoon-3-more-ways-to-compete.md diff --git a/content/articles/splatoon-3-na-lague-event-3-regular-1.md b/apps/web-react/content/articles/splatoon-3-na-lague-event-3-regular-1.md similarity index 100% rename from content/articles/splatoon-3-na-lague-event-3-regular-1.md rename to apps/web-react/content/articles/splatoon-3-na-lague-event-3-regular-1.md diff --git a/content/articles/splatoon-3-na-league-event-1-preseason-1.md b/apps/web-react/content/articles/splatoon-3-na-league-event-1-preseason-1.md similarity index 100% rename from content/articles/splatoon-3-na-league-event-1-preseason-1.md rename to apps/web-react/content/articles/splatoon-3-na-league-event-1-preseason-1.md diff --git a/content/articles/splatoon-3-na-league-event-10-regular-8.md b/apps/web-react/content/articles/splatoon-3-na-league-event-10-regular-8.md similarity index 100% rename from content/articles/splatoon-3-na-league-event-10-regular-8.md rename to apps/web-react/content/articles/splatoon-3-na-league-event-10-regular-8.md diff --git a/content/articles/splatoon-3-na-league-event-4-regular-2.md b/apps/web-react/content/articles/splatoon-3-na-league-event-4-regular-2.md similarity index 100% rename from content/articles/splatoon-3-na-league-event-4-regular-2.md rename to apps/web-react/content/articles/splatoon-3-na-league-event-4-regular-2.md diff --git a/content/articles/splatoon-3-na-league-event-5-regular-3.md b/apps/web-react/content/articles/splatoon-3-na-league-event-5-regular-3.md similarity index 100% rename from content/articles/splatoon-3-na-league-event-5-regular-3.md rename to apps/web-react/content/articles/splatoon-3-na-league-event-5-regular-3.md diff --git a/content/articles/splatoon-3-na-league-event-6-regular-4.md b/apps/web-react/content/articles/splatoon-3-na-league-event-6-regular-4.md similarity index 100% rename from content/articles/splatoon-3-na-league-event-6-regular-4.md rename to apps/web-react/content/articles/splatoon-3-na-league-event-6-regular-4.md diff --git a/content/articles/splatoon-3-na-league-event-7-regular-5.md b/apps/web-react/content/articles/splatoon-3-na-league-event-7-regular-5.md similarity index 100% rename from content/articles/splatoon-3-na-league-event-7-regular-5.md rename to apps/web-react/content/articles/splatoon-3-na-league-event-7-regular-5.md diff --git a/content/articles/splatoon-3-na-league-event-8-regular-6.md b/apps/web-react/content/articles/splatoon-3-na-league-event-8-regular-6.md similarity index 100% rename from content/articles/splatoon-3-na-league-event-8-regular-6.md rename to apps/web-react/content/articles/splatoon-3-na-league-event-8-regular-6.md diff --git a/content/articles/splatoon-3-na-league-event-9-regular-7.md b/apps/web-react/content/articles/splatoon-3-na-league-event-9-regular-7.md similarity index 100% rename from content/articles/splatoon-3-na-league-event-9-regular-7.md rename to apps/web-react/content/articles/splatoon-3-na-league-event-9-regular-7.md diff --git a/content/articles/splatoon-3-na-league-playoffs.md b/apps/web-react/content/articles/splatoon-3-na-league-playoffs.md similarity index 100% rename from content/articles/splatoon-3-na-league-playoffs.md rename to apps/web-react/content/articles/splatoon-3-na-league-playoffs.md diff --git a/content/articles/splatoon-3-na-league-returns-for-2026.md b/apps/web-react/content/articles/splatoon-3-na-league-returns-for-2026.md similarity index 100% rename from content/articles/splatoon-3-na-league-returns-for-2026.md rename to apps/web-react/content/articles/splatoon-3-na-league-returns-for-2026.md diff --git a/content/articles/splatoon-3-north-american-league-event-1-preseason-week-1.md b/apps/web-react/content/articles/splatoon-3-north-american-league-event-1-preseason-week-1.md similarity index 100% rename from content/articles/splatoon-3-north-american-league-event-1-preseason-week-1.md rename to apps/web-react/content/articles/splatoon-3-north-american-league-event-1-preseason-week-1.md diff --git a/content/articles/splatoon-competitive-guide.md b/apps/web-react/content/articles/splatoon-competitive-guide.md similarity index 100% rename from content/articles/splatoon-competitive-guide.md rename to apps/web-react/content/articles/splatoon-competitive-guide.md diff --git a/content/articles/splatoon-liquipedia.md b/apps/web-react/content/articles/splatoon-liquipedia.md similarity index 100% rename from content/articles/splatoon-liquipedia.md rename to apps/web-react/content/articles/splatoon-liquipedia.md diff --git a/content/articles/starburst-wins-pax-west.md b/apps/web-react/content/articles/starburst-wins-pax-west.md similarity index 100% rename from content/articles/starburst-wins-pax-west.md rename to apps/web-react/content/articles/starburst-wins-pax-west.md diff --git a/content/articles/superjump-5-the-road-to-splat-world-series.md b/apps/web-react/content/articles/superjump-5-the-road-to-splat-world-series.md similarity index 100% rename from content/articles/superjump-5-the-road-to-splat-world-series.md rename to apps/web-react/content/articles/superjump-5-the-road-to-splat-world-series.md diff --git a/content/articles/superjump-6.md b/apps/web-react/content/articles/superjump-6.md similarity index 100% rename from content/articles/superjump-6.md rename to apps/web-react/content/articles/superjump-6.md diff --git a/content/articles/superjump-7.md b/apps/web-react/content/articles/superjump-7.md similarity index 100% rename from content/articles/superjump-7.md rename to apps/web-react/content/articles/superjump-7.md diff --git a/content/articles/swiss-championship-2023.md b/apps/web-react/content/articles/swiss-championship-2023.md similarity index 100% rename from content/articles/swiss-championship-2023.md rename to apps/web-react/content/articles/swiss-championship-2023.md diff --git a/content/articles/sws26-recap-GG2-finals.md b/apps/web-react/content/articles/sws26-recap-GG2-finals.md similarity index 100% rename from content/articles/sws26-recap-GG2-finals.md rename to apps/web-react/content/articles/sws26-recap-GG2-finals.md diff --git a/content/articles/sws26-recap-gg1-finals.md b/apps/web-react/content/articles/sws26-recap-gg1-finals.md similarity index 100% rename from content/articles/sws26-recap-gg1-finals.md rename to apps/web-react/content/articles/sws26-recap-gg1-finals.md diff --git a/content/articles/sws26-recap-gg1-q1.md b/apps/web-react/content/articles/sws26-recap-gg1-q1.md similarity index 100% rename from content/articles/sws26-recap-gg1-q1.md rename to apps/web-react/content/articles/sws26-recap-gg1-q1.md diff --git a/content/articles/sws26-recap-gg2-q1-sqs11-finale.md b/apps/web-react/content/articles/sws26-recap-gg2-q1-sqs11-finale.md similarity index 100% rename from content/articles/sws26-recap-gg2-q1-sqs11-finale.md rename to apps/web-react/content/articles/sws26-recap-gg2-q1-sqs11-finale.md diff --git a/content/articles/sws26-recap-gg2-q2.md b/apps/web-react/content/articles/sws26-recap-gg2-q2.md similarity index 100% rename from content/articles/sws26-recap-gg2-q2.md rename to apps/web-react/content/articles/sws26-recap-gg2-q2.md diff --git a/content/articles/sws26-recap-westernqualifier1.md b/apps/web-react/content/articles/sws26-recap-westernqualifier1.md similarity index 100% rename from content/articles/sws26-recap-westernqualifier1.md rename to apps/web-react/content/articles/sws26-recap-westernqualifier1.md diff --git a/content/articles/sws26-recap-westernqualifier2.md b/apps/web-react/content/articles/sws26-recap-westernqualifier2.md similarity index 100% rename from content/articles/sws26-recap-westernqualifier2.md rename to apps/web-react/content/articles/sws26-recap-westernqualifier2.md diff --git a/content/articles/sws26recap-gg1-q2.md b/apps/web-react/content/articles/sws26recap-gg1-q2.md similarity index 100% rename from content/articles/sws26recap-gg1-q2.md rename to apps/web-react/content/articles/sws26recap-gg1-q2.md diff --git a/content/articles/ten-splatoon-tips.md b/apps/web-react/content/articles/ten-splatoon-tips.md similarity index 100% rename from content/articles/ten-splatoon-tips.md rename to apps/web-react/content/articles/ten-splatoon-tips.md diff --git a/content/articles/the-splatoon-3-north-american-league-news-drop.md b/apps/web-react/content/articles/the-splatoon-3-north-american-league-news-drop.md similarity index 100% rename from content/articles/the-splatoon-3-north-american-league-news-drop.md rename to apps/web-react/content/articles/the-splatoon-3-north-american-league-news-drop.md diff --git a/content/articles/the-splatoon-peer-review-server.md b/apps/web-react/content/articles/the-splatoon-peer-review-server.md similarity index 100% rename from content/articles/the-splatoon-peer-review-server.md rename to apps/web-react/content/articles/the-splatoon-peer-review-server.md diff --git a/content/articles/the-top-5-main-misconceptions-about-competitive-splatoon.md b/apps/web-react/content/articles/the-top-5-main-misconceptions-about-competitive-splatoon.md similarity index 100% rename from content/articles/the-top-5-main-misconceptions-about-competitive-splatoon.md rename to apps/web-react/content/articles/the-top-5-main-misconceptions-about-competitive-splatoon.md diff --git a/content/articles/upcoming-fall-winter-2026-LANs.md b/apps/web-react/content/articles/upcoming-fall-winter-2026-LANs.md similarity index 100% rename from content/articles/upcoming-fall-winter-2026-LANs.md rename to apps/web-react/content/articles/upcoming-fall-winter-2026-LANs.md diff --git a/content/articles/upcoming-major-splatoon-3-fall-tournaments.md b/apps/web-react/content/articles/upcoming-major-splatoon-3-fall-tournaments.md similarity index 100% rename from content/articles/upcoming-major-splatoon-3-fall-tournaments.md rename to apps/web-react/content/articles/upcoming-major-splatoon-3-fall-tournaments.md diff --git a/content/articles/updated-directory.md b/apps/web-react/content/articles/updated-directory.md similarity index 100% rename from content/articles/updated-directory.md rename to apps/web-react/content/articles/updated-directory.md diff --git a/content/articles/version-11.0.0-hype-moments-and-aura-and-luti.md b/apps/web-react/content/articles/version-11.0.0-hype-moments-and-aura-and-luti.md similarity index 100% rename from content/articles/version-11.0.0-hype-moments-and-aura-and-luti.md rename to apps/web-react/content/articles/version-11.0.0-hype-moments-and-aura-and-luti.md diff --git a/content/articles/waving-goodbye-the-start-of-splatoons-great-retirement.md b/apps/web-react/content/articles/waving-goodbye-the-start-of-splatoons-great-retirement.md similarity index 100% rename from content/articles/waving-goodbye-the-start-of-splatoons-great-retirement.md rename to apps/web-react/content/articles/waving-goodbye-the-start-of-splatoons-great-retirement.md diff --git a/e2e/analyzer.spec.ts b/apps/web-react/e2e/analyzer.spec.ts similarity index 100% rename from e2e/analyzer.spec.ts rename to apps/web-react/e2e/analyzer.spec.ts diff --git a/e2e/api-public.spec.ts b/apps/web-react/e2e/api-public.spec.ts similarity index 100% rename from e2e/api-public.spec.ts rename to apps/web-react/e2e/api-public.spec.ts diff --git a/e2e/art.spec.ts b/apps/web-react/e2e/art.spec.ts similarity index 100% rename from e2e/art.spec.ts rename to apps/web-react/e2e/art.spec.ts diff --git a/e2e/associations.spec.ts b/apps/web-react/e2e/associations.spec.ts similarity index 100% rename from e2e/associations.spec.ts rename to apps/web-react/e2e/associations.spec.ts diff --git a/e2e/badges.spec.ts b/apps/web-react/e2e/badges.spec.ts similarity index 100% rename from e2e/badges.spec.ts rename to apps/web-react/e2e/badges.spec.ts diff --git a/e2e/ban.spec.ts b/apps/web-react/e2e/ban.spec.ts similarity index 100% rename from e2e/ban.spec.ts rename to apps/web-react/e2e/ban.spec.ts diff --git a/e2e/builds.spec.ts b/apps/web-react/e2e/builds.spec.ts similarity index 100% rename from e2e/builds.spec.ts rename to apps/web-react/e2e/builds.spec.ts diff --git a/e2e/calendar.spec.ts b/apps/web-react/e2e/calendar.spec.ts similarity index 100% rename from e2e/calendar.spec.ts rename to apps/web-react/e2e/calendar.spec.ts diff --git a/e2e/comp-analyzer.spec.ts b/apps/web-react/e2e/comp-analyzer.spec.ts similarity index 100% rename from e2e/comp-analyzer.spec.ts rename to apps/web-react/e2e/comp-analyzer.spec.ts diff --git a/e2e/events.spec.ts b/apps/web-react/e2e/events.spec.ts similarity index 100% rename from e2e/events.spec.ts rename to apps/web-react/e2e/events.spec.ts diff --git a/e2e/fixtures/test-image.png b/apps/web-react/e2e/fixtures/test-image.png similarity index 100% rename from e2e/fixtures/test-image.png rename to apps/web-react/e2e/fixtures/test-image.png diff --git a/e2e/friends.spec.ts b/apps/web-react/e2e/friends.spec.ts similarity index 100% rename from e2e/friends.spec.ts rename to apps/web-react/e2e/friends.spec.ts diff --git a/e2e/global-search.spec.ts b/apps/web-react/e2e/global-search.spec.ts similarity index 100% rename from e2e/global-search.spec.ts rename to apps/web-react/e2e/global-search.spec.ts diff --git a/e2e/global-setup.ts b/apps/web-react/e2e/global-setup.ts similarity index 99% rename from e2e/global-setup.ts rename to apps/web-react/e2e/global-setup.ts index 4a2521f5e..92db64136 100644 --- a/e2e/global-setup.ts +++ b/apps/web-react/e2e/global-setup.ts @@ -19,7 +19,7 @@ const BUILD_INPUTS = [ "app", "public", "package.json", - "pnpm-lock.yaml", + "../../pnpm-lock.yaml", "vite.config.ts", "react-router.config.ts", ]; diff --git a/e2e/global-teardown.ts b/apps/web-react/e2e/global-teardown.ts similarity index 100% rename from e2e/global-teardown.ts rename to apps/web-react/e2e/global-teardown.ts diff --git a/e2e/helpers/counterpick-map-pool.ts b/apps/web-react/e2e/helpers/counterpick-map-pool.ts similarity index 100% rename from e2e/helpers/counterpick-map-pool.ts rename to apps/web-react/e2e/helpers/counterpick-map-pool.ts diff --git a/e2e/helpers/factories.ts b/apps/web-react/e2e/helpers/factories.ts similarity index 100% rename from e2e/helpers/factories.ts rename to apps/web-react/e2e/helpers/factories.ts diff --git a/e2e/helpers/playwright-form.ts b/apps/web-react/e2e/helpers/playwright-form.ts similarity index 100% rename from e2e/helpers/playwright-form.ts rename to apps/web-react/e2e/helpers/playwright-form.ts diff --git a/e2e/helpers/playwright.ts b/apps/web-react/e2e/helpers/playwright.ts similarity index 100% rename from e2e/helpers/playwright.ts rename to apps/web-react/e2e/helpers/playwright.ts diff --git a/e2e/helpers/sidebar.ts b/apps/web-react/e2e/helpers/sidebar.ts similarity index 100% rename from e2e/helpers/sidebar.ts rename to apps/web-react/e2e/helpers/sidebar.ts diff --git a/e2e/helpers/tournament.ts b/apps/web-react/e2e/helpers/tournament.ts similarity index 100% rename from e2e/helpers/tournament.ts rename to apps/web-react/e2e/helpers/tournament.ts diff --git a/e2e/lfg.spec.ts b/apps/web-react/e2e/lfg.spec.ts similarity index 100% rename from e2e/lfg.spec.ts rename to apps/web-react/e2e/lfg.spec.ts diff --git a/e2e/navigation.spec.ts b/apps/web-react/e2e/navigation.spec.ts similarity index 100% rename from e2e/navigation.spec.ts rename to apps/web-react/e2e/navigation.spec.ts diff --git a/e2e/notifications.spec.ts b/apps/web-react/e2e/notifications.spec.ts similarity index 100% rename from e2e/notifications.spec.ts rename to apps/web-react/e2e/notifications.spec.ts diff --git a/e2e/object-damage-calculator.spec.ts b/apps/web-react/e2e/object-damage-calculator.spec.ts similarity index 100% rename from e2e/object-damage-calculator.spec.ts rename to apps/web-react/e2e/object-damage-calculator.spec.ts diff --git a/e2e/org.spec.ts b/apps/web-react/e2e/org.spec.ts similarity index 100% rename from e2e/org.spec.ts rename to apps/web-react/e2e/org.spec.ts diff --git a/e2e/pages/analyzer/analyzer-page.ts b/apps/web-react/e2e/pages/analyzer/analyzer-page.ts similarity index 100% rename from e2e/pages/analyzer/analyzer-page.ts rename to apps/web-react/e2e/pages/analyzer/analyzer-page.ts diff --git a/e2e/pages/analyzer/weapon-params-page.ts b/apps/web-react/e2e/pages/analyzer/weapon-params-page.ts similarity index 100% rename from e2e/pages/analyzer/weapon-params-page.ts rename to apps/web-react/e2e/pages/analyzer/weapon-params-page.ts diff --git a/e2e/pages/api/api-page.ts b/apps/web-react/e2e/pages/api/api-page.ts similarity index 100% rename from e2e/pages/api/api-page.ts rename to apps/web-react/e2e/pages/api/api-page.ts diff --git a/e2e/pages/art/new-art-page.ts b/apps/web-react/e2e/pages/art/new-art-page.ts similarity index 100% rename from e2e/pages/art/new-art-page.ts rename to apps/web-react/e2e/pages/art/new-art-page.ts diff --git a/e2e/pages/art/user-art-page.ts b/apps/web-react/e2e/pages/art/user-art-page.ts similarity index 100% rename from e2e/pages/art/user-art-page.ts rename to apps/web-react/e2e/pages/art/user-art-page.ts diff --git a/e2e/pages/associations/associations-page.ts b/apps/web-react/e2e/pages/associations/associations-page.ts similarity index 100% rename from e2e/pages/associations/associations-page.ts rename to apps/web-react/e2e/pages/associations/associations-page.ts diff --git a/e2e/pages/associations/new-association-page.ts b/apps/web-react/e2e/pages/associations/new-association-page.ts similarity index 100% rename from e2e/pages/associations/new-association-page.ts rename to apps/web-react/e2e/pages/associations/new-association-page.ts diff --git a/e2e/pages/badges/badge-page.ts b/apps/web-react/e2e/pages/badges/badge-page.ts similarity index 100% rename from e2e/pages/badges/badge-page.ts rename to apps/web-react/e2e/pages/badges/badge-page.ts diff --git a/e2e/pages/ban/admin-ban-page.ts b/apps/web-react/e2e/pages/ban/admin-ban-page.ts similarity index 100% rename from e2e/pages/ban/admin-ban-page.ts rename to apps/web-react/e2e/pages/ban/admin-ban-page.ts diff --git a/e2e/pages/ban/suspended-page.ts b/apps/web-react/e2e/pages/ban/suspended-page.ts similarity index 100% rename from e2e/pages/ban/suspended-page.ts rename to apps/web-react/e2e/pages/ban/suspended-page.ts diff --git a/e2e/pages/builds/build-card.ts b/apps/web-react/e2e/pages/builds/build-card.ts similarity index 100% rename from e2e/pages/builds/build-card.ts rename to apps/web-react/e2e/pages/builds/build-card.ts diff --git a/e2e/pages/builds/build-form-page.ts b/apps/web-react/e2e/pages/builds/build-form-page.ts similarity index 100% rename from e2e/pages/builds/build-form-page.ts rename to apps/web-react/e2e/pages/builds/build-form-page.ts diff --git a/e2e/pages/builds/builds-page.ts b/apps/web-react/e2e/pages/builds/builds-page.ts similarity index 100% rename from e2e/pages/builds/builds-page.ts rename to apps/web-react/e2e/pages/builds/builds-page.ts diff --git a/e2e/pages/builds/user-builds-page.ts b/apps/web-react/e2e/pages/builds/user-builds-page.ts similarity index 100% rename from e2e/pages/builds/user-builds-page.ts rename to apps/web-react/e2e/pages/builds/user-builds-page.ts diff --git a/e2e/pages/builds/weapon-builds-page.ts b/apps/web-react/e2e/pages/builds/weapon-builds-page.ts similarity index 100% rename from e2e/pages/builds/weapon-builds-page.ts rename to apps/web-react/e2e/pages/builds/weapon-builds-page.ts diff --git a/e2e/pages/calendar/calendar-event-page.ts b/apps/web-react/e2e/pages/calendar/calendar-event-page.ts similarity index 100% rename from e2e/pages/calendar/calendar-event-page.ts rename to apps/web-react/e2e/pages/calendar/calendar-event-page.ts diff --git a/e2e/pages/calendar/calendar-new-event-page.ts b/apps/web-react/e2e/pages/calendar/calendar-new-event-page.ts similarity index 100% rename from e2e/pages/calendar/calendar-new-event-page.ts rename to apps/web-react/e2e/pages/calendar/calendar-new-event-page.ts diff --git a/e2e/pages/calendar/calendar-page.ts b/apps/web-react/e2e/pages/calendar/calendar-page.ts similarity index 100% rename from e2e/pages/calendar/calendar-page.ts rename to apps/web-react/e2e/pages/calendar/calendar-page.ts diff --git a/e2e/pages/calendar/events-page.ts b/apps/web-react/e2e/pages/calendar/events-page.ts similarity index 100% rename from e2e/pages/calendar/events-page.ts rename to apps/web-react/e2e/pages/calendar/events-page.ts diff --git a/e2e/pages/calendar/report-winners-page.ts b/apps/web-react/e2e/pages/calendar/report-winners-page.ts similarity index 100% rename from e2e/pages/calendar/report-winners-page.ts rename to apps/web-react/e2e/pages/calendar/report-winners-page.ts diff --git a/e2e/pages/comp-analyzer/comp-analyzer-page.ts b/apps/web-react/e2e/pages/comp-analyzer/comp-analyzer-page.ts similarity index 100% rename from e2e/pages/comp-analyzer/comp-analyzer-page.ts rename to apps/web-react/e2e/pages/comp-analyzer/comp-analyzer-page.ts diff --git a/e2e/pages/friends/friends-page.ts b/apps/web-react/e2e/pages/friends/friends-page.ts similarity index 100% rename from e2e/pages/friends/friends-page.ts rename to apps/web-react/e2e/pages/friends/friends-page.ts diff --git a/e2e/pages/front-page/front-page.ts b/apps/web-react/e2e/pages/front-page/front-page.ts similarity index 100% rename from e2e/pages/front-page/front-page.ts rename to apps/web-react/e2e/pages/front-page/front-page.ts diff --git a/e2e/pages/img-upload/image-validation-page.ts b/apps/web-react/e2e/pages/img-upload/image-validation-page.ts similarity index 100% rename from e2e/pages/img-upload/image-validation-page.ts rename to apps/web-react/e2e/pages/img-upload/image-validation-page.ts diff --git a/e2e/pages/layout/anything-adder.ts b/apps/web-react/e2e/pages/layout/anything-adder.ts similarity index 100% rename from e2e/pages/layout/anything-adder.ts rename to apps/web-react/e2e/pages/layout/anything-adder.ts diff --git a/e2e/pages/layout/mobile-nav.ts b/apps/web-react/e2e/pages/layout/mobile-nav.ts similarity index 100% rename from e2e/pages/layout/mobile-nav.ts rename to apps/web-react/e2e/pages/layout/mobile-nav.ts diff --git a/e2e/pages/layout/notification-popover.ts b/apps/web-react/e2e/pages/layout/notification-popover.ts similarity index 100% rename from e2e/pages/layout/notification-popover.ts rename to apps/web-react/e2e/pages/layout/notification-popover.ts diff --git a/e2e/pages/layout/side-nav.ts b/apps/web-react/e2e/pages/layout/side-nav.ts similarity index 100% rename from e2e/pages/layout/side-nav.ts rename to apps/web-react/e2e/pages/layout/side-nav.ts diff --git a/e2e/pages/layout/top-nav-menus.ts b/apps/web-react/e2e/pages/layout/top-nav-menus.ts similarity index 100% rename from e2e/pages/layout/top-nav-menus.ts rename to apps/web-react/e2e/pages/layout/top-nav-menus.ts diff --git a/e2e/pages/lfg/lfg-page.ts b/apps/web-react/e2e/pages/lfg/lfg-page.ts similarity index 100% rename from e2e/pages/lfg/lfg-page.ts rename to apps/web-react/e2e/pages/lfg/lfg-page.ts diff --git a/e2e/pages/lfg/new-lfg-post-page.ts b/apps/web-react/e2e/pages/lfg/new-lfg-post-page.ts similarity index 100% rename from e2e/pages/lfg/new-lfg-post-page.ts rename to apps/web-react/e2e/pages/lfg/new-lfg-post-page.ts diff --git a/e2e/pages/notifications/notifications-page.ts b/apps/web-react/e2e/pages/notifications/notifications-page.ts similarity index 100% rename from e2e/pages/notifications/notifications-page.ts rename to apps/web-react/e2e/pages/notifications/notifications-page.ts diff --git a/e2e/pages/object-damage-calculator/object-damage-calculator-page.ts b/apps/web-react/e2e/pages/object-damage-calculator/object-damage-calculator-page.ts similarity index 100% rename from e2e/pages/object-damage-calculator/object-damage-calculator-page.ts rename to apps/web-react/e2e/pages/object-damage-calculator/object-damage-calculator-page.ts diff --git a/e2e/pages/org/new-organization-page.ts b/apps/web-react/e2e/pages/org/new-organization-page.ts similarity index 100% rename from e2e/pages/org/new-organization-page.ts rename to apps/web-react/e2e/pages/org/new-organization-page.ts diff --git a/e2e/pages/org/organization-edit-page.ts b/apps/web-react/e2e/pages/org/organization-edit-page.ts similarity index 100% rename from e2e/pages/org/organization-edit-page.ts rename to apps/web-react/e2e/pages/org/organization-edit-page.ts diff --git a/e2e/pages/org/organization-page.ts b/apps/web-react/e2e/pages/org/organization-page.ts similarity index 100% rename from e2e/pages/org/organization-page.ts rename to apps/web-react/e2e/pages/org/organization-page.ts diff --git a/e2e/pages/scrims/new-scrim-post-page.ts b/apps/web-react/e2e/pages/scrims/new-scrim-post-page.ts similarity index 100% rename from e2e/pages/scrims/new-scrim-post-page.ts rename to apps/web-react/e2e/pages/scrims/new-scrim-post-page.ts diff --git a/e2e/pages/scrims/scrim-page.ts b/apps/web-react/e2e/pages/scrims/scrim-page.ts similarity index 100% rename from e2e/pages/scrims/scrim-page.ts rename to apps/web-react/e2e/pages/scrims/scrim-page.ts diff --git a/e2e/pages/scrims/scrims-page.ts b/apps/web-react/e2e/pages/scrims/scrims-page.ts similarity index 100% rename from e2e/pages/scrims/scrims-page.ts rename to apps/web-react/e2e/pages/scrims/scrims-page.ts diff --git a/e2e/pages/search/global-search-dialog.ts b/apps/web-react/e2e/pages/search/global-search-dialog.ts similarity index 100% rename from e2e/pages/search/global-search-dialog.ts rename to apps/web-react/e2e/pages/search/global-search-dialog.ts diff --git a/e2e/pages/sendouq/group-card.ts b/apps/web-react/e2e/pages/sendouq/group-card.ts similarity index 100% rename from e2e/pages/sendouq/group-card.ts rename to apps/web-react/e2e/pages/sendouq/group-card.ts diff --git a/e2e/pages/sendouq/sendouq-looking-page.ts b/apps/web-react/e2e/pages/sendouq/sendouq-looking-page.ts similarity index 100% rename from e2e/pages/sendouq/sendouq-looking-page.ts rename to apps/web-react/e2e/pages/sendouq/sendouq-looking-page.ts diff --git a/e2e/pages/sendouq/sendouq-match-page.ts b/apps/web-react/e2e/pages/sendouq/sendouq-match-page.ts similarity index 100% rename from e2e/pages/sendouq/sendouq-match-page.ts rename to apps/web-react/e2e/pages/sendouq/sendouq-match-page.ts diff --git a/e2e/pages/sendouq/sendouq-page.ts b/apps/web-react/e2e/pages/sendouq/sendouq-page.ts similarity index 100% rename from e2e/pages/sendouq/sendouq-page.ts rename to apps/web-react/e2e/pages/sendouq/sendouq-page.ts diff --git a/e2e/pages/sendouq/sendouq-preparing-page.ts b/apps/web-react/e2e/pages/sendouq/sendouq-preparing-page.ts similarity index 100% rename from e2e/pages/sendouq/sendouq-preparing-page.ts rename to apps/web-react/e2e/pages/sendouq/sendouq-preparing-page.ts diff --git a/e2e/pages/sendouq/sendouq-ready-page.ts b/apps/web-react/e2e/pages/sendouq/sendouq-ready-page.ts similarity index 100% rename from e2e/pages/sendouq/sendouq-ready-page.ts rename to apps/web-react/e2e/pages/sendouq/sendouq-ready-page.ts diff --git a/e2e/pages/settings/map-mode-preferences-field.ts b/apps/web-react/e2e/pages/settings/map-mode-preferences-field.ts similarity index 100% rename from e2e/pages/settings/map-mode-preferences-field.ts rename to apps/web-react/e2e/pages/settings/map-mode-preferences-field.ts diff --git a/e2e/pages/settings/match-profile-page.ts b/apps/web-react/e2e/pages/settings/match-profile-page.ts similarity index 100% rename from e2e/pages/settings/match-profile-page.ts rename to apps/web-react/e2e/pages/settings/match-profile-page.ts diff --git a/e2e/pages/settings/settings-page.ts b/apps/web-react/e2e/pages/settings/settings-page.ts similarity index 100% rename from e2e/pages/settings/settings-page.ts rename to apps/web-react/e2e/pages/settings/settings-page.ts diff --git a/e2e/pages/team/join-team-page.ts b/apps/web-react/e2e/pages/team/join-team-page.ts similarity index 100% rename from e2e/pages/team/join-team-page.ts rename to apps/web-react/e2e/pages/team/join-team-page.ts diff --git a/e2e/pages/team/new-team-page.ts b/apps/web-react/e2e/pages/team/new-team-page.ts similarity index 100% rename from e2e/pages/team/new-team-page.ts rename to apps/web-react/e2e/pages/team/new-team-page.ts diff --git a/e2e/pages/team/team-edit-page.ts b/apps/web-react/e2e/pages/team/team-edit-page.ts similarity index 100% rename from e2e/pages/team/team-edit-page.ts rename to apps/web-react/e2e/pages/team/team-edit-page.ts diff --git a/e2e/pages/team/team-page.ts b/apps/web-react/e2e/pages/team/team-page.ts similarity index 100% rename from e2e/pages/team/team-page.ts rename to apps/web-react/e2e/pages/team/team-page.ts diff --git a/e2e/pages/team/team-roster-page.ts b/apps/web-react/e2e/pages/team/team-roster-page.ts similarity index 100% rename from e2e/pages/team/team-roster-page.ts rename to apps/web-react/e2e/pages/team/team-roster-page.ts diff --git a/e2e/pages/tier-list-maker/tier-list-maker-page.ts b/apps/web-react/e2e/pages/tier-list-maker/tier-list-maker-page.ts similarity index 100% rename from e2e/pages/tier-list-maker/tier-list-maker-page.ts rename to apps/web-react/e2e/pages/tier-list-maker/tier-list-maker-page.ts diff --git a/e2e/pages/top-search/placements-table.ts b/apps/web-react/e2e/pages/top-search/placements-table.ts similarity index 100% rename from e2e/pages/top-search/placements-table.ts rename to apps/web-react/e2e/pages/top-search/placements-table.ts diff --git a/e2e/pages/top-search/top-search-page.ts b/apps/web-react/e2e/pages/top-search/top-search-page.ts similarity index 100% rename from e2e/pages/top-search/top-search-page.ts rename to apps/web-react/e2e/pages/top-search/top-search-page.ts diff --git a/e2e/pages/top-search/top-search-player-page.ts b/apps/web-react/e2e/pages/top-search/top-search-player-page.ts similarity index 100% rename from e2e/pages/top-search/top-search-player-page.ts rename to apps/web-react/e2e/pages/top-search/top-search-player-page.ts diff --git a/e2e/pages/tournament/tournament-admin-audit-page.ts b/apps/web-react/e2e/pages/tournament/tournament-admin-audit-page.ts similarity index 100% rename from e2e/pages/tournament/tournament-admin-audit-page.ts rename to apps/web-react/e2e/pages/tournament/tournament-admin-audit-page.ts diff --git a/e2e/pages/tournament/tournament-admin-page.ts b/apps/web-react/e2e/pages/tournament/tournament-admin-page.ts similarity index 100% rename from e2e/pages/tournament/tournament-admin-page.ts rename to apps/web-react/e2e/pages/tournament/tournament-admin-page.ts diff --git a/e2e/pages/tournament/tournament-admin-registration-page.ts b/apps/web-react/e2e/pages/tournament/tournament-admin-registration-page.ts similarity index 100% rename from e2e/pages/tournament/tournament-admin-registration-page.ts rename to apps/web-react/e2e/pages/tournament/tournament-admin-registration-page.ts diff --git a/e2e/pages/tournament/tournament-admin-staff-page.ts b/apps/web-react/e2e/pages/tournament/tournament-admin-staff-page.ts similarity index 100% rename from e2e/pages/tournament/tournament-admin-staff-page.ts rename to apps/web-react/e2e/pages/tournament/tournament-admin-staff-page.ts diff --git a/e2e/pages/tournament/tournament-admin-stream-page.ts b/apps/web-react/e2e/pages/tournament/tournament-admin-stream-page.ts similarity index 100% rename from e2e/pages/tournament/tournament-admin-stream-page.ts rename to apps/web-react/e2e/pages/tournament/tournament-admin-stream-page.ts diff --git a/e2e/pages/tournament/tournament-brackets-page.ts b/apps/web-react/e2e/pages/tournament/tournament-brackets-page.ts similarity index 100% rename from e2e/pages/tournament/tournament-brackets-page.ts rename to apps/web-react/e2e/pages/tournament/tournament-brackets-page.ts diff --git a/e2e/pages/tournament/tournament-info-page.ts b/apps/web-react/e2e/pages/tournament/tournament-info-page.ts similarity index 100% rename from e2e/pages/tournament/tournament-info-page.ts rename to apps/web-react/e2e/pages/tournament/tournament-info-page.ts diff --git a/e2e/pages/tournament/tournament-join-page.ts b/apps/web-react/e2e/pages/tournament/tournament-join-page.ts similarity index 100% rename from e2e/pages/tournament/tournament-join-page.ts rename to apps/web-react/e2e/pages/tournament/tournament-join-page.ts diff --git a/e2e/pages/tournament/tournament-match-page.ts b/apps/web-react/e2e/pages/tournament/tournament-match-page.ts similarity index 100% rename from e2e/pages/tournament/tournament-match-page.ts rename to apps/web-react/e2e/pages/tournament/tournament-match-page.ts diff --git a/e2e/pages/tournament/tournament-nav.ts b/apps/web-react/e2e/pages/tournament/tournament-nav.ts similarity index 100% rename from e2e/pages/tournament/tournament-nav.ts rename to apps/web-react/e2e/pages/tournament/tournament-nav.ts diff --git a/e2e/pages/tournament/tournament-page.ts b/apps/web-react/e2e/pages/tournament/tournament-page.ts similarity index 100% rename from e2e/pages/tournament/tournament-page.ts rename to apps/web-react/e2e/pages/tournament/tournament-page.ts diff --git a/e2e/pages/tournament/tournament-register-page.ts b/apps/web-react/e2e/pages/tournament/tournament-register-page.ts similarity index 100% rename from e2e/pages/tournament/tournament-register-page.ts rename to apps/web-react/e2e/pages/tournament/tournament-register-page.ts diff --git a/e2e/pages/tournament/tournament-results-page.ts b/apps/web-react/e2e/pages/tournament/tournament-results-page.ts similarity index 100% rename from e2e/pages/tournament/tournament-results-page.ts rename to apps/web-react/e2e/pages/tournament/tournament-results-page.ts diff --git a/e2e/pages/tournament/tournament-rules-page.ts b/apps/web-react/e2e/pages/tournament/tournament-rules-page.ts similarity index 100% rename from e2e/pages/tournament/tournament-rules-page.ts rename to apps/web-react/e2e/pages/tournament/tournament-rules-page.ts diff --git a/e2e/pages/tournament/tournament-seeds-page.ts b/apps/web-react/e2e/pages/tournament/tournament-seeds-page.ts similarity index 100% rename from e2e/pages/tournament/tournament-seeds-page.ts rename to apps/web-react/e2e/pages/tournament/tournament-seeds-page.ts diff --git a/e2e/pages/tournament/tournament-streams-page.ts b/apps/web-react/e2e/pages/tournament/tournament-streams-page.ts similarity index 100% rename from e2e/pages/tournament/tournament-streams-page.ts rename to apps/web-react/e2e/pages/tournament/tournament-streams-page.ts diff --git a/e2e/pages/tournament/tournament-subs-page.ts b/apps/web-react/e2e/pages/tournament/tournament-subs-page.ts similarity index 100% rename from e2e/pages/tournament/tournament-subs-page.ts rename to apps/web-react/e2e/pages/tournament/tournament-subs-page.ts diff --git a/e2e/pages/tournament/tournament-team-page.ts b/apps/web-react/e2e/pages/tournament/tournament-team-page.ts similarity index 100% rename from e2e/pages/tournament/tournament-team-page.ts rename to apps/web-react/e2e/pages/tournament/tournament-team-page.ts diff --git a/e2e/pages/tournament/tournament-teams-page.ts b/apps/web-react/e2e/pages/tournament/tournament-teams-page.ts similarity index 100% rename from e2e/pages/tournament/tournament-teams-page.ts rename to apps/web-react/e2e/pages/tournament/tournament-teams-page.ts diff --git a/e2e/pages/trophies/new-trophy-page.ts b/apps/web-react/e2e/pages/trophies/new-trophy-page.ts similarity index 100% rename from e2e/pages/trophies/new-trophy-page.ts rename to apps/web-react/e2e/pages/trophies/new-trophy-page.ts diff --git a/e2e/pages/trophies/trophies-page.ts b/apps/web-react/e2e/pages/trophies/trophies-page.ts similarity index 100% rename from e2e/pages/trophies/trophies-page.ts rename to apps/web-react/e2e/pages/trophies/trophies-page.ts diff --git a/e2e/pages/user/user-admin-page.ts b/apps/web-react/e2e/pages/user/user-admin-page.ts similarity index 100% rename from e2e/pages/user/user-admin-page.ts rename to apps/web-react/e2e/pages/user/user-admin-page.ts diff --git a/e2e/pages/user/user-card-edit-page.ts b/apps/web-react/e2e/pages/user/user-card-edit-page.ts similarity index 100% rename from e2e/pages/user/user-card-edit-page.ts rename to apps/web-react/e2e/pages/user/user-card-edit-page.ts diff --git a/e2e/pages/user/user-card.ts b/apps/web-react/e2e/pages/user/user-card.ts similarity index 100% rename from e2e/pages/user/user-card.ts rename to apps/web-react/e2e/pages/user/user-card.ts diff --git a/e2e/pages/user/user-edit-profile-page.ts b/apps/web-react/e2e/pages/user/user-edit-profile-page.ts similarity index 100% rename from e2e/pages/user/user-edit-profile-page.ts rename to apps/web-react/e2e/pages/user/user-edit-profile-page.ts diff --git a/e2e/pages/user/user-page.ts b/apps/web-react/e2e/pages/user/user-page.ts similarity index 100% rename from e2e/pages/user/user-page.ts rename to apps/web-react/e2e/pages/user/user-page.ts diff --git a/e2e/pages/user/user-results-page.ts b/apps/web-react/e2e/pages/user/user-results-page.ts similarity index 100% rename from e2e/pages/user/user-results-page.ts rename to apps/web-react/e2e/pages/user/user-results-page.ts diff --git a/e2e/pages/user/user-seasons-page.ts b/apps/web-react/e2e/pages/user/user-seasons-page.ts similarity index 100% rename from e2e/pages/user/user-seasons-page.ts rename to apps/web-react/e2e/pages/user/user-seasons-page.ts diff --git a/e2e/pages/user/welcome-page.ts b/apps/web-react/e2e/pages/user/welcome-page.ts similarity index 100% rename from e2e/pages/user/welcome-page.ts rename to apps/web-react/e2e/pages/user/welcome-page.ts diff --git a/e2e/pages/vods/new-vod-page.ts b/apps/web-react/e2e/pages/vods/new-vod-page.ts similarity index 100% rename from e2e/pages/vods/new-vod-page.ts rename to apps/web-react/e2e/pages/vods/new-vod-page.ts diff --git a/e2e/pages/vods/vod-page.ts b/apps/web-react/e2e/pages/vods/vod-page.ts similarity index 100% rename from e2e/pages/vods/vod-page.ts rename to apps/web-react/e2e/pages/vods/vod-page.ts diff --git a/e2e/pages/vods/vods-page.ts b/apps/web-react/e2e/pages/vods/vods-page.ts similarity index 100% rename from e2e/pages/vods/vods-page.ts rename to apps/web-react/e2e/pages/vods/vods-page.ts diff --git a/e2e/params.spec.ts b/apps/web-react/e2e/params.spec.ts similarity index 100% rename from e2e/params.spec.ts rename to apps/web-react/e2e/params.spec.ts diff --git a/e2e/scrims.spec.ts b/apps/web-react/e2e/scrims.spec.ts similarity index 100% rename from e2e/scrims.spec.ts rename to apps/web-react/e2e/scrims.spec.ts diff --git a/e2e/sendouq-match.spec.ts b/apps/web-react/e2e/sendouq-match.spec.ts similarity index 100% rename from e2e/sendouq-match.spec.ts rename to apps/web-react/e2e/sendouq-match.spec.ts diff --git a/e2e/sendouq.spec.ts b/apps/web-react/e2e/sendouq.spec.ts similarity index 100% rename from e2e/sendouq.spec.ts rename to apps/web-react/e2e/sendouq.spec.ts diff --git a/e2e/settings.spec.ts b/apps/web-react/e2e/settings.spec.ts similarity index 100% rename from e2e/settings.spec.ts rename to apps/web-react/e2e/settings.spec.ts diff --git a/e2e/sidebar-events.spec.ts b/apps/web-react/e2e/sidebar-events.spec.ts similarity index 100% rename from e2e/sidebar-events.spec.ts rename to apps/web-react/e2e/sidebar-events.spec.ts diff --git a/e2e/sidebar-friends.spec.ts b/apps/web-react/e2e/sidebar-friends.spec.ts similarity index 100% rename from e2e/sidebar-friends.spec.ts rename to apps/web-react/e2e/sidebar-friends.spec.ts diff --git a/e2e/sidebar-streams.spec.ts b/apps/web-react/e2e/sidebar-streams.spec.ts similarity index 100% rename from e2e/sidebar-streams.spec.ts rename to apps/web-react/e2e/sidebar-streams.spec.ts diff --git a/e2e/team.spec.ts b/apps/web-react/e2e/team.spec.ts similarity index 100% rename from e2e/team.spec.ts rename to apps/web-react/e2e/team.spec.ts diff --git a/e2e/tier-list-maker.spec.ts b/apps/web-react/e2e/tier-list-maker.spec.ts similarity index 100% rename from e2e/tier-list-maker.spec.ts rename to apps/web-react/e2e/tier-list-maker.spec.ts diff --git a/e2e/top-search.spec.ts b/apps/web-react/e2e/top-search.spec.ts similarity index 100% rename from e2e/top-search.spec.ts rename to apps/web-react/e2e/top-search.spec.ts diff --git a/e2e/tournament-ab-divisions.spec.ts b/apps/web-react/e2e/tournament-ab-divisions.spec.ts similarity index 100% rename from e2e/tournament-ab-divisions.spec.ts rename to apps/web-react/e2e/tournament-ab-divisions.spec.ts diff --git a/e2e/tournament-admin.spec.ts b/apps/web-react/e2e/tournament-admin.spec.ts similarity index 100% rename from e2e/tournament-admin.spec.ts rename to apps/web-react/e2e/tournament-admin.spec.ts diff --git a/e2e/tournament-bracket-elimination.spec.ts b/apps/web-react/e2e/tournament-bracket-elimination.spec.ts similarity index 100% rename from e2e/tournament-bracket-elimination.spec.ts rename to apps/web-react/e2e/tournament-bracket-elimination.spec.ts diff --git a/e2e/tournament-bracket-multi-stage.spec.ts b/apps/web-react/e2e/tournament-bracket-multi-stage.spec.ts similarity index 100% rename from e2e/tournament-bracket-multi-stage.spec.ts rename to apps/web-react/e2e/tournament-bracket-multi-stage.spec.ts diff --git a/e2e/tournament-bracket-pick-ban.spec.ts b/apps/web-react/e2e/tournament-bracket-pick-ban.spec.ts similarity index 100% rename from e2e/tournament-bracket-pick-ban.spec.ts rename to apps/web-react/e2e/tournament-bracket-pick-ban.spec.ts diff --git a/e2e/tournament-bracket-round-robin.spec.ts b/apps/web-react/e2e/tournament-bracket-round-robin.spec.ts similarity index 100% rename from e2e/tournament-bracket-round-robin.spec.ts rename to apps/web-react/e2e/tournament-bracket-round-robin.spec.ts diff --git a/e2e/tournament-bracket-swiss.spec.ts b/apps/web-react/e2e/tournament-bracket-swiss.spec.ts similarity index 100% rename from e2e/tournament-bracket-swiss.spec.ts rename to apps/web-react/e2e/tournament-bracket-swiss.spec.ts diff --git a/e2e/tournament-bracket.spec.ts b/apps/web-react/e2e/tournament-bracket.spec.ts similarity index 100% rename from e2e/tournament-bracket.spec.ts rename to apps/web-react/e2e/tournament-bracket.spec.ts diff --git a/e2e/tournament-invitational.spec.ts b/apps/web-react/e2e/tournament-invitational.spec.ts similarity index 100% rename from e2e/tournament-invitational.spec.ts rename to apps/web-react/e2e/tournament-invitational.spec.ts diff --git a/e2e/tournament-staff.spec.ts b/apps/web-react/e2e/tournament-staff.spec.ts similarity index 100% rename from e2e/tournament-staff.spec.ts rename to apps/web-react/e2e/tournament-staff.spec.ts diff --git a/e2e/tournament-streams.spec.ts b/apps/web-react/e2e/tournament-streams.spec.ts similarity index 100% rename from e2e/tournament-streams.spec.ts rename to apps/web-react/e2e/tournament-streams.spec.ts diff --git a/e2e/tournament-tiers.spec.ts b/apps/web-react/e2e/tournament-tiers.spec.ts similarity index 100% rename from e2e/tournament-tiers.spec.ts rename to apps/web-react/e2e/tournament-tiers.spec.ts diff --git a/e2e/tournament.spec.ts b/apps/web-react/e2e/tournament.spec.ts similarity index 100% rename from e2e/tournament.spec.ts rename to apps/web-react/e2e/tournament.spec.ts diff --git a/e2e/trophies.spec.ts b/apps/web-react/e2e/trophies.spec.ts similarity index 100% rename from e2e/trophies.spec.ts rename to apps/web-react/e2e/trophies.spec.ts diff --git a/e2e/user-card.spec.ts b/apps/web-react/e2e/user-card.spec.ts similarity index 100% rename from e2e/user-card.spec.ts rename to apps/web-react/e2e/user-card.spec.ts diff --git a/e2e/user-page.spec.ts b/apps/web-react/e2e/user-page.spec.ts similarity index 100% rename from e2e/user-page.spec.ts rename to apps/web-react/e2e/user-page.spec.ts diff --git a/e2e/user-report.spec.ts b/apps/web-react/e2e/user-report.spec.ts similarity index 100% rename from e2e/user-report.spec.ts rename to apps/web-react/e2e/user-report.spec.ts diff --git a/e2e/vods.spec.ts b/apps/web-react/e2e/vods.spec.ts similarity index 100% rename from e2e/vods.spec.ts rename to apps/web-react/e2e/vods.spec.ts diff --git a/e2e/welcome.spec.ts b/apps/web-react/e2e/welcome.spec.ts similarity index 100% rename from e2e/welcome.spec.ts rename to apps/web-react/e2e/welcome.spec.ts diff --git a/knip.ts b/apps/web-react/knip.ts similarity index 100% rename from knip.ts rename to apps/web-react/knip.ts diff --git a/locales/da/analyzer.json b/apps/web-react/locales/da/analyzer.json similarity index 100% rename from locales/da/analyzer.json rename to apps/web-react/locales/da/analyzer.json diff --git a/locales/da/art.json b/apps/web-react/locales/da/art.json similarity index 100% rename from locales/da/art.json rename to apps/web-react/locales/da/art.json diff --git a/locales/da/badges.json b/apps/web-react/locales/da/badges.json similarity index 100% rename from locales/da/badges.json rename to apps/web-react/locales/da/badges.json diff --git a/locales/da/builds.json b/apps/web-react/locales/da/builds.json similarity index 100% rename from locales/da/builds.json rename to apps/web-react/locales/da/builds.json diff --git a/locales/da/calendar.json b/apps/web-react/locales/da/calendar.json similarity index 100% rename from locales/da/calendar.json rename to apps/web-react/locales/da/calendar.json diff --git a/locales/da/common.json b/apps/web-react/locales/da/common.json similarity index 100% rename from locales/da/common.json rename to apps/web-react/locales/da/common.json diff --git a/locales/da/contributions.json b/apps/web-react/locales/da/contributions.json similarity index 100% rename from locales/da/contributions.json rename to apps/web-react/locales/da/contributions.json diff --git a/locales/da/faq.json b/apps/web-react/locales/da/faq.json similarity index 100% rename from locales/da/faq.json rename to apps/web-react/locales/da/faq.json diff --git a/locales/da/forms.json b/apps/web-react/locales/da/forms.json similarity index 100% rename from locales/da/forms.json rename to apps/web-react/locales/da/forms.json diff --git a/locales/da/friends.json b/apps/web-react/locales/da/friends.json similarity index 100% rename from locales/da/friends.json rename to apps/web-react/locales/da/friends.json diff --git a/locales/da/front.json b/apps/web-react/locales/da/front.json similarity index 100% rename from locales/da/front.json rename to apps/web-react/locales/da/front.json diff --git a/locales/da/game-badges.json b/apps/web-react/locales/da/game-badges.json similarity index 100% rename from locales/da/game-badges.json rename to apps/web-react/locales/da/game-badges.json diff --git a/locales/da/game-misc.json b/apps/web-react/locales/da/game-misc.json similarity index 100% rename from locales/da/game-misc.json rename to apps/web-react/locales/da/game-misc.json diff --git a/locales/da/gear.json b/apps/web-react/locales/da/gear.json similarity index 100% rename from locales/da/gear.json rename to apps/web-react/locales/da/gear.json diff --git a/locales/da/lfg.json b/apps/web-react/locales/da/lfg.json similarity index 100% rename from locales/da/lfg.json rename to apps/web-react/locales/da/lfg.json diff --git a/locales/da/org.json b/apps/web-react/locales/da/org.json similarity index 100% rename from locales/da/org.json rename to apps/web-react/locales/da/org.json diff --git a/locales/da/params.json b/apps/web-react/locales/da/params.json similarity index 100% rename from locales/da/params.json rename to apps/web-react/locales/da/params.json diff --git a/locales/da/q.json b/apps/web-react/locales/da/q.json similarity index 100% rename from locales/da/q.json rename to apps/web-react/locales/da/q.json diff --git a/locales/da/scrims.json b/apps/web-react/locales/da/scrims.json similarity index 100% rename from locales/da/scrims.json rename to apps/web-react/locales/da/scrims.json diff --git a/locales/da/settings.json b/apps/web-react/locales/da/settings.json similarity index 100% rename from locales/da/settings.json rename to apps/web-react/locales/da/settings.json diff --git a/locales/da/team.json b/apps/web-react/locales/da/team.json similarity index 100% rename from locales/da/team.json rename to apps/web-react/locales/da/team.json diff --git a/locales/da/tier-list-maker.json b/apps/web-react/locales/da/tier-list-maker.json similarity index 100% rename from locales/da/tier-list-maker.json rename to apps/web-react/locales/da/tier-list-maker.json diff --git a/locales/da/tournament.json b/apps/web-react/locales/da/tournament.json similarity index 100% rename from locales/da/tournament.json rename to apps/web-react/locales/da/tournament.json diff --git a/locales/da/trophies.json b/apps/web-react/locales/da/trophies.json similarity index 100% rename from locales/da/trophies.json rename to apps/web-react/locales/da/trophies.json diff --git a/locales/da/user.json b/apps/web-react/locales/da/user.json similarity index 100% rename from locales/da/user.json rename to apps/web-react/locales/da/user.json diff --git a/locales/da/vods.json b/apps/web-react/locales/da/vods.json similarity index 100% rename from locales/da/vods.json rename to apps/web-react/locales/da/vods.json diff --git a/locales/da/weapons.json b/apps/web-react/locales/da/weapons.json similarity index 100% rename from locales/da/weapons.json rename to apps/web-react/locales/da/weapons.json diff --git a/locales/da/welcome.json b/apps/web-react/locales/da/welcome.json similarity index 100% rename from locales/da/welcome.json rename to apps/web-react/locales/da/welcome.json diff --git a/locales/de/analyzer.json b/apps/web-react/locales/de/analyzer.json similarity index 100% rename from locales/de/analyzer.json rename to apps/web-react/locales/de/analyzer.json diff --git a/locales/de/art.json b/apps/web-react/locales/de/art.json similarity index 100% rename from locales/de/art.json rename to apps/web-react/locales/de/art.json diff --git a/locales/de/badges.json b/apps/web-react/locales/de/badges.json similarity index 100% rename from locales/de/badges.json rename to apps/web-react/locales/de/badges.json diff --git a/locales/de/builds.json b/apps/web-react/locales/de/builds.json similarity index 100% rename from locales/de/builds.json rename to apps/web-react/locales/de/builds.json diff --git a/locales/de/calendar.json b/apps/web-react/locales/de/calendar.json similarity index 100% rename from locales/de/calendar.json rename to apps/web-react/locales/de/calendar.json diff --git a/locales/de/common.json b/apps/web-react/locales/de/common.json similarity index 100% rename from locales/de/common.json rename to apps/web-react/locales/de/common.json diff --git a/locales/de/contributions.json b/apps/web-react/locales/de/contributions.json similarity index 100% rename from locales/de/contributions.json rename to apps/web-react/locales/de/contributions.json diff --git a/locales/de/faq.json b/apps/web-react/locales/de/faq.json similarity index 100% rename from locales/de/faq.json rename to apps/web-react/locales/de/faq.json diff --git a/locales/de/forms.json b/apps/web-react/locales/de/forms.json similarity index 100% rename from locales/de/forms.json rename to apps/web-react/locales/de/forms.json diff --git a/locales/de/friends.json b/apps/web-react/locales/de/friends.json similarity index 100% rename from locales/de/friends.json rename to apps/web-react/locales/de/friends.json diff --git a/locales/de/front.json b/apps/web-react/locales/de/front.json similarity index 100% rename from locales/de/front.json rename to apps/web-react/locales/de/front.json diff --git a/locales/de/game-badges.json b/apps/web-react/locales/de/game-badges.json similarity index 100% rename from locales/de/game-badges.json rename to apps/web-react/locales/de/game-badges.json diff --git a/locales/de/game-misc.json b/apps/web-react/locales/de/game-misc.json similarity index 100% rename from locales/de/game-misc.json rename to apps/web-react/locales/de/game-misc.json diff --git a/locales/de/gear.json b/apps/web-react/locales/de/gear.json similarity index 100% rename from locales/de/gear.json rename to apps/web-react/locales/de/gear.json diff --git a/locales/de/lfg.json b/apps/web-react/locales/de/lfg.json similarity index 100% rename from locales/de/lfg.json rename to apps/web-react/locales/de/lfg.json diff --git a/locales/de/org.json b/apps/web-react/locales/de/org.json similarity index 100% rename from locales/de/org.json rename to apps/web-react/locales/de/org.json diff --git a/locales/de/params.json b/apps/web-react/locales/de/params.json similarity index 100% rename from locales/de/params.json rename to apps/web-react/locales/de/params.json diff --git a/locales/de/q.json b/apps/web-react/locales/de/q.json similarity index 100% rename from locales/de/q.json rename to apps/web-react/locales/de/q.json diff --git a/locales/de/scrims.json b/apps/web-react/locales/de/scrims.json similarity index 100% rename from locales/de/scrims.json rename to apps/web-react/locales/de/scrims.json diff --git a/locales/de/settings.json b/apps/web-react/locales/de/settings.json similarity index 100% rename from locales/de/settings.json rename to apps/web-react/locales/de/settings.json diff --git a/locales/de/team.json b/apps/web-react/locales/de/team.json similarity index 100% rename from locales/de/team.json rename to apps/web-react/locales/de/team.json diff --git a/locales/de/tier-list-maker.json b/apps/web-react/locales/de/tier-list-maker.json similarity index 100% rename from locales/de/tier-list-maker.json rename to apps/web-react/locales/de/tier-list-maker.json diff --git a/locales/de/tournament.json b/apps/web-react/locales/de/tournament.json similarity index 100% rename from locales/de/tournament.json rename to apps/web-react/locales/de/tournament.json diff --git a/locales/de/trophies.json b/apps/web-react/locales/de/trophies.json similarity index 100% rename from locales/de/trophies.json rename to apps/web-react/locales/de/trophies.json diff --git a/locales/de/user.json b/apps/web-react/locales/de/user.json similarity index 100% rename from locales/de/user.json rename to apps/web-react/locales/de/user.json diff --git a/locales/de/vods.json b/apps/web-react/locales/de/vods.json similarity index 100% rename from locales/de/vods.json rename to apps/web-react/locales/de/vods.json diff --git a/locales/de/weapons.json b/apps/web-react/locales/de/weapons.json similarity index 100% rename from locales/de/weapons.json rename to apps/web-react/locales/de/weapons.json diff --git a/locales/de/welcome.json b/apps/web-react/locales/de/welcome.json similarity index 100% rename from locales/de/welcome.json rename to apps/web-react/locales/de/welcome.json diff --git a/locales/en/analyzer.json b/apps/web-react/locales/en/analyzer.json similarity index 100% rename from locales/en/analyzer.json rename to apps/web-react/locales/en/analyzer.json diff --git a/locales/en/art.json b/apps/web-react/locales/en/art.json similarity index 100% rename from locales/en/art.json rename to apps/web-react/locales/en/art.json diff --git a/locales/en/badges.json b/apps/web-react/locales/en/badges.json similarity index 100% rename from locales/en/badges.json rename to apps/web-react/locales/en/badges.json diff --git a/locales/en/builds.json b/apps/web-react/locales/en/builds.json similarity index 100% rename from locales/en/builds.json rename to apps/web-react/locales/en/builds.json diff --git a/locales/en/calendar.json b/apps/web-react/locales/en/calendar.json similarity index 100% rename from locales/en/calendar.json rename to apps/web-react/locales/en/calendar.json diff --git a/locales/en/common.json b/apps/web-react/locales/en/common.json similarity index 100% rename from locales/en/common.json rename to apps/web-react/locales/en/common.json diff --git a/locales/en/contributions.json b/apps/web-react/locales/en/contributions.json similarity index 100% rename from locales/en/contributions.json rename to apps/web-react/locales/en/contributions.json diff --git a/locales/en/faq.json b/apps/web-react/locales/en/faq.json similarity index 100% rename from locales/en/faq.json rename to apps/web-react/locales/en/faq.json diff --git a/locales/en/forms.json b/apps/web-react/locales/en/forms.json similarity index 100% rename from locales/en/forms.json rename to apps/web-react/locales/en/forms.json diff --git a/locales/en/friends.json b/apps/web-react/locales/en/friends.json similarity index 100% rename from locales/en/friends.json rename to apps/web-react/locales/en/friends.json diff --git a/locales/en/front.json b/apps/web-react/locales/en/front.json similarity index 100% rename from locales/en/front.json rename to apps/web-react/locales/en/front.json diff --git a/locales/en/game-badges.json b/apps/web-react/locales/en/game-badges.json similarity index 100% rename from locales/en/game-badges.json rename to apps/web-react/locales/en/game-badges.json diff --git a/locales/en/game-misc.json b/apps/web-react/locales/en/game-misc.json similarity index 100% rename from locales/en/game-misc.json rename to apps/web-react/locales/en/game-misc.json diff --git a/locales/en/gear.json b/apps/web-react/locales/en/gear.json similarity index 100% rename from locales/en/gear.json rename to apps/web-react/locales/en/gear.json diff --git a/locales/en/lfg.json b/apps/web-react/locales/en/lfg.json similarity index 100% rename from locales/en/lfg.json rename to apps/web-react/locales/en/lfg.json diff --git a/locales/en/org.json b/apps/web-react/locales/en/org.json similarity index 100% rename from locales/en/org.json rename to apps/web-react/locales/en/org.json diff --git a/locales/en/params.json b/apps/web-react/locales/en/params.json similarity index 100% rename from locales/en/params.json rename to apps/web-react/locales/en/params.json diff --git a/locales/en/q.json b/apps/web-react/locales/en/q.json similarity index 100% rename from locales/en/q.json rename to apps/web-react/locales/en/q.json diff --git a/locales/en/scrims.json b/apps/web-react/locales/en/scrims.json similarity index 100% rename from locales/en/scrims.json rename to apps/web-react/locales/en/scrims.json diff --git a/locales/en/settings.json b/apps/web-react/locales/en/settings.json similarity index 100% rename from locales/en/settings.json rename to apps/web-react/locales/en/settings.json diff --git a/locales/en/team.json b/apps/web-react/locales/en/team.json similarity index 100% rename from locales/en/team.json rename to apps/web-react/locales/en/team.json diff --git a/locales/en/tier-list-maker.json b/apps/web-react/locales/en/tier-list-maker.json similarity index 100% rename from locales/en/tier-list-maker.json rename to apps/web-react/locales/en/tier-list-maker.json diff --git a/locales/en/tournament.json b/apps/web-react/locales/en/tournament.json similarity index 100% rename from locales/en/tournament.json rename to apps/web-react/locales/en/tournament.json diff --git a/locales/en/trophies.json b/apps/web-react/locales/en/trophies.json similarity index 100% rename from locales/en/trophies.json rename to apps/web-react/locales/en/trophies.json diff --git a/locales/en/user.json b/apps/web-react/locales/en/user.json similarity index 100% rename from locales/en/user.json rename to apps/web-react/locales/en/user.json diff --git a/locales/en/vods.json b/apps/web-react/locales/en/vods.json similarity index 100% rename from locales/en/vods.json rename to apps/web-react/locales/en/vods.json diff --git a/locales/en/weapons.json b/apps/web-react/locales/en/weapons.json similarity index 100% rename from locales/en/weapons.json rename to apps/web-react/locales/en/weapons.json diff --git a/locales/en/welcome.json b/apps/web-react/locales/en/welcome.json similarity index 100% rename from locales/en/welcome.json rename to apps/web-react/locales/en/welcome.json diff --git a/locales/es-ES/analyzer.json b/apps/web-react/locales/es-ES/analyzer.json similarity index 100% rename from locales/es-ES/analyzer.json rename to apps/web-react/locales/es-ES/analyzer.json diff --git a/locales/es-ES/art.json b/apps/web-react/locales/es-ES/art.json similarity index 100% rename from locales/es-ES/art.json rename to apps/web-react/locales/es-ES/art.json diff --git a/locales/es-ES/badges.json b/apps/web-react/locales/es-ES/badges.json similarity index 100% rename from locales/es-ES/badges.json rename to apps/web-react/locales/es-ES/badges.json diff --git a/locales/es-ES/builds.json b/apps/web-react/locales/es-ES/builds.json similarity index 100% rename from locales/es-ES/builds.json rename to apps/web-react/locales/es-ES/builds.json diff --git a/locales/es-ES/calendar.json b/apps/web-react/locales/es-ES/calendar.json similarity index 100% rename from locales/es-ES/calendar.json rename to apps/web-react/locales/es-ES/calendar.json diff --git a/locales/es-ES/common.json b/apps/web-react/locales/es-ES/common.json similarity index 100% rename from locales/es-ES/common.json rename to apps/web-react/locales/es-ES/common.json diff --git a/locales/es-ES/contributions.json b/apps/web-react/locales/es-ES/contributions.json similarity index 100% rename from locales/es-ES/contributions.json rename to apps/web-react/locales/es-ES/contributions.json diff --git a/locales/es-ES/faq.json b/apps/web-react/locales/es-ES/faq.json similarity index 100% rename from locales/es-ES/faq.json rename to apps/web-react/locales/es-ES/faq.json diff --git a/locales/es-ES/forms.json b/apps/web-react/locales/es-ES/forms.json similarity index 100% rename from locales/es-ES/forms.json rename to apps/web-react/locales/es-ES/forms.json diff --git a/locales/es-ES/friends.json b/apps/web-react/locales/es-ES/friends.json similarity index 100% rename from locales/es-ES/friends.json rename to apps/web-react/locales/es-ES/friends.json diff --git a/locales/es-ES/front.json b/apps/web-react/locales/es-ES/front.json similarity index 100% rename from locales/es-ES/front.json rename to apps/web-react/locales/es-ES/front.json diff --git a/locales/es-ES/game-badges.json b/apps/web-react/locales/es-ES/game-badges.json similarity index 100% rename from locales/es-ES/game-badges.json rename to apps/web-react/locales/es-ES/game-badges.json diff --git a/locales/es-ES/game-misc.json b/apps/web-react/locales/es-ES/game-misc.json similarity index 100% rename from locales/es-ES/game-misc.json rename to apps/web-react/locales/es-ES/game-misc.json diff --git a/locales/es-ES/gear.json b/apps/web-react/locales/es-ES/gear.json similarity index 100% rename from locales/es-ES/gear.json rename to apps/web-react/locales/es-ES/gear.json diff --git a/locales/es-ES/lfg.json b/apps/web-react/locales/es-ES/lfg.json similarity index 100% rename from locales/es-ES/lfg.json rename to apps/web-react/locales/es-ES/lfg.json diff --git a/locales/es-ES/org.json b/apps/web-react/locales/es-ES/org.json similarity index 100% rename from locales/es-ES/org.json rename to apps/web-react/locales/es-ES/org.json diff --git a/locales/es-ES/params.json b/apps/web-react/locales/es-ES/params.json similarity index 100% rename from locales/es-ES/params.json rename to apps/web-react/locales/es-ES/params.json diff --git a/locales/es-ES/q.json b/apps/web-react/locales/es-ES/q.json similarity index 100% rename from locales/es-ES/q.json rename to apps/web-react/locales/es-ES/q.json diff --git a/locales/es-ES/scrims.json b/apps/web-react/locales/es-ES/scrims.json similarity index 100% rename from locales/es-ES/scrims.json rename to apps/web-react/locales/es-ES/scrims.json diff --git a/locales/es-ES/settings.json b/apps/web-react/locales/es-ES/settings.json similarity index 100% rename from locales/es-ES/settings.json rename to apps/web-react/locales/es-ES/settings.json diff --git a/locales/es-ES/team.json b/apps/web-react/locales/es-ES/team.json similarity index 100% rename from locales/es-ES/team.json rename to apps/web-react/locales/es-ES/team.json diff --git a/locales/es-ES/tier-list-maker.json b/apps/web-react/locales/es-ES/tier-list-maker.json similarity index 100% rename from locales/es-ES/tier-list-maker.json rename to apps/web-react/locales/es-ES/tier-list-maker.json diff --git a/locales/es-ES/tournament.json b/apps/web-react/locales/es-ES/tournament.json similarity index 100% rename from locales/es-ES/tournament.json rename to apps/web-react/locales/es-ES/tournament.json diff --git a/locales/es-ES/trophies.json b/apps/web-react/locales/es-ES/trophies.json similarity index 100% rename from locales/es-ES/trophies.json rename to apps/web-react/locales/es-ES/trophies.json diff --git a/locales/es-ES/user.json b/apps/web-react/locales/es-ES/user.json similarity index 100% rename from locales/es-ES/user.json rename to apps/web-react/locales/es-ES/user.json diff --git a/locales/es-ES/vods.json b/apps/web-react/locales/es-ES/vods.json similarity index 100% rename from locales/es-ES/vods.json rename to apps/web-react/locales/es-ES/vods.json diff --git a/locales/es-ES/weapons.json b/apps/web-react/locales/es-ES/weapons.json similarity index 100% rename from locales/es-ES/weapons.json rename to apps/web-react/locales/es-ES/weapons.json diff --git a/locales/es-ES/welcome.json b/apps/web-react/locales/es-ES/welcome.json similarity index 100% rename from locales/es-ES/welcome.json rename to apps/web-react/locales/es-ES/welcome.json diff --git a/locales/es-US/analyzer.json b/apps/web-react/locales/es-US/analyzer.json similarity index 100% rename from locales/es-US/analyzer.json rename to apps/web-react/locales/es-US/analyzer.json diff --git a/locales/es-US/art.json b/apps/web-react/locales/es-US/art.json similarity index 100% rename from locales/es-US/art.json rename to apps/web-react/locales/es-US/art.json diff --git a/locales/es-US/badges.json b/apps/web-react/locales/es-US/badges.json similarity index 100% rename from locales/es-US/badges.json rename to apps/web-react/locales/es-US/badges.json diff --git a/locales/es-US/builds.json b/apps/web-react/locales/es-US/builds.json similarity index 100% rename from locales/es-US/builds.json rename to apps/web-react/locales/es-US/builds.json diff --git a/locales/es-US/calendar.json b/apps/web-react/locales/es-US/calendar.json similarity index 100% rename from locales/es-US/calendar.json rename to apps/web-react/locales/es-US/calendar.json diff --git a/locales/es-US/common.json b/apps/web-react/locales/es-US/common.json similarity index 100% rename from locales/es-US/common.json rename to apps/web-react/locales/es-US/common.json diff --git a/locales/es-US/contributions.json b/apps/web-react/locales/es-US/contributions.json similarity index 100% rename from locales/es-US/contributions.json rename to apps/web-react/locales/es-US/contributions.json diff --git a/locales/es-US/faq.json b/apps/web-react/locales/es-US/faq.json similarity index 100% rename from locales/es-US/faq.json rename to apps/web-react/locales/es-US/faq.json diff --git a/locales/es-US/forms.json b/apps/web-react/locales/es-US/forms.json similarity index 100% rename from locales/es-US/forms.json rename to apps/web-react/locales/es-US/forms.json diff --git a/locales/es-US/friends.json b/apps/web-react/locales/es-US/friends.json similarity index 100% rename from locales/es-US/friends.json rename to apps/web-react/locales/es-US/friends.json diff --git a/locales/es-US/front.json b/apps/web-react/locales/es-US/front.json similarity index 100% rename from locales/es-US/front.json rename to apps/web-react/locales/es-US/front.json diff --git a/locales/es-US/game-badges.json b/apps/web-react/locales/es-US/game-badges.json similarity index 100% rename from locales/es-US/game-badges.json rename to apps/web-react/locales/es-US/game-badges.json diff --git a/locales/es-US/game-misc.json b/apps/web-react/locales/es-US/game-misc.json similarity index 100% rename from locales/es-US/game-misc.json rename to apps/web-react/locales/es-US/game-misc.json diff --git a/locales/es-US/gear.json b/apps/web-react/locales/es-US/gear.json similarity index 100% rename from locales/es-US/gear.json rename to apps/web-react/locales/es-US/gear.json diff --git a/locales/es-US/lfg.json b/apps/web-react/locales/es-US/lfg.json similarity index 100% rename from locales/es-US/lfg.json rename to apps/web-react/locales/es-US/lfg.json diff --git a/locales/es-US/org.json b/apps/web-react/locales/es-US/org.json similarity index 100% rename from locales/es-US/org.json rename to apps/web-react/locales/es-US/org.json diff --git a/locales/es-US/params.json b/apps/web-react/locales/es-US/params.json similarity index 100% rename from locales/es-US/params.json rename to apps/web-react/locales/es-US/params.json diff --git a/locales/es-US/q.json b/apps/web-react/locales/es-US/q.json similarity index 100% rename from locales/es-US/q.json rename to apps/web-react/locales/es-US/q.json diff --git a/locales/es-US/scrims.json b/apps/web-react/locales/es-US/scrims.json similarity index 100% rename from locales/es-US/scrims.json rename to apps/web-react/locales/es-US/scrims.json diff --git a/locales/es-US/settings.json b/apps/web-react/locales/es-US/settings.json similarity index 100% rename from locales/es-US/settings.json rename to apps/web-react/locales/es-US/settings.json diff --git a/locales/es-US/team.json b/apps/web-react/locales/es-US/team.json similarity index 100% rename from locales/es-US/team.json rename to apps/web-react/locales/es-US/team.json diff --git a/locales/es-US/tier-list-maker.json b/apps/web-react/locales/es-US/tier-list-maker.json similarity index 100% rename from locales/es-US/tier-list-maker.json rename to apps/web-react/locales/es-US/tier-list-maker.json diff --git a/locales/es-US/tournament.json b/apps/web-react/locales/es-US/tournament.json similarity index 100% rename from locales/es-US/tournament.json rename to apps/web-react/locales/es-US/tournament.json diff --git a/locales/es-US/trophies.json b/apps/web-react/locales/es-US/trophies.json similarity index 100% rename from locales/es-US/trophies.json rename to apps/web-react/locales/es-US/trophies.json diff --git a/locales/es-US/user.json b/apps/web-react/locales/es-US/user.json similarity index 100% rename from locales/es-US/user.json rename to apps/web-react/locales/es-US/user.json diff --git a/locales/es-US/vods.json b/apps/web-react/locales/es-US/vods.json similarity index 100% rename from locales/es-US/vods.json rename to apps/web-react/locales/es-US/vods.json diff --git a/locales/es-US/weapons.json b/apps/web-react/locales/es-US/weapons.json similarity index 100% rename from locales/es-US/weapons.json rename to apps/web-react/locales/es-US/weapons.json diff --git a/locales/es-US/welcome.json b/apps/web-react/locales/es-US/welcome.json similarity index 100% rename from locales/es-US/welcome.json rename to apps/web-react/locales/es-US/welcome.json diff --git a/locales/fr-CA/analyzer.json b/apps/web-react/locales/fr-CA/analyzer.json similarity index 100% rename from locales/fr-CA/analyzer.json rename to apps/web-react/locales/fr-CA/analyzer.json diff --git a/locales/fr-CA/art.json b/apps/web-react/locales/fr-CA/art.json similarity index 100% rename from locales/fr-CA/art.json rename to apps/web-react/locales/fr-CA/art.json diff --git a/locales/fr-CA/badges.json b/apps/web-react/locales/fr-CA/badges.json similarity index 100% rename from locales/fr-CA/badges.json rename to apps/web-react/locales/fr-CA/badges.json diff --git a/locales/fr-CA/builds.json b/apps/web-react/locales/fr-CA/builds.json similarity index 100% rename from locales/fr-CA/builds.json rename to apps/web-react/locales/fr-CA/builds.json diff --git a/locales/fr-CA/calendar.json b/apps/web-react/locales/fr-CA/calendar.json similarity index 100% rename from locales/fr-CA/calendar.json rename to apps/web-react/locales/fr-CA/calendar.json diff --git a/locales/fr-CA/common.json b/apps/web-react/locales/fr-CA/common.json similarity index 100% rename from locales/fr-CA/common.json rename to apps/web-react/locales/fr-CA/common.json diff --git a/locales/fr-CA/contributions.json b/apps/web-react/locales/fr-CA/contributions.json similarity index 100% rename from locales/fr-CA/contributions.json rename to apps/web-react/locales/fr-CA/contributions.json diff --git a/locales/fr-CA/faq.json b/apps/web-react/locales/fr-CA/faq.json similarity index 100% rename from locales/fr-CA/faq.json rename to apps/web-react/locales/fr-CA/faq.json diff --git a/locales/fr-CA/forms.json b/apps/web-react/locales/fr-CA/forms.json similarity index 100% rename from locales/fr-CA/forms.json rename to apps/web-react/locales/fr-CA/forms.json diff --git a/locales/fr-CA/friends.json b/apps/web-react/locales/fr-CA/friends.json similarity index 100% rename from locales/fr-CA/friends.json rename to apps/web-react/locales/fr-CA/friends.json diff --git a/locales/fr-CA/front.json b/apps/web-react/locales/fr-CA/front.json similarity index 100% rename from locales/fr-CA/front.json rename to apps/web-react/locales/fr-CA/front.json diff --git a/locales/fr-CA/game-badges.json b/apps/web-react/locales/fr-CA/game-badges.json similarity index 100% rename from locales/fr-CA/game-badges.json rename to apps/web-react/locales/fr-CA/game-badges.json diff --git a/locales/fr-CA/game-misc.json b/apps/web-react/locales/fr-CA/game-misc.json similarity index 100% rename from locales/fr-CA/game-misc.json rename to apps/web-react/locales/fr-CA/game-misc.json diff --git a/locales/fr-CA/gear.json b/apps/web-react/locales/fr-CA/gear.json similarity index 100% rename from locales/fr-CA/gear.json rename to apps/web-react/locales/fr-CA/gear.json diff --git a/locales/fr-CA/lfg.json b/apps/web-react/locales/fr-CA/lfg.json similarity index 100% rename from locales/fr-CA/lfg.json rename to apps/web-react/locales/fr-CA/lfg.json diff --git a/locales/fr-CA/org.json b/apps/web-react/locales/fr-CA/org.json similarity index 100% rename from locales/fr-CA/org.json rename to apps/web-react/locales/fr-CA/org.json diff --git a/locales/fr-CA/params.json b/apps/web-react/locales/fr-CA/params.json similarity index 100% rename from locales/fr-CA/params.json rename to apps/web-react/locales/fr-CA/params.json diff --git a/locales/fr-CA/q.json b/apps/web-react/locales/fr-CA/q.json similarity index 100% rename from locales/fr-CA/q.json rename to apps/web-react/locales/fr-CA/q.json diff --git a/locales/fr-CA/scrims.json b/apps/web-react/locales/fr-CA/scrims.json similarity index 100% rename from locales/fr-CA/scrims.json rename to apps/web-react/locales/fr-CA/scrims.json diff --git a/locales/fr-CA/settings.json b/apps/web-react/locales/fr-CA/settings.json similarity index 100% rename from locales/fr-CA/settings.json rename to apps/web-react/locales/fr-CA/settings.json diff --git a/locales/fr-CA/team.json b/apps/web-react/locales/fr-CA/team.json similarity index 100% rename from locales/fr-CA/team.json rename to apps/web-react/locales/fr-CA/team.json diff --git a/locales/fr-CA/tier-list-maker.json b/apps/web-react/locales/fr-CA/tier-list-maker.json similarity index 100% rename from locales/fr-CA/tier-list-maker.json rename to apps/web-react/locales/fr-CA/tier-list-maker.json diff --git a/locales/fr-CA/tournament.json b/apps/web-react/locales/fr-CA/tournament.json similarity index 100% rename from locales/fr-CA/tournament.json rename to apps/web-react/locales/fr-CA/tournament.json diff --git a/locales/fr-CA/trophies.json b/apps/web-react/locales/fr-CA/trophies.json similarity index 100% rename from locales/fr-CA/trophies.json rename to apps/web-react/locales/fr-CA/trophies.json diff --git a/locales/fr-CA/user.json b/apps/web-react/locales/fr-CA/user.json similarity index 100% rename from locales/fr-CA/user.json rename to apps/web-react/locales/fr-CA/user.json diff --git a/locales/fr-CA/vods.json b/apps/web-react/locales/fr-CA/vods.json similarity index 100% rename from locales/fr-CA/vods.json rename to apps/web-react/locales/fr-CA/vods.json diff --git a/locales/fr-CA/weapons.json b/apps/web-react/locales/fr-CA/weapons.json similarity index 100% rename from locales/fr-CA/weapons.json rename to apps/web-react/locales/fr-CA/weapons.json diff --git a/locales/fr-CA/welcome.json b/apps/web-react/locales/fr-CA/welcome.json similarity index 100% rename from locales/fr-CA/welcome.json rename to apps/web-react/locales/fr-CA/welcome.json diff --git a/locales/fr-EU/analyzer.json b/apps/web-react/locales/fr-EU/analyzer.json similarity index 100% rename from locales/fr-EU/analyzer.json rename to apps/web-react/locales/fr-EU/analyzer.json diff --git a/locales/fr-EU/art.json b/apps/web-react/locales/fr-EU/art.json similarity index 100% rename from locales/fr-EU/art.json rename to apps/web-react/locales/fr-EU/art.json diff --git a/locales/fr-EU/badges.json b/apps/web-react/locales/fr-EU/badges.json similarity index 100% rename from locales/fr-EU/badges.json rename to apps/web-react/locales/fr-EU/badges.json diff --git a/locales/fr-EU/builds.json b/apps/web-react/locales/fr-EU/builds.json similarity index 100% rename from locales/fr-EU/builds.json rename to apps/web-react/locales/fr-EU/builds.json diff --git a/locales/fr-EU/calendar.json b/apps/web-react/locales/fr-EU/calendar.json similarity index 100% rename from locales/fr-EU/calendar.json rename to apps/web-react/locales/fr-EU/calendar.json diff --git a/locales/fr-EU/common.json b/apps/web-react/locales/fr-EU/common.json similarity index 100% rename from locales/fr-EU/common.json rename to apps/web-react/locales/fr-EU/common.json diff --git a/locales/fr-EU/contributions.json b/apps/web-react/locales/fr-EU/contributions.json similarity index 100% rename from locales/fr-EU/contributions.json rename to apps/web-react/locales/fr-EU/contributions.json diff --git a/locales/fr-EU/faq.json b/apps/web-react/locales/fr-EU/faq.json similarity index 100% rename from locales/fr-EU/faq.json rename to apps/web-react/locales/fr-EU/faq.json diff --git a/locales/fr-EU/forms.json b/apps/web-react/locales/fr-EU/forms.json similarity index 100% rename from locales/fr-EU/forms.json rename to apps/web-react/locales/fr-EU/forms.json diff --git a/locales/fr-EU/friends.json b/apps/web-react/locales/fr-EU/friends.json similarity index 100% rename from locales/fr-EU/friends.json rename to apps/web-react/locales/fr-EU/friends.json diff --git a/locales/fr-EU/front.json b/apps/web-react/locales/fr-EU/front.json similarity index 100% rename from locales/fr-EU/front.json rename to apps/web-react/locales/fr-EU/front.json diff --git a/locales/fr-EU/game-badges.json b/apps/web-react/locales/fr-EU/game-badges.json similarity index 100% rename from locales/fr-EU/game-badges.json rename to apps/web-react/locales/fr-EU/game-badges.json diff --git a/locales/fr-EU/game-misc.json b/apps/web-react/locales/fr-EU/game-misc.json similarity index 100% rename from locales/fr-EU/game-misc.json rename to apps/web-react/locales/fr-EU/game-misc.json diff --git a/locales/fr-EU/gear.json b/apps/web-react/locales/fr-EU/gear.json similarity index 100% rename from locales/fr-EU/gear.json rename to apps/web-react/locales/fr-EU/gear.json diff --git a/locales/fr-EU/lfg.json b/apps/web-react/locales/fr-EU/lfg.json similarity index 100% rename from locales/fr-EU/lfg.json rename to apps/web-react/locales/fr-EU/lfg.json diff --git a/locales/fr-EU/org.json b/apps/web-react/locales/fr-EU/org.json similarity index 100% rename from locales/fr-EU/org.json rename to apps/web-react/locales/fr-EU/org.json diff --git a/locales/fr-EU/params.json b/apps/web-react/locales/fr-EU/params.json similarity index 100% rename from locales/fr-EU/params.json rename to apps/web-react/locales/fr-EU/params.json diff --git a/locales/fr-EU/q.json b/apps/web-react/locales/fr-EU/q.json similarity index 100% rename from locales/fr-EU/q.json rename to apps/web-react/locales/fr-EU/q.json diff --git a/locales/fr-EU/scrims.json b/apps/web-react/locales/fr-EU/scrims.json similarity index 100% rename from locales/fr-EU/scrims.json rename to apps/web-react/locales/fr-EU/scrims.json diff --git a/locales/fr-EU/settings.json b/apps/web-react/locales/fr-EU/settings.json similarity index 100% rename from locales/fr-EU/settings.json rename to apps/web-react/locales/fr-EU/settings.json diff --git a/locales/fr-EU/team.json b/apps/web-react/locales/fr-EU/team.json similarity index 100% rename from locales/fr-EU/team.json rename to apps/web-react/locales/fr-EU/team.json diff --git a/locales/fr-EU/tier-list-maker.json b/apps/web-react/locales/fr-EU/tier-list-maker.json similarity index 100% rename from locales/fr-EU/tier-list-maker.json rename to apps/web-react/locales/fr-EU/tier-list-maker.json diff --git a/locales/fr-EU/tournament.json b/apps/web-react/locales/fr-EU/tournament.json similarity index 100% rename from locales/fr-EU/tournament.json rename to apps/web-react/locales/fr-EU/tournament.json diff --git a/locales/fr-EU/trophies.json b/apps/web-react/locales/fr-EU/trophies.json similarity index 100% rename from locales/fr-EU/trophies.json rename to apps/web-react/locales/fr-EU/trophies.json diff --git a/locales/fr-EU/user.json b/apps/web-react/locales/fr-EU/user.json similarity index 100% rename from locales/fr-EU/user.json rename to apps/web-react/locales/fr-EU/user.json diff --git a/locales/fr-EU/vods.json b/apps/web-react/locales/fr-EU/vods.json similarity index 100% rename from locales/fr-EU/vods.json rename to apps/web-react/locales/fr-EU/vods.json diff --git a/locales/fr-EU/weapons.json b/apps/web-react/locales/fr-EU/weapons.json similarity index 100% rename from locales/fr-EU/weapons.json rename to apps/web-react/locales/fr-EU/weapons.json diff --git a/locales/fr-EU/welcome.json b/apps/web-react/locales/fr-EU/welcome.json similarity index 100% rename from locales/fr-EU/welcome.json rename to apps/web-react/locales/fr-EU/welcome.json diff --git a/locales/he/analyzer.json b/apps/web-react/locales/he/analyzer.json similarity index 100% rename from locales/he/analyzer.json rename to apps/web-react/locales/he/analyzer.json diff --git a/locales/he/art.json b/apps/web-react/locales/he/art.json similarity index 100% rename from locales/he/art.json rename to apps/web-react/locales/he/art.json diff --git a/locales/he/badges.json b/apps/web-react/locales/he/badges.json similarity index 100% rename from locales/he/badges.json rename to apps/web-react/locales/he/badges.json diff --git a/locales/he/builds.json b/apps/web-react/locales/he/builds.json similarity index 100% rename from locales/he/builds.json rename to apps/web-react/locales/he/builds.json diff --git a/locales/he/calendar.json b/apps/web-react/locales/he/calendar.json similarity index 100% rename from locales/he/calendar.json rename to apps/web-react/locales/he/calendar.json diff --git a/locales/he/common.json b/apps/web-react/locales/he/common.json similarity index 100% rename from locales/he/common.json rename to apps/web-react/locales/he/common.json diff --git a/locales/he/contributions.json b/apps/web-react/locales/he/contributions.json similarity index 100% rename from locales/he/contributions.json rename to apps/web-react/locales/he/contributions.json diff --git a/locales/he/faq.json b/apps/web-react/locales/he/faq.json similarity index 100% rename from locales/he/faq.json rename to apps/web-react/locales/he/faq.json diff --git a/locales/he/forms.json b/apps/web-react/locales/he/forms.json similarity index 100% rename from locales/he/forms.json rename to apps/web-react/locales/he/forms.json diff --git a/locales/he/friends.json b/apps/web-react/locales/he/friends.json similarity index 100% rename from locales/he/friends.json rename to apps/web-react/locales/he/friends.json diff --git a/locales/he/front.json b/apps/web-react/locales/he/front.json similarity index 100% rename from locales/he/front.json rename to apps/web-react/locales/he/front.json diff --git a/locales/he/game-badges.json b/apps/web-react/locales/he/game-badges.json similarity index 100% rename from locales/he/game-badges.json rename to apps/web-react/locales/he/game-badges.json diff --git a/locales/he/game-misc.json b/apps/web-react/locales/he/game-misc.json similarity index 100% rename from locales/he/game-misc.json rename to apps/web-react/locales/he/game-misc.json diff --git a/locales/he/gear.json b/apps/web-react/locales/he/gear.json similarity index 100% rename from locales/he/gear.json rename to apps/web-react/locales/he/gear.json diff --git a/locales/he/lfg.json b/apps/web-react/locales/he/lfg.json similarity index 100% rename from locales/he/lfg.json rename to apps/web-react/locales/he/lfg.json diff --git a/locales/he/org.json b/apps/web-react/locales/he/org.json similarity index 100% rename from locales/he/org.json rename to apps/web-react/locales/he/org.json diff --git a/locales/he/params.json b/apps/web-react/locales/he/params.json similarity index 100% rename from locales/he/params.json rename to apps/web-react/locales/he/params.json diff --git a/locales/he/q.json b/apps/web-react/locales/he/q.json similarity index 100% rename from locales/he/q.json rename to apps/web-react/locales/he/q.json diff --git a/locales/he/scrims.json b/apps/web-react/locales/he/scrims.json similarity index 100% rename from locales/he/scrims.json rename to apps/web-react/locales/he/scrims.json diff --git a/locales/he/settings.json b/apps/web-react/locales/he/settings.json similarity index 100% rename from locales/he/settings.json rename to apps/web-react/locales/he/settings.json diff --git a/locales/he/team.json b/apps/web-react/locales/he/team.json similarity index 100% rename from locales/he/team.json rename to apps/web-react/locales/he/team.json diff --git a/locales/he/tier-list-maker.json b/apps/web-react/locales/he/tier-list-maker.json similarity index 100% rename from locales/he/tier-list-maker.json rename to apps/web-react/locales/he/tier-list-maker.json diff --git a/locales/he/tournament.json b/apps/web-react/locales/he/tournament.json similarity index 100% rename from locales/he/tournament.json rename to apps/web-react/locales/he/tournament.json diff --git a/locales/he/trophies.json b/apps/web-react/locales/he/trophies.json similarity index 100% rename from locales/he/trophies.json rename to apps/web-react/locales/he/trophies.json diff --git a/locales/he/user.json b/apps/web-react/locales/he/user.json similarity index 100% rename from locales/he/user.json rename to apps/web-react/locales/he/user.json diff --git a/locales/he/vods.json b/apps/web-react/locales/he/vods.json similarity index 100% rename from locales/he/vods.json rename to apps/web-react/locales/he/vods.json diff --git a/locales/he/weapons.json b/apps/web-react/locales/he/weapons.json similarity index 100% rename from locales/he/weapons.json rename to apps/web-react/locales/he/weapons.json diff --git a/locales/he/welcome.json b/apps/web-react/locales/he/welcome.json similarity index 100% rename from locales/he/welcome.json rename to apps/web-react/locales/he/welcome.json diff --git a/locales/it/analyzer.json b/apps/web-react/locales/it/analyzer.json similarity index 100% rename from locales/it/analyzer.json rename to apps/web-react/locales/it/analyzer.json diff --git a/locales/it/art.json b/apps/web-react/locales/it/art.json similarity index 100% rename from locales/it/art.json rename to apps/web-react/locales/it/art.json diff --git a/locales/it/badges.json b/apps/web-react/locales/it/badges.json similarity index 100% rename from locales/it/badges.json rename to apps/web-react/locales/it/badges.json diff --git a/locales/it/builds.json b/apps/web-react/locales/it/builds.json similarity index 100% rename from locales/it/builds.json rename to apps/web-react/locales/it/builds.json diff --git a/locales/it/calendar.json b/apps/web-react/locales/it/calendar.json similarity index 100% rename from locales/it/calendar.json rename to apps/web-react/locales/it/calendar.json diff --git a/locales/it/common.json b/apps/web-react/locales/it/common.json similarity index 100% rename from locales/it/common.json rename to apps/web-react/locales/it/common.json diff --git a/locales/it/contributions.json b/apps/web-react/locales/it/contributions.json similarity index 100% rename from locales/it/contributions.json rename to apps/web-react/locales/it/contributions.json diff --git a/locales/it/faq.json b/apps/web-react/locales/it/faq.json similarity index 100% rename from locales/it/faq.json rename to apps/web-react/locales/it/faq.json diff --git a/locales/it/forms.json b/apps/web-react/locales/it/forms.json similarity index 100% rename from locales/it/forms.json rename to apps/web-react/locales/it/forms.json diff --git a/locales/it/friends.json b/apps/web-react/locales/it/friends.json similarity index 100% rename from locales/it/friends.json rename to apps/web-react/locales/it/friends.json diff --git a/locales/it/front.json b/apps/web-react/locales/it/front.json similarity index 100% rename from locales/it/front.json rename to apps/web-react/locales/it/front.json diff --git a/locales/it/game-badges.json b/apps/web-react/locales/it/game-badges.json similarity index 100% rename from locales/it/game-badges.json rename to apps/web-react/locales/it/game-badges.json diff --git a/locales/it/game-misc.json b/apps/web-react/locales/it/game-misc.json similarity index 100% rename from locales/it/game-misc.json rename to apps/web-react/locales/it/game-misc.json diff --git a/locales/it/gear.json b/apps/web-react/locales/it/gear.json similarity index 100% rename from locales/it/gear.json rename to apps/web-react/locales/it/gear.json diff --git a/locales/it/lfg.json b/apps/web-react/locales/it/lfg.json similarity index 100% rename from locales/it/lfg.json rename to apps/web-react/locales/it/lfg.json diff --git a/locales/it/org.json b/apps/web-react/locales/it/org.json similarity index 100% rename from locales/it/org.json rename to apps/web-react/locales/it/org.json diff --git a/locales/it/params.json b/apps/web-react/locales/it/params.json similarity index 100% rename from locales/it/params.json rename to apps/web-react/locales/it/params.json diff --git a/locales/it/q.json b/apps/web-react/locales/it/q.json similarity index 100% rename from locales/it/q.json rename to apps/web-react/locales/it/q.json diff --git a/locales/it/scrims.json b/apps/web-react/locales/it/scrims.json similarity index 100% rename from locales/it/scrims.json rename to apps/web-react/locales/it/scrims.json diff --git a/locales/it/settings.json b/apps/web-react/locales/it/settings.json similarity index 100% rename from locales/it/settings.json rename to apps/web-react/locales/it/settings.json diff --git a/locales/it/team.json b/apps/web-react/locales/it/team.json similarity index 100% rename from locales/it/team.json rename to apps/web-react/locales/it/team.json diff --git a/locales/it/tier-list-maker.json b/apps/web-react/locales/it/tier-list-maker.json similarity index 100% rename from locales/it/tier-list-maker.json rename to apps/web-react/locales/it/tier-list-maker.json diff --git a/locales/it/tournament.json b/apps/web-react/locales/it/tournament.json similarity index 100% rename from locales/it/tournament.json rename to apps/web-react/locales/it/tournament.json diff --git a/locales/it/trophies.json b/apps/web-react/locales/it/trophies.json similarity index 100% rename from locales/it/trophies.json rename to apps/web-react/locales/it/trophies.json diff --git a/locales/it/user.json b/apps/web-react/locales/it/user.json similarity index 100% rename from locales/it/user.json rename to apps/web-react/locales/it/user.json diff --git a/locales/it/vods.json b/apps/web-react/locales/it/vods.json similarity index 100% rename from locales/it/vods.json rename to apps/web-react/locales/it/vods.json diff --git a/locales/it/weapons.json b/apps/web-react/locales/it/weapons.json similarity index 100% rename from locales/it/weapons.json rename to apps/web-react/locales/it/weapons.json diff --git a/locales/it/welcome.json b/apps/web-react/locales/it/welcome.json similarity index 100% rename from locales/it/welcome.json rename to apps/web-react/locales/it/welcome.json diff --git a/locales/ja/analyzer.json b/apps/web-react/locales/ja/analyzer.json similarity index 100% rename from locales/ja/analyzer.json rename to apps/web-react/locales/ja/analyzer.json diff --git a/locales/ja/art.json b/apps/web-react/locales/ja/art.json similarity index 100% rename from locales/ja/art.json rename to apps/web-react/locales/ja/art.json diff --git a/locales/ja/badges.json b/apps/web-react/locales/ja/badges.json similarity index 100% rename from locales/ja/badges.json rename to apps/web-react/locales/ja/badges.json diff --git a/locales/ja/builds.json b/apps/web-react/locales/ja/builds.json similarity index 100% rename from locales/ja/builds.json rename to apps/web-react/locales/ja/builds.json diff --git a/locales/ja/calendar.json b/apps/web-react/locales/ja/calendar.json similarity index 100% rename from locales/ja/calendar.json rename to apps/web-react/locales/ja/calendar.json diff --git a/locales/ja/common.json b/apps/web-react/locales/ja/common.json similarity index 100% rename from locales/ja/common.json rename to apps/web-react/locales/ja/common.json diff --git a/locales/ja/contributions.json b/apps/web-react/locales/ja/contributions.json similarity index 100% rename from locales/ja/contributions.json rename to apps/web-react/locales/ja/contributions.json diff --git a/locales/ja/faq.json b/apps/web-react/locales/ja/faq.json similarity index 100% rename from locales/ja/faq.json rename to apps/web-react/locales/ja/faq.json diff --git a/locales/ja/forms.json b/apps/web-react/locales/ja/forms.json similarity index 100% rename from locales/ja/forms.json rename to apps/web-react/locales/ja/forms.json diff --git a/locales/ja/friends.json b/apps/web-react/locales/ja/friends.json similarity index 100% rename from locales/ja/friends.json rename to apps/web-react/locales/ja/friends.json diff --git a/locales/ja/front.json b/apps/web-react/locales/ja/front.json similarity index 100% rename from locales/ja/front.json rename to apps/web-react/locales/ja/front.json diff --git a/locales/ja/game-badges.json b/apps/web-react/locales/ja/game-badges.json similarity index 100% rename from locales/ja/game-badges.json rename to apps/web-react/locales/ja/game-badges.json diff --git a/locales/ja/game-misc.json b/apps/web-react/locales/ja/game-misc.json similarity index 100% rename from locales/ja/game-misc.json rename to apps/web-react/locales/ja/game-misc.json diff --git a/locales/ja/gear.json b/apps/web-react/locales/ja/gear.json similarity index 100% rename from locales/ja/gear.json rename to apps/web-react/locales/ja/gear.json diff --git a/locales/ja/lfg.json b/apps/web-react/locales/ja/lfg.json similarity index 100% rename from locales/ja/lfg.json rename to apps/web-react/locales/ja/lfg.json diff --git a/locales/ja/org.json b/apps/web-react/locales/ja/org.json similarity index 100% rename from locales/ja/org.json rename to apps/web-react/locales/ja/org.json diff --git a/locales/ja/params.json b/apps/web-react/locales/ja/params.json similarity index 100% rename from locales/ja/params.json rename to apps/web-react/locales/ja/params.json diff --git a/locales/ja/q.json b/apps/web-react/locales/ja/q.json similarity index 100% rename from locales/ja/q.json rename to apps/web-react/locales/ja/q.json diff --git a/locales/ja/scrims.json b/apps/web-react/locales/ja/scrims.json similarity index 100% rename from locales/ja/scrims.json rename to apps/web-react/locales/ja/scrims.json diff --git a/locales/ja/settings.json b/apps/web-react/locales/ja/settings.json similarity index 100% rename from locales/ja/settings.json rename to apps/web-react/locales/ja/settings.json diff --git a/locales/ja/team.json b/apps/web-react/locales/ja/team.json similarity index 100% rename from locales/ja/team.json rename to apps/web-react/locales/ja/team.json diff --git a/locales/ja/tier-list-maker.json b/apps/web-react/locales/ja/tier-list-maker.json similarity index 100% rename from locales/ja/tier-list-maker.json rename to apps/web-react/locales/ja/tier-list-maker.json diff --git a/locales/ja/tournament.json b/apps/web-react/locales/ja/tournament.json similarity index 100% rename from locales/ja/tournament.json rename to apps/web-react/locales/ja/tournament.json diff --git a/locales/ja/trophies.json b/apps/web-react/locales/ja/trophies.json similarity index 100% rename from locales/ja/trophies.json rename to apps/web-react/locales/ja/trophies.json diff --git a/locales/ja/user.json b/apps/web-react/locales/ja/user.json similarity index 100% rename from locales/ja/user.json rename to apps/web-react/locales/ja/user.json diff --git a/locales/ja/vods.json b/apps/web-react/locales/ja/vods.json similarity index 100% rename from locales/ja/vods.json rename to apps/web-react/locales/ja/vods.json diff --git a/locales/ja/weapons.json b/apps/web-react/locales/ja/weapons.json similarity index 100% rename from locales/ja/weapons.json rename to apps/web-react/locales/ja/weapons.json diff --git a/locales/ja/welcome.json b/apps/web-react/locales/ja/welcome.json similarity index 100% rename from locales/ja/welcome.json rename to apps/web-react/locales/ja/welcome.json diff --git a/locales/ko/analyzer.json b/apps/web-react/locales/ko/analyzer.json similarity index 100% rename from locales/ko/analyzer.json rename to apps/web-react/locales/ko/analyzer.json diff --git a/locales/ko/art.json b/apps/web-react/locales/ko/art.json similarity index 100% rename from locales/ko/art.json rename to apps/web-react/locales/ko/art.json diff --git a/locales/ko/badges.json b/apps/web-react/locales/ko/badges.json similarity index 100% rename from locales/ko/badges.json rename to apps/web-react/locales/ko/badges.json diff --git a/locales/ko/builds.json b/apps/web-react/locales/ko/builds.json similarity index 100% rename from locales/ko/builds.json rename to apps/web-react/locales/ko/builds.json diff --git a/locales/ko/calendar.json b/apps/web-react/locales/ko/calendar.json similarity index 100% rename from locales/ko/calendar.json rename to apps/web-react/locales/ko/calendar.json diff --git a/locales/ko/common.json b/apps/web-react/locales/ko/common.json similarity index 100% rename from locales/ko/common.json rename to apps/web-react/locales/ko/common.json diff --git a/locales/ko/contributions.json b/apps/web-react/locales/ko/contributions.json similarity index 100% rename from locales/ko/contributions.json rename to apps/web-react/locales/ko/contributions.json diff --git a/locales/ko/faq.json b/apps/web-react/locales/ko/faq.json similarity index 100% rename from locales/ko/faq.json rename to apps/web-react/locales/ko/faq.json diff --git a/locales/ko/forms.json b/apps/web-react/locales/ko/forms.json similarity index 100% rename from locales/ko/forms.json rename to apps/web-react/locales/ko/forms.json diff --git a/locales/ko/friends.json b/apps/web-react/locales/ko/friends.json similarity index 100% rename from locales/ko/friends.json rename to apps/web-react/locales/ko/friends.json diff --git a/locales/ko/front.json b/apps/web-react/locales/ko/front.json similarity index 100% rename from locales/ko/front.json rename to apps/web-react/locales/ko/front.json diff --git a/locales/ko/game-badges.json b/apps/web-react/locales/ko/game-badges.json similarity index 100% rename from locales/ko/game-badges.json rename to apps/web-react/locales/ko/game-badges.json diff --git a/locales/ko/game-misc.json b/apps/web-react/locales/ko/game-misc.json similarity index 100% rename from locales/ko/game-misc.json rename to apps/web-react/locales/ko/game-misc.json diff --git a/locales/ko/gear.json b/apps/web-react/locales/ko/gear.json similarity index 100% rename from locales/ko/gear.json rename to apps/web-react/locales/ko/gear.json diff --git a/locales/ko/lfg.json b/apps/web-react/locales/ko/lfg.json similarity index 100% rename from locales/ko/lfg.json rename to apps/web-react/locales/ko/lfg.json diff --git a/locales/ko/org.json b/apps/web-react/locales/ko/org.json similarity index 100% rename from locales/ko/org.json rename to apps/web-react/locales/ko/org.json diff --git a/locales/ko/params.json b/apps/web-react/locales/ko/params.json similarity index 100% rename from locales/ko/params.json rename to apps/web-react/locales/ko/params.json diff --git a/locales/ko/q.json b/apps/web-react/locales/ko/q.json similarity index 100% rename from locales/ko/q.json rename to apps/web-react/locales/ko/q.json diff --git a/locales/ko/scrims.json b/apps/web-react/locales/ko/scrims.json similarity index 100% rename from locales/ko/scrims.json rename to apps/web-react/locales/ko/scrims.json diff --git a/locales/ko/settings.json b/apps/web-react/locales/ko/settings.json similarity index 100% rename from locales/ko/settings.json rename to apps/web-react/locales/ko/settings.json diff --git a/locales/ko/team.json b/apps/web-react/locales/ko/team.json similarity index 100% rename from locales/ko/team.json rename to apps/web-react/locales/ko/team.json diff --git a/locales/ko/tier-list-maker.json b/apps/web-react/locales/ko/tier-list-maker.json similarity index 100% rename from locales/ko/tier-list-maker.json rename to apps/web-react/locales/ko/tier-list-maker.json diff --git a/locales/ko/tournament.json b/apps/web-react/locales/ko/tournament.json similarity index 100% rename from locales/ko/tournament.json rename to apps/web-react/locales/ko/tournament.json diff --git a/locales/ko/trophies.json b/apps/web-react/locales/ko/trophies.json similarity index 100% rename from locales/ko/trophies.json rename to apps/web-react/locales/ko/trophies.json diff --git a/locales/ko/user.json b/apps/web-react/locales/ko/user.json similarity index 100% rename from locales/ko/user.json rename to apps/web-react/locales/ko/user.json diff --git a/locales/ko/vods.json b/apps/web-react/locales/ko/vods.json similarity index 100% rename from locales/ko/vods.json rename to apps/web-react/locales/ko/vods.json diff --git a/locales/ko/weapons.json b/apps/web-react/locales/ko/weapons.json similarity index 100% rename from locales/ko/weapons.json rename to apps/web-react/locales/ko/weapons.json diff --git a/locales/ko/welcome.json b/apps/web-react/locales/ko/welcome.json similarity index 100% rename from locales/ko/welcome.json rename to apps/web-react/locales/ko/welcome.json diff --git a/locales/nl/analyzer.json b/apps/web-react/locales/nl/analyzer.json similarity index 100% rename from locales/nl/analyzer.json rename to apps/web-react/locales/nl/analyzer.json diff --git a/locales/nl/art.json b/apps/web-react/locales/nl/art.json similarity index 100% rename from locales/nl/art.json rename to apps/web-react/locales/nl/art.json diff --git a/locales/nl/badges.json b/apps/web-react/locales/nl/badges.json similarity index 100% rename from locales/nl/badges.json rename to apps/web-react/locales/nl/badges.json diff --git a/locales/nl/builds.json b/apps/web-react/locales/nl/builds.json similarity index 100% rename from locales/nl/builds.json rename to apps/web-react/locales/nl/builds.json diff --git a/locales/nl/calendar.json b/apps/web-react/locales/nl/calendar.json similarity index 100% rename from locales/nl/calendar.json rename to apps/web-react/locales/nl/calendar.json diff --git a/locales/nl/common.json b/apps/web-react/locales/nl/common.json similarity index 100% rename from locales/nl/common.json rename to apps/web-react/locales/nl/common.json diff --git a/locales/nl/contributions.json b/apps/web-react/locales/nl/contributions.json similarity index 100% rename from locales/nl/contributions.json rename to apps/web-react/locales/nl/contributions.json diff --git a/locales/nl/faq.json b/apps/web-react/locales/nl/faq.json similarity index 100% rename from locales/nl/faq.json rename to apps/web-react/locales/nl/faq.json diff --git a/locales/nl/forms.json b/apps/web-react/locales/nl/forms.json similarity index 100% rename from locales/nl/forms.json rename to apps/web-react/locales/nl/forms.json diff --git a/locales/nl/friends.json b/apps/web-react/locales/nl/friends.json similarity index 100% rename from locales/nl/friends.json rename to apps/web-react/locales/nl/friends.json diff --git a/locales/nl/front.json b/apps/web-react/locales/nl/front.json similarity index 100% rename from locales/nl/front.json rename to apps/web-react/locales/nl/front.json diff --git a/locales/nl/game-badges.json b/apps/web-react/locales/nl/game-badges.json similarity index 100% rename from locales/nl/game-badges.json rename to apps/web-react/locales/nl/game-badges.json diff --git a/locales/nl/game-misc.json b/apps/web-react/locales/nl/game-misc.json similarity index 100% rename from locales/nl/game-misc.json rename to apps/web-react/locales/nl/game-misc.json diff --git a/locales/nl/gear.json b/apps/web-react/locales/nl/gear.json similarity index 100% rename from locales/nl/gear.json rename to apps/web-react/locales/nl/gear.json diff --git a/locales/nl/lfg.json b/apps/web-react/locales/nl/lfg.json similarity index 100% rename from locales/nl/lfg.json rename to apps/web-react/locales/nl/lfg.json diff --git a/locales/nl/org.json b/apps/web-react/locales/nl/org.json similarity index 100% rename from locales/nl/org.json rename to apps/web-react/locales/nl/org.json diff --git a/locales/nl/params.json b/apps/web-react/locales/nl/params.json similarity index 100% rename from locales/nl/params.json rename to apps/web-react/locales/nl/params.json diff --git a/locales/nl/q.json b/apps/web-react/locales/nl/q.json similarity index 100% rename from locales/nl/q.json rename to apps/web-react/locales/nl/q.json diff --git a/locales/nl/scrims.json b/apps/web-react/locales/nl/scrims.json similarity index 100% rename from locales/nl/scrims.json rename to apps/web-react/locales/nl/scrims.json diff --git a/locales/nl/settings.json b/apps/web-react/locales/nl/settings.json similarity index 100% rename from locales/nl/settings.json rename to apps/web-react/locales/nl/settings.json diff --git a/locales/nl/team.json b/apps/web-react/locales/nl/team.json similarity index 100% rename from locales/nl/team.json rename to apps/web-react/locales/nl/team.json diff --git a/locales/nl/tier-list-maker.json b/apps/web-react/locales/nl/tier-list-maker.json similarity index 100% rename from locales/nl/tier-list-maker.json rename to apps/web-react/locales/nl/tier-list-maker.json diff --git a/locales/nl/tournament.json b/apps/web-react/locales/nl/tournament.json similarity index 100% rename from locales/nl/tournament.json rename to apps/web-react/locales/nl/tournament.json diff --git a/locales/nl/trophies.json b/apps/web-react/locales/nl/trophies.json similarity index 100% rename from locales/nl/trophies.json rename to apps/web-react/locales/nl/trophies.json diff --git a/locales/nl/user.json b/apps/web-react/locales/nl/user.json similarity index 100% rename from locales/nl/user.json rename to apps/web-react/locales/nl/user.json diff --git a/locales/nl/vods.json b/apps/web-react/locales/nl/vods.json similarity index 100% rename from locales/nl/vods.json rename to apps/web-react/locales/nl/vods.json diff --git a/locales/nl/weapons.json b/apps/web-react/locales/nl/weapons.json similarity index 100% rename from locales/nl/weapons.json rename to apps/web-react/locales/nl/weapons.json diff --git a/locales/nl/welcome.json b/apps/web-react/locales/nl/welcome.json similarity index 100% rename from locales/nl/welcome.json rename to apps/web-react/locales/nl/welcome.json diff --git a/locales/pl/analyzer.json b/apps/web-react/locales/pl/analyzer.json similarity index 100% rename from locales/pl/analyzer.json rename to apps/web-react/locales/pl/analyzer.json diff --git a/locales/pl/art.json b/apps/web-react/locales/pl/art.json similarity index 100% rename from locales/pl/art.json rename to apps/web-react/locales/pl/art.json diff --git a/locales/pl/badges.json b/apps/web-react/locales/pl/badges.json similarity index 100% rename from locales/pl/badges.json rename to apps/web-react/locales/pl/badges.json diff --git a/locales/pl/builds.json b/apps/web-react/locales/pl/builds.json similarity index 100% rename from locales/pl/builds.json rename to apps/web-react/locales/pl/builds.json diff --git a/locales/pl/calendar.json b/apps/web-react/locales/pl/calendar.json similarity index 100% rename from locales/pl/calendar.json rename to apps/web-react/locales/pl/calendar.json diff --git a/locales/pl/common.json b/apps/web-react/locales/pl/common.json similarity index 100% rename from locales/pl/common.json rename to apps/web-react/locales/pl/common.json diff --git a/locales/pl/contributions.json b/apps/web-react/locales/pl/contributions.json similarity index 100% rename from locales/pl/contributions.json rename to apps/web-react/locales/pl/contributions.json diff --git a/locales/pl/faq.json b/apps/web-react/locales/pl/faq.json similarity index 100% rename from locales/pl/faq.json rename to apps/web-react/locales/pl/faq.json diff --git a/locales/pl/forms.json b/apps/web-react/locales/pl/forms.json similarity index 100% rename from locales/pl/forms.json rename to apps/web-react/locales/pl/forms.json diff --git a/locales/pl/friends.json b/apps/web-react/locales/pl/friends.json similarity index 100% rename from locales/pl/friends.json rename to apps/web-react/locales/pl/friends.json diff --git a/locales/pl/front.json b/apps/web-react/locales/pl/front.json similarity index 100% rename from locales/pl/front.json rename to apps/web-react/locales/pl/front.json diff --git a/locales/pl/game-badges.json b/apps/web-react/locales/pl/game-badges.json similarity index 100% rename from locales/pl/game-badges.json rename to apps/web-react/locales/pl/game-badges.json diff --git a/locales/pl/game-misc.json b/apps/web-react/locales/pl/game-misc.json similarity index 100% rename from locales/pl/game-misc.json rename to apps/web-react/locales/pl/game-misc.json diff --git a/locales/pl/gear.json b/apps/web-react/locales/pl/gear.json similarity index 100% rename from locales/pl/gear.json rename to apps/web-react/locales/pl/gear.json diff --git a/locales/pl/lfg.json b/apps/web-react/locales/pl/lfg.json similarity index 100% rename from locales/pl/lfg.json rename to apps/web-react/locales/pl/lfg.json diff --git a/locales/pl/org.json b/apps/web-react/locales/pl/org.json similarity index 100% rename from locales/pl/org.json rename to apps/web-react/locales/pl/org.json diff --git a/locales/pl/params.json b/apps/web-react/locales/pl/params.json similarity index 100% rename from locales/pl/params.json rename to apps/web-react/locales/pl/params.json diff --git a/locales/pl/q.json b/apps/web-react/locales/pl/q.json similarity index 100% rename from locales/pl/q.json rename to apps/web-react/locales/pl/q.json diff --git a/locales/pl/scrims.json b/apps/web-react/locales/pl/scrims.json similarity index 100% rename from locales/pl/scrims.json rename to apps/web-react/locales/pl/scrims.json diff --git a/locales/pl/settings.json b/apps/web-react/locales/pl/settings.json similarity index 100% rename from locales/pl/settings.json rename to apps/web-react/locales/pl/settings.json diff --git a/locales/pl/team.json b/apps/web-react/locales/pl/team.json similarity index 100% rename from locales/pl/team.json rename to apps/web-react/locales/pl/team.json diff --git a/locales/pl/tier-list-maker.json b/apps/web-react/locales/pl/tier-list-maker.json similarity index 100% rename from locales/pl/tier-list-maker.json rename to apps/web-react/locales/pl/tier-list-maker.json diff --git a/locales/pl/tournament.json b/apps/web-react/locales/pl/tournament.json similarity index 100% rename from locales/pl/tournament.json rename to apps/web-react/locales/pl/tournament.json diff --git a/locales/pl/trophies.json b/apps/web-react/locales/pl/trophies.json similarity index 100% rename from locales/pl/trophies.json rename to apps/web-react/locales/pl/trophies.json diff --git a/locales/pl/user.json b/apps/web-react/locales/pl/user.json similarity index 100% rename from locales/pl/user.json rename to apps/web-react/locales/pl/user.json diff --git a/locales/pl/vods.json b/apps/web-react/locales/pl/vods.json similarity index 100% rename from locales/pl/vods.json rename to apps/web-react/locales/pl/vods.json diff --git a/locales/pl/weapons.json b/apps/web-react/locales/pl/weapons.json similarity index 100% rename from locales/pl/weapons.json rename to apps/web-react/locales/pl/weapons.json diff --git a/locales/pl/welcome.json b/apps/web-react/locales/pl/welcome.json similarity index 100% rename from locales/pl/welcome.json rename to apps/web-react/locales/pl/welcome.json diff --git a/locales/pt-BR/analyzer.json b/apps/web-react/locales/pt-BR/analyzer.json similarity index 100% rename from locales/pt-BR/analyzer.json rename to apps/web-react/locales/pt-BR/analyzer.json diff --git a/locales/pt-BR/art.json b/apps/web-react/locales/pt-BR/art.json similarity index 100% rename from locales/pt-BR/art.json rename to apps/web-react/locales/pt-BR/art.json diff --git a/locales/pt-BR/badges.json b/apps/web-react/locales/pt-BR/badges.json similarity index 100% rename from locales/pt-BR/badges.json rename to apps/web-react/locales/pt-BR/badges.json diff --git a/locales/pt-BR/builds.json b/apps/web-react/locales/pt-BR/builds.json similarity index 100% rename from locales/pt-BR/builds.json rename to apps/web-react/locales/pt-BR/builds.json diff --git a/locales/pt-BR/calendar.json b/apps/web-react/locales/pt-BR/calendar.json similarity index 100% rename from locales/pt-BR/calendar.json rename to apps/web-react/locales/pt-BR/calendar.json diff --git a/locales/pt-BR/common.json b/apps/web-react/locales/pt-BR/common.json similarity index 100% rename from locales/pt-BR/common.json rename to apps/web-react/locales/pt-BR/common.json diff --git a/locales/pt-BR/contributions.json b/apps/web-react/locales/pt-BR/contributions.json similarity index 100% rename from locales/pt-BR/contributions.json rename to apps/web-react/locales/pt-BR/contributions.json diff --git a/locales/pt-BR/faq.json b/apps/web-react/locales/pt-BR/faq.json similarity index 100% rename from locales/pt-BR/faq.json rename to apps/web-react/locales/pt-BR/faq.json diff --git a/locales/pt-BR/forms.json b/apps/web-react/locales/pt-BR/forms.json similarity index 100% rename from locales/pt-BR/forms.json rename to apps/web-react/locales/pt-BR/forms.json diff --git a/locales/pt-BR/friends.json b/apps/web-react/locales/pt-BR/friends.json similarity index 100% rename from locales/pt-BR/friends.json rename to apps/web-react/locales/pt-BR/friends.json diff --git a/locales/pt-BR/front.json b/apps/web-react/locales/pt-BR/front.json similarity index 100% rename from locales/pt-BR/front.json rename to apps/web-react/locales/pt-BR/front.json diff --git a/locales/pt-BR/game-badges.json b/apps/web-react/locales/pt-BR/game-badges.json similarity index 100% rename from locales/pt-BR/game-badges.json rename to apps/web-react/locales/pt-BR/game-badges.json diff --git a/locales/pt-BR/game-misc.json b/apps/web-react/locales/pt-BR/game-misc.json similarity index 100% rename from locales/pt-BR/game-misc.json rename to apps/web-react/locales/pt-BR/game-misc.json diff --git a/locales/pt-BR/gear.json b/apps/web-react/locales/pt-BR/gear.json similarity index 100% rename from locales/pt-BR/gear.json rename to apps/web-react/locales/pt-BR/gear.json diff --git a/locales/pt-BR/lfg.json b/apps/web-react/locales/pt-BR/lfg.json similarity index 100% rename from locales/pt-BR/lfg.json rename to apps/web-react/locales/pt-BR/lfg.json diff --git a/locales/pt-BR/org.json b/apps/web-react/locales/pt-BR/org.json similarity index 100% rename from locales/pt-BR/org.json rename to apps/web-react/locales/pt-BR/org.json diff --git a/locales/pt-BR/params.json b/apps/web-react/locales/pt-BR/params.json similarity index 100% rename from locales/pt-BR/params.json rename to apps/web-react/locales/pt-BR/params.json diff --git a/locales/pt-BR/q.json b/apps/web-react/locales/pt-BR/q.json similarity index 100% rename from locales/pt-BR/q.json rename to apps/web-react/locales/pt-BR/q.json diff --git a/locales/pt-BR/scrims.json b/apps/web-react/locales/pt-BR/scrims.json similarity index 100% rename from locales/pt-BR/scrims.json rename to apps/web-react/locales/pt-BR/scrims.json diff --git a/locales/pt-BR/settings.json b/apps/web-react/locales/pt-BR/settings.json similarity index 100% rename from locales/pt-BR/settings.json rename to apps/web-react/locales/pt-BR/settings.json diff --git a/locales/pt-BR/team.json b/apps/web-react/locales/pt-BR/team.json similarity index 100% rename from locales/pt-BR/team.json rename to apps/web-react/locales/pt-BR/team.json diff --git a/locales/pt-BR/tier-list-maker.json b/apps/web-react/locales/pt-BR/tier-list-maker.json similarity index 100% rename from locales/pt-BR/tier-list-maker.json rename to apps/web-react/locales/pt-BR/tier-list-maker.json diff --git a/locales/pt-BR/tournament.json b/apps/web-react/locales/pt-BR/tournament.json similarity index 100% rename from locales/pt-BR/tournament.json rename to apps/web-react/locales/pt-BR/tournament.json diff --git a/locales/pt-BR/trophies.json b/apps/web-react/locales/pt-BR/trophies.json similarity index 100% rename from locales/pt-BR/trophies.json rename to apps/web-react/locales/pt-BR/trophies.json diff --git a/locales/pt-BR/user.json b/apps/web-react/locales/pt-BR/user.json similarity index 100% rename from locales/pt-BR/user.json rename to apps/web-react/locales/pt-BR/user.json diff --git a/locales/pt-BR/vods.json b/apps/web-react/locales/pt-BR/vods.json similarity index 100% rename from locales/pt-BR/vods.json rename to apps/web-react/locales/pt-BR/vods.json diff --git a/locales/pt-BR/weapons.json b/apps/web-react/locales/pt-BR/weapons.json similarity index 100% rename from locales/pt-BR/weapons.json rename to apps/web-react/locales/pt-BR/weapons.json diff --git a/locales/pt-BR/welcome.json b/apps/web-react/locales/pt-BR/welcome.json similarity index 100% rename from locales/pt-BR/welcome.json rename to apps/web-react/locales/pt-BR/welcome.json diff --git a/locales/ru/analyzer.json b/apps/web-react/locales/ru/analyzer.json similarity index 100% rename from locales/ru/analyzer.json rename to apps/web-react/locales/ru/analyzer.json diff --git a/locales/ru/art.json b/apps/web-react/locales/ru/art.json similarity index 100% rename from locales/ru/art.json rename to apps/web-react/locales/ru/art.json diff --git a/locales/ru/badges.json b/apps/web-react/locales/ru/badges.json similarity index 100% rename from locales/ru/badges.json rename to apps/web-react/locales/ru/badges.json diff --git a/locales/ru/builds.json b/apps/web-react/locales/ru/builds.json similarity index 100% rename from locales/ru/builds.json rename to apps/web-react/locales/ru/builds.json diff --git a/locales/ru/calendar.json b/apps/web-react/locales/ru/calendar.json similarity index 100% rename from locales/ru/calendar.json rename to apps/web-react/locales/ru/calendar.json diff --git a/locales/ru/common.json b/apps/web-react/locales/ru/common.json similarity index 100% rename from locales/ru/common.json rename to apps/web-react/locales/ru/common.json diff --git a/locales/ru/contributions.json b/apps/web-react/locales/ru/contributions.json similarity index 100% rename from locales/ru/contributions.json rename to apps/web-react/locales/ru/contributions.json diff --git a/locales/ru/faq.json b/apps/web-react/locales/ru/faq.json similarity index 100% rename from locales/ru/faq.json rename to apps/web-react/locales/ru/faq.json diff --git a/locales/ru/forms.json b/apps/web-react/locales/ru/forms.json similarity index 100% rename from locales/ru/forms.json rename to apps/web-react/locales/ru/forms.json diff --git a/locales/ru/friends.json b/apps/web-react/locales/ru/friends.json similarity index 100% rename from locales/ru/friends.json rename to apps/web-react/locales/ru/friends.json diff --git a/locales/ru/front.json b/apps/web-react/locales/ru/front.json similarity index 100% rename from locales/ru/front.json rename to apps/web-react/locales/ru/front.json diff --git a/locales/ru/game-badges.json b/apps/web-react/locales/ru/game-badges.json similarity index 100% rename from locales/ru/game-badges.json rename to apps/web-react/locales/ru/game-badges.json diff --git a/locales/ru/game-misc.json b/apps/web-react/locales/ru/game-misc.json similarity index 100% rename from locales/ru/game-misc.json rename to apps/web-react/locales/ru/game-misc.json diff --git a/locales/ru/gear.json b/apps/web-react/locales/ru/gear.json similarity index 100% rename from locales/ru/gear.json rename to apps/web-react/locales/ru/gear.json diff --git a/locales/ru/lfg.json b/apps/web-react/locales/ru/lfg.json similarity index 100% rename from locales/ru/lfg.json rename to apps/web-react/locales/ru/lfg.json diff --git a/locales/ru/org.json b/apps/web-react/locales/ru/org.json similarity index 100% rename from locales/ru/org.json rename to apps/web-react/locales/ru/org.json diff --git a/locales/ru/params.json b/apps/web-react/locales/ru/params.json similarity index 100% rename from locales/ru/params.json rename to apps/web-react/locales/ru/params.json diff --git a/locales/ru/q.json b/apps/web-react/locales/ru/q.json similarity index 100% rename from locales/ru/q.json rename to apps/web-react/locales/ru/q.json diff --git a/locales/ru/scrims.json b/apps/web-react/locales/ru/scrims.json similarity index 100% rename from locales/ru/scrims.json rename to apps/web-react/locales/ru/scrims.json diff --git a/locales/ru/settings.json b/apps/web-react/locales/ru/settings.json similarity index 100% rename from locales/ru/settings.json rename to apps/web-react/locales/ru/settings.json diff --git a/locales/ru/team.json b/apps/web-react/locales/ru/team.json similarity index 100% rename from locales/ru/team.json rename to apps/web-react/locales/ru/team.json diff --git a/locales/ru/tier-list-maker.json b/apps/web-react/locales/ru/tier-list-maker.json similarity index 100% rename from locales/ru/tier-list-maker.json rename to apps/web-react/locales/ru/tier-list-maker.json diff --git a/locales/ru/tournament.json b/apps/web-react/locales/ru/tournament.json similarity index 100% rename from locales/ru/tournament.json rename to apps/web-react/locales/ru/tournament.json diff --git a/locales/ru/trophies.json b/apps/web-react/locales/ru/trophies.json similarity index 100% rename from locales/ru/trophies.json rename to apps/web-react/locales/ru/trophies.json diff --git a/locales/ru/user.json b/apps/web-react/locales/ru/user.json similarity index 100% rename from locales/ru/user.json rename to apps/web-react/locales/ru/user.json diff --git a/locales/ru/vods.json b/apps/web-react/locales/ru/vods.json similarity index 100% rename from locales/ru/vods.json rename to apps/web-react/locales/ru/vods.json diff --git a/locales/ru/weapons.json b/apps/web-react/locales/ru/weapons.json similarity index 100% rename from locales/ru/weapons.json rename to apps/web-react/locales/ru/weapons.json diff --git a/locales/ru/welcome.json b/apps/web-react/locales/ru/welcome.json similarity index 100% rename from locales/ru/welcome.json rename to apps/web-react/locales/ru/welcome.json diff --git a/locales/zh/analyzer.json b/apps/web-react/locales/zh/analyzer.json similarity index 100% rename from locales/zh/analyzer.json rename to apps/web-react/locales/zh/analyzer.json diff --git a/locales/zh/art.json b/apps/web-react/locales/zh/art.json similarity index 100% rename from locales/zh/art.json rename to apps/web-react/locales/zh/art.json diff --git a/locales/zh/badges.json b/apps/web-react/locales/zh/badges.json similarity index 100% rename from locales/zh/badges.json rename to apps/web-react/locales/zh/badges.json diff --git a/locales/zh/builds.json b/apps/web-react/locales/zh/builds.json similarity index 100% rename from locales/zh/builds.json rename to apps/web-react/locales/zh/builds.json diff --git a/locales/zh/calendar.json b/apps/web-react/locales/zh/calendar.json similarity index 100% rename from locales/zh/calendar.json rename to apps/web-react/locales/zh/calendar.json diff --git a/locales/zh/common.json b/apps/web-react/locales/zh/common.json similarity index 100% rename from locales/zh/common.json rename to apps/web-react/locales/zh/common.json diff --git a/locales/zh/contributions.json b/apps/web-react/locales/zh/contributions.json similarity index 100% rename from locales/zh/contributions.json rename to apps/web-react/locales/zh/contributions.json diff --git a/locales/zh/faq.json b/apps/web-react/locales/zh/faq.json similarity index 100% rename from locales/zh/faq.json rename to apps/web-react/locales/zh/faq.json diff --git a/locales/zh/forms.json b/apps/web-react/locales/zh/forms.json similarity index 100% rename from locales/zh/forms.json rename to apps/web-react/locales/zh/forms.json diff --git a/locales/zh/friends.json b/apps/web-react/locales/zh/friends.json similarity index 100% rename from locales/zh/friends.json rename to apps/web-react/locales/zh/friends.json diff --git a/locales/zh/front.json b/apps/web-react/locales/zh/front.json similarity index 100% rename from locales/zh/front.json rename to apps/web-react/locales/zh/front.json diff --git a/locales/zh/game-badges.json b/apps/web-react/locales/zh/game-badges.json similarity index 100% rename from locales/zh/game-badges.json rename to apps/web-react/locales/zh/game-badges.json diff --git a/locales/zh/game-misc.json b/apps/web-react/locales/zh/game-misc.json similarity index 100% rename from locales/zh/game-misc.json rename to apps/web-react/locales/zh/game-misc.json diff --git a/locales/zh/gear.json b/apps/web-react/locales/zh/gear.json similarity index 100% rename from locales/zh/gear.json rename to apps/web-react/locales/zh/gear.json diff --git a/locales/zh/lfg.json b/apps/web-react/locales/zh/lfg.json similarity index 100% rename from locales/zh/lfg.json rename to apps/web-react/locales/zh/lfg.json diff --git a/locales/zh/org.json b/apps/web-react/locales/zh/org.json similarity index 100% rename from locales/zh/org.json rename to apps/web-react/locales/zh/org.json diff --git a/locales/zh/params.json b/apps/web-react/locales/zh/params.json similarity index 100% rename from locales/zh/params.json rename to apps/web-react/locales/zh/params.json diff --git a/locales/zh/q.json b/apps/web-react/locales/zh/q.json similarity index 100% rename from locales/zh/q.json rename to apps/web-react/locales/zh/q.json diff --git a/locales/zh/scrims.json b/apps/web-react/locales/zh/scrims.json similarity index 100% rename from locales/zh/scrims.json rename to apps/web-react/locales/zh/scrims.json diff --git a/locales/zh/settings.json b/apps/web-react/locales/zh/settings.json similarity index 100% rename from locales/zh/settings.json rename to apps/web-react/locales/zh/settings.json diff --git a/locales/zh/team.json b/apps/web-react/locales/zh/team.json similarity index 100% rename from locales/zh/team.json rename to apps/web-react/locales/zh/team.json diff --git a/locales/zh/tier-list-maker.json b/apps/web-react/locales/zh/tier-list-maker.json similarity index 100% rename from locales/zh/tier-list-maker.json rename to apps/web-react/locales/zh/tier-list-maker.json diff --git a/locales/zh/tournament.json b/apps/web-react/locales/zh/tournament.json similarity index 100% rename from locales/zh/tournament.json rename to apps/web-react/locales/zh/tournament.json diff --git a/locales/zh/trophies.json b/apps/web-react/locales/zh/trophies.json similarity index 100% rename from locales/zh/trophies.json rename to apps/web-react/locales/zh/trophies.json diff --git a/locales/zh/user.json b/apps/web-react/locales/zh/user.json similarity index 100% rename from locales/zh/user.json rename to apps/web-react/locales/zh/user.json diff --git a/locales/zh/vods.json b/apps/web-react/locales/zh/vods.json similarity index 100% rename from locales/zh/vods.json rename to apps/web-react/locales/zh/vods.json diff --git a/locales/zh/weapons.json b/apps/web-react/locales/zh/weapons.json similarity index 100% rename from locales/zh/weapons.json rename to apps/web-react/locales/zh/weapons.json diff --git a/locales/zh/welcome.json b/apps/web-react/locales/zh/welcome.json similarity index 100% rename from locales/zh/welcome.json rename to apps/web-react/locales/zh/welcome.json diff --git a/migrations/20260803000000-initial.sql b/apps/web-react/migrations/20260803000000-initial.sql similarity index 100% rename from migrations/20260803000000-initial.sql rename to apps/web-react/migrations/20260803000000-initial.sql diff --git a/migrations/20260803000000-initial.ts b/apps/web-react/migrations/20260803000000-initial.ts similarity index 100% rename from migrations/20260803000000-initial.ts rename to apps/web-react/migrations/20260803000000-initial.ts diff --git a/migrations/20260803155926-group-match-cancel-report.ts b/apps/web-react/migrations/20260803155926-group-match-cancel-report.ts similarity index 100% rename from migrations/20260803155926-group-match-cancel-report.ts rename to apps/web-react/migrations/20260803155926-group-match-cancel-report.ts diff --git a/migrations/20260805155023-pending-trophy-accepted-at.ts b/apps/web-react/migrations/20260805155023-pending-trophy-accepted-at.ts similarity index 100% rename from migrations/20260805155023-pending-trophy-accepted-at.ts rename to apps/web-react/migrations/20260805155023-pending-trophy-accepted-at.ts diff --git a/migrations/20260805190302-tournament-team-member-organizer-added.ts b/apps/web-react/migrations/20260805190302-tournament-team-member-organizer-added.ts similarity index 100% rename from migrations/20260805190302-tournament-team-member-organizer-added.ts rename to apps/web-react/migrations/20260805190302-tournament-team-member-organizer-added.ts diff --git a/migrations/20260806150959-user-tournament-name.ts b/apps/web-react/migrations/20260806150959-user-tournament-name.ts similarity index 100% rename from migrations/20260806150959-user-tournament-name.ts rename to apps/web-react/migrations/20260806150959-user-tournament-name.ts diff --git a/migrations/20260807120658-remove-group-member-role.ts b/apps/web-react/migrations/20260807120658-remove-group-member-role.ts similarity index 100% rename from migrations/20260807120658-remove-group-member-role.ts rename to apps/web-react/migrations/20260807120658-remove-group-member-role.ts diff --git a/migrations/20260807134609-group-suggestions.ts b/apps/web-react/migrations/20260807134609-group-suggestions.ts similarity index 100% rename from migrations/20260807134609-group-suggestions.ts rename to apps/web-react/migrations/20260807134609-group-suggestions.ts diff --git a/migrations/20260807143400-sq-ready-check.ts b/apps/web-react/migrations/20260807143400-sq-ready-check.ts similarity index 100% rename from migrations/20260807143400-sq-ready-check.ts rename to apps/web-react/migrations/20260807143400-sq-ready-check.ts diff --git a/migrations/20260807143401-ingest.ts b/apps/web-react/migrations/20260807143401-ingest.ts similarity index 100% rename from migrations/20260807143401-ingest.ts rename to apps/web-react/migrations/20260807143401-ingest.ts diff --git a/migrations/20260808081130-user-card-xp-division.ts b/apps/web-react/migrations/20260808081130-user-card-xp-division.ts similarity index 100% rename from migrations/20260808081130-user-card-xp-division.ts rename to apps/web-react/migrations/20260808081130-user-card-xp-division.ts diff --git a/migrations/20260809123737-notification-subscription-endpoint-unique.ts b/apps/web-react/migrations/20260809123737-notification-subscription-endpoint-unique.ts similarity index 100% rename from migrations/20260809123737-notification-subscription-endpoint-unique.ts rename to apps/web-react/migrations/20260809123737-notification-subscription-endpoint-unique.ts diff --git a/migrations/20260812155327-scrim-pickup-rosters.ts b/apps/web-react/migrations/20260812155327-scrim-pickup-rosters.ts similarity index 100% rename from migrations/20260812155327-scrim-pickup-rosters.ts rename to apps/web-react/migrations/20260812155327-scrim-pickup-rosters.ts diff --git a/migrations/20260815070111-leaderboard-team-skip.ts b/apps/web-react/migrations/20260815070111-leaderboard-team-skip.ts similarity index 100% rename from migrations/20260815070111-leaderboard-team-skip.ts rename to apps/web-react/migrations/20260815070111-leaderboard-team-skip.ts diff --git a/apps/web-react/package.json b/apps/web-react/package.json new file mode 100644 index 000000000..46b0be673 --- /dev/null +++ b/apps/web-react/package.json @@ -0,0 +1,136 @@ +{ + "name": "web-react", + "version": "3.0.0", + "private": true, + "sideEffects": false, + "type": "module", + "scripts": { + "build": "react-router build", + "dev": "cross-env DB_PATH=db.sqlite3 pnpm run migrate up && pnpm run setup && react-router dev --host", + "dev:fast": "react-router dev --host", + "dev:prod": "cross-env DB_PATH=db-prod.sqlite3 VITE_PROD_MODE=true react-router dev --host", + "start": "pnpm run migrate up && NODE_ENV=production react-router-serve ./build/server/index.js", + "migrate": "node scripts/migrate.ts", + "migrate:new": "node scripts/create-migration.ts", + "migrate:prod": "cross-env DB_PATH=db-prod.sqlite3 pnpm run migrate up", + "check-translation-jsons": "node scripts/check-translation-jsons.ts", + "check-translation-jsons:no-write": "node scripts/check-translation-jsons.ts --no-write", + "check-articles": "vite-node scripts/check-articles.ts", + "bench:db": "cross-env DB_PATH=db-prod.sqlite3 VITE_PROD_MODE=true vite-node scripts/benchmark-db.ts", + "compute-luti-divs": "vite-node scripts/compute-luti-divs.ts", + "refresh-prod-db": "node scripts/refresh-prod-db.ts && pnpm run migrate:prod", + "biome:check": "pnpm -w run biome:check", + "biome:fix": "pnpm -w run biome:fix", + "biome:fix:unsafe": "pnpm -w run biome:fix:unsafe", + "typecheck": "react-router typegen && tsc --noEmit", + "typecheck:scripts": "tsc --noEmit -p scripts", + "test:unit:browser": "cross-env VITE_SITE_DOMAIN=http://localhost:5173 BROWSER_HEADLESS=true vitest --silent=passed-only run --project unit --project browser", + "test:browser:ui": "cross-env VITE_SITE_DOMAIN=http://localhost:5173 vitest --silent=passed-only --project browser", + "test:unit:browser:ui": "cross-env VITE_SITE_DOMAIN=http://localhost:5173 vitest --silent=passed-only", + "test:scanner": "vitest run --project scanner", + "scanner:report": "vite-node -c scripts/scanner/vite-node.config.ts scripts/scanner/report.ts", + "scanner:scan-vod": "vite-node -c scripts/scanner/vite-node.config.ts scripts/scanner/scan-vod.ts", + "scanner:status-audit": "vite-node -c scripts/scanner/vite-node.config.ts scripts/scanner/status-audit.ts", + "scanner:fixtures": "vite-node -c scripts/scanner/vite-node.config.ts scripts/scanner/run-fixtures.ts", + "scanner:replay": "vite-node -c scripts/scanner/vite-node.config.ts scripts/scanner/replay-frames.ts", + "scanner:bootstrap-atlas": "vite-node -c scripts/scanner/vite-node.config.ts scripts/scanner/bootstrap-atlas-from-fixture.ts", + "scanner:build-glyph-atlas": "vite-node -c scripts/scanner/vite-node.config.ts scripts/scanner/build-glyph-atlas.ts", + "scanner:build-localized-entries": "vite-node -c scripts/scanner/vite-node.config.ts scripts/scanner/build-localized-entries.ts", + "scanner:build-planner-signatures": "vite-node -c scripts/scanner/vite-node.config.ts scripts/scanner/build-planner-signatures.ts", + "test:e2e": "playwright test", + "test:e2e:flaky-detect": "playwright test --repeat-each=10 --max-failures=1", + "check-plural-collapse": "node scripts/collapse-single-plural-keys.ts --check", + "checks": "pnpm run biome:fix && pnpm run test:unit:browser && pnpm run check-translation-jsons && pnpm run check-plural-collapse && pnpm run typecheck && pnpm run knip", + "checks:scanner": "pnpm checks && pnpm test:scanner", + "seed": "cross-env DB_PATH=db.sqlite3 vite-node ./scripts/seed.ts", + "setup": "cross-env DB_PATH=db.sqlite3 vite-node ./scripts/setup.ts", + "notification:test": "cross-env DB_PATH=db.sqlite3 vite-node ./scripts/send-test-notification.ts", + "i18n:sync": "node scripts/collapse-single-plural-keys.ts && i18next-locales-sync -e true -p en -s da de es-ES es-US fr-CA fr-EU he it ja ko nl pl pt-BR ru zh -l locales && pnpm run biome:fix", + "knip": "knip" + }, + "dependencies": { + "@aws-sdk/client-s3": "3.1104.0", + "@aws-sdk/lib-storage": "3.1104.0", + "@date-fns/tz": "1.5.0", + "@dnd-kit/core": "6.3.1", + "@dnd-kit/modifiers": "9.0.0", + "@dnd-kit/sortable": "10.0.0", + "@dnd-kit/utilities": "3.2.2", + "@epic-web/cachified": "5.6.3", + "@faker-js/faker": "10.5.0", + "@internationalized/date": "3.12.3", + "@react-router/node": "8.3.0", + "@react-router/serve": "8.1.0", + "@techstark/opencv-js": "5.0.0-release.1", + "@tldraw/tldraw": "3.12.1", + "@zumer/snapdom": "2.23.2", + "chart.js": "4.5.1", + "clsx": "2.1.1", + "compressorjs": "1.3.0", + "date-fns": "4.4.0", + "edmonds-blossom-fixed": "1.0.1", + "fflate": "0.8.3", + "gray-matter": "4.0.3", + "i18next": "26.3.6", + "i18next-browser-languagedetector": "8.2.1", + "i18next-http-backend": "4.0.1", + "ics": "3.12.0", + "isbot": "5.2.1", + "kysely": "0.29.0", + "lucide-react": "1.28.0", + "markdown-to-jsx": "9.10.2", + "mediabunny": "1.52.3", + "nanoid": "6.0.1", + "node-cron": "4.6.0", + "nprogress": "0.2.0", + "openskill": "5.0.1", + "p-limit": "7.3.1", + "partysocket": "1.3.0", + "picocad2-web": "1.4.0-beta.1", + "qrcode.react": "4.2.0", + "react": "19.2.8", + "react-aria-components": "1.20.0", + "react-chartjs-2": "5.3.1", + "react-dom": "19.2.8", + "react-error-boundary": "6.1.2", + "react-flip-toolkit": "7.2.4", + "react-i18next": "17.0.11", + "react-router": "8.3.0", + "react-use-draggable-scroll": "0.4.7", + "remeda": "2.39.0", + "remix-auth": "4.2.0", + "remix-auth-oauth2": "3.4.1", + "remix-i18next": "8.0.0", + "slugify": "1.6.9", + "swr": "2.5.0", + "web-haptics": "0.0.6", + "web-push": "3.6.7", + "zod": "4.4.3" + }, + "devDependencies": { + "@babel/preset-typescript": "7.29.7", + "@napi-rs/canvas": "1.0.3", + "@playwright/test": "1.62.1", + "@react-router/dev": "8.3.0", + "@types/node": "26.1.2", + "@types/nprogress": "0.2.3", + "@types/react": "19.2.18", + "@types/react-dom": "19.2.4", + "@types/web-push": "3.6.4", + "@vitest/browser-playwright": "4.1.10", + "@vitest/ui": "4.1.10", + "babel-plugin-react-compiler": "19.1.0-rc.3", + "cross-env": "10.1.0", + "i18next-locales-sync": "2.1.1", + "knip": "6.32.0", + "magic-string": "1.1.0", + "sharp": "^0.35.3", + "sql-formatter": "15.8.2", + "typescript": "7.0.2", + "vite": "8.2.0", + "vite-node": "6.0.0", + "vite-plugin-babel": "1.7.3", + "vitest": "4.1.10", + "vitest-browser-react": "2.2.0" + } +} diff --git a/playwright.config.ts b/apps/web-react/playwright.config.ts similarity index 100% rename from playwright.config.ts rename to apps/web-react/playwright.config.ts diff --git a/public/app.webmanifest b/apps/web-react/public/app.webmanifest similarity index 100% rename from public/app.webmanifest rename to apps/web-react/public/app.webmanifest diff --git a/public/favicon.ico b/apps/web-react/public/favicon.ico similarity index 100% rename from public/favicon.ico rename to apps/web-react/public/favicon.ico diff --git a/public/robots.txt b/apps/web-react/public/robots.txt similarity index 100% rename from public/robots.txt rename to apps/web-react/public/robots.txt diff --git a/public/scanner/v1/glyphs/death-tag-name.json b/apps/web-react/public/scanner/v1/glyphs/death-tag-name.json similarity index 100% rename from public/scanner/v1/glyphs/death-tag-name.json rename to apps/web-react/public/scanner/v1/glyphs/death-tag-name.json diff --git a/public/scanner/v1/glyphs/death-tag-name.png b/apps/web-react/public/scanner/v1/glyphs/death-tag-name.png similarity index 100% rename from public/scanner/v1/glyphs/death-tag-name.png rename to apps/web-react/public/scanner/v1/glyphs/death-tag-name.png diff --git a/public/scanner/v1/glyphs/death-weapon-ja.json b/apps/web-react/public/scanner/v1/glyphs/death-weapon-ja.json similarity index 100% rename from public/scanner/v1/glyphs/death-weapon-ja.json rename to apps/web-react/public/scanner/v1/glyphs/death-weapon-ja.json diff --git a/public/scanner/v1/glyphs/death-weapon-ja.png b/apps/web-react/public/scanner/v1/glyphs/death-weapon-ja.png similarity index 100% rename from public/scanner/v1/glyphs/death-weapon-ja.png rename to apps/web-react/public/scanner/v1/glyphs/death-weapon-ja.png diff --git a/public/scanner/v1/glyphs/death-weapon.json b/apps/web-react/public/scanner/v1/glyphs/death-weapon.json similarity index 100% rename from public/scanner/v1/glyphs/death-weapon.json rename to apps/web-react/public/scanner/v1/glyphs/death-weapon.json diff --git a/public/scanner/v1/glyphs/death-weapon.png b/apps/web-react/public/scanner/v1/glyphs/death-weapon.png similarity index 100% rename from public/scanner/v1/glyphs/death-weapon.png rename to apps/web-react/public/scanner/v1/glyphs/death-weapon.png diff --git a/public/scanner/v1/glyphs/map-start-mode.json b/apps/web-react/public/scanner/v1/glyphs/map-start-mode.json similarity index 100% rename from public/scanner/v1/glyphs/map-start-mode.json rename to apps/web-react/public/scanner/v1/glyphs/map-start-mode.json diff --git a/public/scanner/v1/glyphs/map-start-mode.png b/apps/web-react/public/scanner/v1/glyphs/map-start-mode.png similarity index 100% rename from public/scanner/v1/glyphs/map-start-mode.png rename to apps/web-react/public/scanner/v1/glyphs/map-start-mode.png diff --git a/public/scanner/v1/glyphs/map-start-stage.json b/apps/web-react/public/scanner/v1/glyphs/map-start-stage.json similarity index 100% rename from public/scanner/v1/glyphs/map-start-stage.json rename to apps/web-react/public/scanner/v1/glyphs/map-start-stage.json diff --git a/public/scanner/v1/glyphs/map-start-stage.png b/apps/web-react/public/scanner/v1/glyphs/map-start-stage.png similarity index 100% rename from public/scanner/v1/glyphs/map-start-stage.png rename to apps/web-react/public/scanner/v1/glyphs/map-start-stage.png diff --git a/public/scanner/v1/glyphs/scoreboard-header-line.json b/apps/web-react/public/scanner/v1/glyphs/scoreboard-header-line.json similarity index 100% rename from public/scanner/v1/glyphs/scoreboard-header-line.json rename to apps/web-react/public/scanner/v1/glyphs/scoreboard-header-line.json diff --git a/public/scanner/v1/glyphs/scoreboard-header-line.png b/apps/web-react/public/scanner/v1/glyphs/scoreboard-header-line.png similarity index 100% rename from public/scanner/v1/glyphs/scoreboard-header-line.png rename to apps/web-react/public/scanner/v1/glyphs/scoreboard-header-line.png diff --git a/public/scanner/v1/glyphs/scoreboard-header-lobby.json b/apps/web-react/public/scanner/v1/glyphs/scoreboard-header-lobby.json similarity index 100% rename from public/scanner/v1/glyphs/scoreboard-header-lobby.json rename to apps/web-react/public/scanner/v1/glyphs/scoreboard-header-lobby.json diff --git a/public/scanner/v1/glyphs/scoreboard-header-lobby.png b/apps/web-react/public/scanner/v1/glyphs/scoreboard-header-lobby.png similarity index 100% rename from public/scanner/v1/glyphs/scoreboard-header-lobby.png rename to apps/web-react/public/scanner/v1/glyphs/scoreboard-header-lobby.png diff --git a/public/scanner/v1/glyphs/scoreboard-names.json b/apps/web-react/public/scanner/v1/glyphs/scoreboard-names.json similarity index 100% rename from public/scanner/v1/glyphs/scoreboard-names.json rename to apps/web-react/public/scanner/v1/glyphs/scoreboard-names.json diff --git a/public/scanner/v1/glyphs/scoreboard-names.png b/apps/web-react/public/scanner/v1/glyphs/scoreboard-names.png similarity index 100% rename from public/scanner/v1/glyphs/scoreboard-names.png rename to apps/web-react/public/scanner/v1/glyphs/scoreboard-names.png diff --git a/public/scanner/v1/glyphs/scoreboard-paint-digits.json b/apps/web-react/public/scanner/v1/glyphs/scoreboard-paint-digits.json similarity index 100% rename from public/scanner/v1/glyphs/scoreboard-paint-digits.json rename to apps/web-react/public/scanner/v1/glyphs/scoreboard-paint-digits.json diff --git a/public/scanner/v1/glyphs/scoreboard-paint-digits.png b/apps/web-react/public/scanner/v1/glyphs/scoreboard-paint-digits.png similarity index 100% rename from public/scanner/v1/glyphs/scoreboard-paint-digits.png rename to apps/web-react/public/scanner/v1/glyphs/scoreboard-paint-digits.png diff --git a/public/scanner/v1/glyphs/scoreboard-replay-code.json b/apps/web-react/public/scanner/v1/glyphs/scoreboard-replay-code.json similarity index 100% rename from public/scanner/v1/glyphs/scoreboard-replay-code.json rename to apps/web-react/public/scanner/v1/glyphs/scoreboard-replay-code.json diff --git a/public/scanner/v1/glyphs/scoreboard-replay-code.png b/apps/web-react/public/scanner/v1/glyphs/scoreboard-replay-code.png similarity index 100% rename from public/scanner/v1/glyphs/scoreboard-replay-code.png rename to apps/web-react/public/scanner/v1/glyphs/scoreboard-replay-code.png diff --git a/public/scanner/v1/glyphs/scoreboard-replay-result.json b/apps/web-react/public/scanner/v1/glyphs/scoreboard-replay-result.json similarity index 100% rename from public/scanner/v1/glyphs/scoreboard-replay-result.json rename to apps/web-react/public/scanner/v1/glyphs/scoreboard-replay-result.json diff --git a/public/scanner/v1/glyphs/scoreboard-replay-result.png b/apps/web-react/public/scanner/v1/glyphs/scoreboard-replay-result.png similarity index 100% rename from public/scanner/v1/glyphs/scoreboard-replay-result.png rename to apps/web-react/public/scanner/v1/glyphs/scoreboard-replay-result.png diff --git a/public/scanner/v1/glyphs/scoreboard-stat-digits.json b/apps/web-react/public/scanner/v1/glyphs/scoreboard-stat-digits.json similarity index 100% rename from public/scanner/v1/glyphs/scoreboard-stat-digits.json rename to apps/web-react/public/scanner/v1/glyphs/scoreboard-stat-digits.json diff --git a/public/scanner/v1/glyphs/scoreboard-stat-digits.png b/apps/web-react/public/scanner/v1/glyphs/scoreboard-stat-digits.png similarity index 100% rename from public/scanner/v1/glyphs/scoreboard-stat-digits.png rename to apps/web-react/public/scanner/v1/glyphs/scoreboard-stat-digits.png diff --git a/public/scanner/v1/glyphs/scoreboard-team-digits.json b/apps/web-react/public/scanner/v1/glyphs/scoreboard-team-digits.json similarity index 100% rename from public/scanner/v1/glyphs/scoreboard-team-digits.json rename to apps/web-react/public/scanner/v1/glyphs/scoreboard-team-digits.json diff --git a/public/scanner/v1/glyphs/scoreboard-team-digits.png b/apps/web-react/public/scanner/v1/glyphs/scoreboard-team-digits.png similarity index 100% rename from public/scanner/v1/glyphs/scoreboard-team-digits.png rename to apps/web-react/public/scanner/v1/glyphs/scoreboard-team-digits.png diff --git a/public/scanner/v1/planner/manifest.json b/apps/web-react/public/scanner/v1/planner/manifest.json similarity index 100% rename from public/scanner/v1/planner/manifest.json rename to apps/web-react/public/scanner/v1/planner/manifest.json diff --git a/public/scanner/v1/planner/signatures.png b/apps/web-react/public/scanner/v1/planner/signatures.png similarity index 100% rename from public/scanner/v1/planner/signatures.png rename to apps/web-react/public/scanner/v1/planner/signatures.png diff --git a/public/sw-2.js b/apps/web-react/public/sw-2.js similarity index 100% rename from public/sw-2.js rename to apps/web-react/public/sw-2.js diff --git a/react-router.config.ts b/apps/web-react/react-router.config.ts similarity index 100% rename from react-router.config.ts rename to apps/web-react/react-router.config.ts diff --git a/scripts/add-badge-winners.ts b/apps/web-react/scripts/add-badge-winners.ts similarity index 100% rename from scripts/add-badge-winners.ts rename to apps/web-react/scripts/add-badge-winners.ts diff --git a/scripts/add-badge.ts b/apps/web-react/scripts/add-badge.ts similarity index 100% rename from scripts/add-badge.ts rename to apps/web-react/scripts/add-badge.ts diff --git a/scripts/add-leaderboard-teams-to-tournament.ts b/apps/web-react/scripts/add-leaderboard-teams-to-tournament.ts similarity index 100% rename from scripts/add-leaderboard-teams-to-tournament.ts rename to apps/web-react/scripts/add-leaderboard-teams-to-tournament.ts diff --git a/scripts/benchmark-db.ts b/apps/web-react/scripts/benchmark-db.ts similarity index 100% rename from scripts/benchmark-db.ts rename to apps/web-react/scripts/benchmark-db.ts diff --git a/scripts/benchmark-db/cases.ts b/apps/web-react/scripts/benchmark-db/cases.ts similarity index 100% rename from scripts/benchmark-db/cases.ts rename to apps/web-react/scripts/benchmark-db/cases.ts diff --git a/scripts/benchmark-db/fixtures.ts b/apps/web-react/scripts/benchmark-db/fixtures.ts similarity index 100% rename from scripts/benchmark-db/fixtures.ts rename to apps/web-react/scripts/benchmark-db/fixtures.ts diff --git a/scripts/check-articles.ts b/apps/web-react/scripts/check-articles.ts similarity index 100% rename from scripts/check-articles.ts rename to apps/web-react/scripts/check-articles.ts diff --git a/scripts/check-season-status.ts b/apps/web-react/scripts/check-season-status.ts similarity index 100% rename from scripts/check-season-status.ts rename to apps/web-react/scripts/check-season-status.ts diff --git a/scripts/check-translation-jsons.ts b/apps/web-react/scripts/check-translation-jsons.ts similarity index 100% rename from scripts/check-translation-jsons.ts rename to apps/web-react/scripts/check-translation-jsons.ts diff --git a/scripts/collapse-single-plural-keys.ts b/apps/web-react/scripts/collapse-single-plural-keys.ts similarity index 100% rename from scripts/collapse-single-plural-keys.ts rename to apps/web-react/scripts/collapse-single-plural-keys.ts diff --git a/scripts/compute-luti-divs.ts b/apps/web-react/scripts/compute-luti-divs.ts similarity index 100% rename from scripts/compute-luti-divs.ts rename to apps/web-react/scripts/compute-luti-divs.ts diff --git a/scripts/create-analyzer-json.ts b/apps/web-react/scripts/create-analyzer-json.ts similarity index 100% rename from scripts/create-analyzer-json.ts rename to apps/web-react/scripts/create-analyzer-json.ts diff --git a/scripts/create-gear-json.ts b/apps/web-react/scripts/create-gear-json.ts similarity index 100% rename from scripts/create-gear-json.ts rename to apps/web-react/scripts/create-gear-json.ts diff --git a/scripts/create-league-divisions.ts b/apps/web-react/scripts/create-league-divisions.ts similarity index 100% rename from scripts/create-league-divisions.ts rename to apps/web-react/scripts/create-league-divisions.ts diff --git a/scripts/create-migration.ts b/apps/web-react/scripts/create-migration.ts similarity index 100% rename from scripts/create-migration.ts rename to apps/web-react/scripts/create-migration.ts diff --git a/scripts/create-misc-json.ts b/apps/web-react/scripts/create-misc-json.ts similarity index 100% rename from scripts/create-misc-json.ts rename to apps/web-react/scripts/create-misc-json.ts diff --git a/scripts/create-object-dmg-json.ts b/apps/web-react/scripts/create-object-dmg-json.ts similarity index 100% rename from scripts/create-object-dmg-json.ts rename to apps/web-react/scripts/create-object-dmg-json.ts diff --git a/scripts/delete-badge.ts b/apps/web-react/scripts/delete-badge.ts similarity index 100% rename from scripts/delete-badge.ts rename to apps/web-react/scripts/delete-badge.ts diff --git a/scripts/delete-db-files.mjs b/apps/web-react/scripts/delete-db-files.mjs similarity index 100% rename from scripts/delete-db-files.mjs rename to apps/web-react/scripts/delete-db-files.mjs diff --git a/scripts/delete-skill.ts b/apps/web-react/scripts/delete-skill.ts similarity index 100% rename from scripts/delete-skill.ts rename to apps/web-react/scripts/delete-skill.ts diff --git a/scripts/delete-user.ts b/apps/web-react/scripts/delete-user.ts similarity index 100% rename from scripts/delete-user.ts rename to apps/web-react/scripts/delete-user.ts diff --git a/scripts/dicts/.gitkeep b/apps/web-react/scripts/dicts/.gitkeep similarity index 100% rename from scripts/dicts/.gitkeep rename to apps/web-react/scripts/dicts/.gitkeep diff --git a/scripts/dicts/langs/.gitkeep b/apps/web-react/scripts/dicts/langs/.gitkeep similarity index 100% rename from scripts/dicts/langs/.gitkeep rename to apps/web-react/scripts/dicts/langs/.gitkeep diff --git a/scripts/ensure-test-db.ts b/apps/web-react/scripts/ensure-test-db.ts similarity index 100% rename from scripts/ensure-test-db.ts rename to apps/web-react/scripts/ensure-test-db.ts diff --git a/scripts/join-order.json b/apps/web-react/scripts/join-order.json similarity index 100% rename from scripts/join-order.json rename to apps/web-react/scripts/join-order.json diff --git a/scripts/mass-add-tournaments-to-org.ts b/apps/web-react/scripts/mass-add-tournaments-to-org.ts similarity index 100% rename from scripts/mass-add-tournaments-to-org.ts rename to apps/web-react/scripts/mass-add-tournaments-to-org.ts diff --git a/scripts/migrate.ts b/apps/web-react/scripts/migrate.ts similarity index 100% rename from scripts/migrate.ts rename to apps/web-react/scripts/migrate.ts diff --git a/scripts/nuke-reported-weapons.ts b/apps/web-react/scripts/nuke-reported-weapons.ts similarity index 100% rename from scripts/nuke-reported-weapons.ts rename to apps/web-react/scripts/nuke-reported-weapons.ts diff --git a/scripts/org-monthly-active-players.ts b/apps/web-react/scripts/org-monthly-active-players.ts similarity index 100% rename from scripts/org-monthly-active-players.ts rename to apps/web-react/scripts/org-monthly-active-players.ts diff --git a/scripts/output/.gitkeep b/apps/web-react/scripts/output/.gitkeep similarity index 100% rename from scripts/output/.gitkeep rename to apps/web-react/scripts/output/.gitkeep diff --git a/scripts/placements/index.ts b/apps/web-react/scripts/placements/index.ts similarity index 100% rename from scripts/placements/index.ts rename to apps/web-react/scripts/placements/index.ts diff --git a/scripts/placements/schemas.ts b/apps/web-react/scripts/placements/schemas.ts similarity index 100% rename from scripts/placements/schemas.ts rename to apps/web-react/scripts/placements/schemas.ts diff --git a/scripts/refresh-prod-db.ts b/apps/web-react/scripts/refresh-prod-db.ts similarity index 100% rename from scripts/refresh-prod-db.ts rename to apps/web-react/scripts/refresh-prod-db.ts diff --git a/scripts/rename-badge.ts b/apps/web-react/scripts/rename-badge.ts similarity index 100% rename from scripts/rename-badge.ts rename to apps/web-react/scripts/rename-badge.ts diff --git a/scripts/replace-img-names.ts b/apps/web-react/scripts/replace-img-names.ts similarity index 100% rename from scripts/replace-img-names.ts rename to apps/web-react/scripts/replace-img-names.ts diff --git a/scripts/replace-weapon-names.ts b/apps/web-react/scripts/replace-weapon-names.ts similarity index 100% rename from scripts/replace-weapon-names.ts rename to apps/web-react/scripts/replace-weapon-names.ts diff --git a/scripts/scanner/bootstrap-atlas-from-fixture.ts b/apps/web-react/scripts/scanner/bootstrap-atlas-from-fixture.ts similarity index 100% rename from scripts/scanner/bootstrap-atlas-from-fixture.ts rename to apps/web-react/scripts/scanner/bootstrap-atlas-from-fixture.ts diff --git a/scripts/scanner/build-glyph-atlas.ts b/apps/web-react/scripts/scanner/build-glyph-atlas.ts similarity index 100% rename from scripts/scanner/build-glyph-atlas.ts rename to apps/web-react/scripts/scanner/build-glyph-atlas.ts diff --git a/scripts/scanner/build-localized-entries.ts b/apps/web-react/scripts/scanner/build-localized-entries.ts similarity index 100% rename from scripts/scanner/build-localized-entries.ts rename to apps/web-react/scripts/scanner/build-localized-entries.ts diff --git a/scripts/scanner/build-planner-signatures.ts b/apps/web-react/scripts/scanner/build-planner-signatures.ts similarity index 100% rename from scripts/scanner/build-planner-signatures.ts rename to apps/web-react/scripts/scanner/build-planner-signatures.ts diff --git a/scripts/scanner/dump-crops.ts b/apps/web-react/scripts/scanner/dump-crops.ts similarity index 100% rename from scripts/scanner/dump-crops.ts rename to apps/web-react/scripts/scanner/dump-crops.ts diff --git a/scripts/scanner/otf-cmap.ts b/apps/web-react/scripts/scanner/otf-cmap.ts similarity index 100% rename from scripts/scanner/otf-cmap.ts rename to apps/web-react/scripts/scanner/otf-cmap.ts diff --git a/scripts/scanner/overlay-rois.ts b/apps/web-react/scripts/scanner/overlay-rois.ts similarity index 100% rename from scripts/scanner/overlay-rois.ts rename to apps/web-react/scripts/scanner/overlay-rois.ts diff --git a/scripts/scanner/replay-frames.ts b/apps/web-react/scripts/scanner/replay-frames.ts similarity index 100% rename from scripts/scanner/replay-frames.ts rename to apps/web-react/scripts/scanner/replay-frames.ts diff --git a/scripts/scanner/report.ts b/apps/web-react/scripts/scanner/report.ts similarity index 100% rename from scripts/scanner/report.ts rename to apps/web-react/scripts/scanner/report.ts diff --git a/scripts/scanner/run-fixtures.ts b/apps/web-react/scripts/scanner/run-fixtures.ts similarity index 100% rename from scripts/scanner/run-fixtures.ts rename to apps/web-react/scripts/scanner/run-fixtures.ts diff --git a/scripts/scanner/scan-vod.ts b/apps/web-react/scripts/scanner/scan-vod.ts similarity index 100% rename from scripts/scanner/scan-vod.ts rename to apps/web-react/scripts/scanner/scan-vod.ts diff --git a/scripts/scanner/status-audit.ts b/apps/web-react/scripts/scanner/status-audit.ts similarity index 100% rename from scripts/scanner/status-audit.ts rename to apps/web-react/scripts/scanner/status-audit.ts diff --git a/scripts/scanner/vite-node.config.ts b/apps/web-react/scripts/scanner/vite-node.config.ts similarity index 100% rename from scripts/scanner/vite-node.config.ts rename to apps/web-react/scripts/scanner/vite-node.config.ts diff --git a/scripts/season-initial-powers.ts b/apps/web-react/scripts/season-initial-powers.ts similarity index 100% rename from scripts/season-initial-powers.ts rename to apps/web-react/scripts/season-initial-powers.ts diff --git a/scripts/seed-art-urls.ts b/apps/web-react/scripts/seed-art-urls.ts similarity index 100% rename from scripts/seed-art-urls.ts rename to apps/web-react/scripts/seed-art-urls.ts diff --git a/scripts/seed-images.ts b/apps/web-react/scripts/seed-images.ts similarity index 100% rename from scripts/seed-images.ts rename to apps/web-react/scripts/seed-images.ts diff --git a/scripts/seed.ts b/apps/web-react/scripts/seed.ts similarity index 100% rename from scripts/seed.ts rename to apps/web-react/scripts/seed.ts diff --git a/scripts/send-test-notification.ts b/apps/web-react/scripts/send-test-notification.ts similarity index 100% rename from scripts/send-test-notification.ts rename to apps/web-react/scripts/send-test-notification.ts diff --git a/scripts/setup.ts b/apps/web-react/scripts/setup.ts similarity index 100% rename from scripts/setup.ts rename to apps/web-react/scripts/setup.ts diff --git a/scripts/skip-plus.ts b/apps/web-react/scripts/skip-plus.ts similarity index 100% rename from scripts/skip-plus.ts rename to apps/web-react/scripts/skip-plus.ts diff --git a/scripts/swap-users.ts b/apps/web-react/scripts/swap-users.ts similarity index 100% rename from scripts/swap-users.ts rename to apps/web-react/scripts/swap-users.ts diff --git a/scripts/sync-homemade-badges.ts b/apps/web-react/scripts/sync-homemade-badges.ts similarity index 100% rename from scripts/sync-homemade-badges.ts rename to apps/web-react/scripts/sync-homemade-badges.ts diff --git a/scripts/sync-weapon-params.ts b/apps/web-react/scripts/sync-weapon-params.ts similarity index 100% rename from scripts/sync-weapon-params.ts rename to apps/web-react/scripts/sync-weapon-params.ts diff --git a/scripts/tsconfig.json b/apps/web-react/scripts/tsconfig.json similarity index 100% rename from scripts/tsconfig.json rename to apps/web-react/scripts/tsconfig.json diff --git a/scripts/unskip-plus.ts b/apps/web-react/scripts/unskip-plus.ts similarity index 100% rename from scripts/unskip-plus.ts rename to apps/web-react/scripts/unskip-plus.ts diff --git a/scripts/utils.ts b/apps/web-react/scripts/utils.ts similarity index 100% rename from scripts/utils.ts rename to apps/web-react/scripts/utils.ts diff --git a/tsconfig.json b/apps/web-react/tsconfig.json similarity index 100% rename from tsconfig.json rename to apps/web-react/tsconfig.json diff --git a/types/edmonds-blossom.d.ts b/apps/web-react/types/edmonds-blossom.d.ts similarity index 100% rename from types/edmonds-blossom.d.ts rename to apps/web-react/types/edmonds-blossom.d.ts diff --git a/types/env.d.ts b/apps/web-react/types/env.d.ts similarity index 100% rename from types/env.d.ts rename to apps/web-react/types/env.d.ts diff --git a/types/react-i18next.d.ts b/apps/web-react/types/react-i18next.d.ts similarity index 100% rename from types/react-i18next.d.ts rename to apps/web-react/types/react-i18next.d.ts diff --git a/types/react.d.ts b/apps/web-react/types/react.d.ts similarity index 100% rename from types/react.d.ts rename to apps/web-react/types/react.d.ts diff --git a/types/vite.d.ts b/apps/web-react/types/vite.d.ts similarity index 100% rename from types/vite.d.ts rename to apps/web-react/types/vite.d.ts diff --git a/types/youtube.d.ts b/apps/web-react/types/youtube.d.ts similarity index 100% rename from types/youtube.d.ts rename to apps/web-react/types/youtube.d.ts diff --git a/vite.config.ts b/apps/web-react/vite.config.ts similarity index 100% rename from vite.config.ts rename to apps/web-react/vite.config.ts diff --git a/vitest.browser.config.ts b/apps/web-react/vitest.browser.config.ts similarity index 100% rename from vitest.browser.config.ts rename to apps/web-react/vitest.browser.config.ts diff --git a/vitest.scanner.config.ts b/apps/web-react/vitest.scanner.config.ts similarity index 100% rename from vitest.scanner.config.ts rename to apps/web-react/vitest.scanner.config.ts diff --git a/vitest.unit.config.ts b/apps/web-react/vitest.unit.config.ts similarity index 100% rename from vitest.unit.config.ts rename to apps/web-react/vitest.unit.config.ts diff --git a/biome.json b/biome.json index 3adfb8938..34f9e6f40 100644 --- a/biome.json +++ b/biome.json @@ -3,15 +3,15 @@ "files": { "includes": [ "**", - "!scripts/dicts/**/*", - "!scripts/output/**/*", - "!app/db/seed/data/placements.json", - "!build/**/*", - "!app/features/scanner/tests/fixtures", - "!public/scanner/**/*", - "!test-results/**/*", - "!playwright-report/**/*", - "!.react-router/**/*", + "!apps/web-react/scripts/dicts/**/*", + "!apps/web-react/scripts/output/**/*", + "!apps/web-react/app/db/seed/data/placements.json", + "!apps/web-react/app/features/scanner/tests/fixtures", + "!apps/web-react/public/scanner/**/*", + "!**/build/**/*", + "!**/test-results/**/*", + "!**/playwright-report/**/*", + "!**/.react-router/**/*", "!**/*.svg" ] }, @@ -76,11 +76,17 @@ }, "overrides": [ { - "includes": ["app/**", "!app/modules/search-params/**"], + "includes": [ + "apps/web-react/app/**", + "!apps/web-react/app/modules/search-params/**" + ], "plugins": ["./biome-plugins/no-raw-search-params.grit"] }, { - "includes": ["app/**", "!app/hooks/useActionSubmit.ts"], + "includes": [ + "apps/web-react/app/**", + "!apps/web-react/app/hooks/useActionSubmit.ts" + ], "plugins": ["./biome-plugins/no-raw-action-forms.grit"] }, { @@ -88,11 +94,14 @@ "plugins": ["./biome-plugins/no-raw-db-writes-in-tests.grit"] }, { - "includes": ["app/db/seed/dev/**", "app/db/seed/index.ts"], + "includes": [ + "apps/web-react/app/db/seed/dev/**", + "apps/web-react/app/db/seed/index.ts" + ], "plugins": ["./biome-plugins/no-raw-db-writes-in-dev-seed.grit"] }, { - "includes": ["**", "!app/utils/kysely.server.ts"], + "includes": ["**", "!apps/web-react/app/utils/kysely.server.ts"], "plugins": ["./biome-plugins/no-kysely-sqlite-helpers.grit"] } ] diff --git a/package.json b/package.json index 79796bf17..562a27626 100644 --- a/package.json +++ b/package.json @@ -3,137 +3,38 @@ "version": "3.0.0", "private": true, "packageManager": "pnpm@11.0.9", - "sideEffects": false, "type": "module", "scripts": { - "deploy": "pnpm install --frozen-lockfile && pnpm run build", - "build": "react-router build", - "dev": "cross-env DB_PATH=db.sqlite3 pnpm run migrate up && pnpm run setup && react-router dev --host", - "dev:fast": "react-router dev --host", - "dev:prod": "cross-env DB_PATH=db-prod.sqlite3 VITE_PROD_MODE=true react-router dev --host", - "start": "pnpm run migrate up && NODE_ENV=production react-router-serve ./build/server/index.js", - "migrate": "node scripts/migrate.ts", - "migrate:new": "node scripts/create-migration.ts", - "migrate:prod": "cross-env DB_PATH=db-prod.sqlite3 pnpm run migrate up", - "check-translation-jsons": "node scripts/check-translation-jsons.ts", - "check-translation-jsons:no-write": "node scripts/check-translation-jsons.ts --no-write", - "check-articles": "vite-node scripts/check-articles.ts", - "bench:db": "cross-env DB_PATH=db-prod.sqlite3 VITE_PROD_MODE=true vite-node scripts/benchmark-db.ts", - "compute-luti-divs": "vite-node scripts/compute-luti-divs.ts", - "refresh-prod-db": "node scripts/refresh-prod-db.ts && pnpm run migrate:prod", + "deploy": "pnpm install --frozen-lockfile && pnpm --filter web-react run build", + "build": "pnpm --filter web-react run build", + "dev": "pnpm --filter web-react run dev", + "dev:fast": "pnpm --filter web-react run dev:fast", + "dev:prod": "pnpm --filter web-react run dev:prod", + "start": "pnpm --filter web-react run start", + "migrate": "pnpm --filter web-react run migrate", + "migrate:new": "pnpm --filter web-react run migrate:new", + "migrate:prod": "pnpm --filter web-react run migrate:prod", + "seed": "pnpm --filter web-react run seed", + "setup": "pnpm --filter web-react run setup", "biome:check": "biome check --error-on-warnings .", "biome:fix": "biome check --error-on-warnings --write .", "biome:fix:unsafe": "biome check --error-on-warnings --write --unsafe .", - "typecheck": "react-router typegen && tsc --noEmit", - "typecheck:scripts": "tsc --noEmit -p scripts", - "test:unit:browser": "cross-env VITE_SITE_DOMAIN=http://localhost:5173 BROWSER_HEADLESS=true vitest --silent=passed-only run --project unit --project browser", - "test:browser:ui": "cross-env VITE_SITE_DOMAIN=http://localhost:5173 vitest --silent=passed-only --project browser", - "test:unit:browser:ui": "cross-env VITE_SITE_DOMAIN=http://localhost:5173 vitest --silent=passed-only", - "test:scanner": "vitest run --project scanner", - "scanner:report": "vite-node -c scripts/scanner/vite-node.config.ts scripts/scanner/report.ts", - "scanner:scan-vod": "vite-node -c scripts/scanner/vite-node.config.ts scripts/scanner/scan-vod.ts", - "scanner:status-audit": "vite-node -c scripts/scanner/vite-node.config.ts scripts/scanner/status-audit.ts", - "scanner:fixtures": "vite-node -c scripts/scanner/vite-node.config.ts scripts/scanner/run-fixtures.ts", - "scanner:replay": "vite-node -c scripts/scanner/vite-node.config.ts scripts/scanner/replay-frames.ts", - "scanner:bootstrap-atlas": "vite-node -c scripts/scanner/vite-node.config.ts scripts/scanner/bootstrap-atlas-from-fixture.ts", - "scanner:build-glyph-atlas": "vite-node -c scripts/scanner/vite-node.config.ts scripts/scanner/build-glyph-atlas.ts", - "scanner:build-localized-entries": "vite-node -c scripts/scanner/vite-node.config.ts scripts/scanner/build-localized-entries.ts", - "scanner:build-planner-signatures": "vite-node -c scripts/scanner/vite-node.config.ts scripts/scanner/build-planner-signatures.ts", - "test:e2e": "playwright test", - "test:e2e:flaky-detect": "playwright test --repeat-each=10 --max-failures=1", - "check-plural-collapse": "node scripts/collapse-single-plural-keys.ts --check", - "checks": "pnpm run biome:fix && pnpm run test:unit:browser && pnpm run check-translation-jsons && pnpm run check-plural-collapse && pnpm run typecheck && pnpm run knip", - "checks:scanner": "pnpm checks && pnpm test:scanner", - "seed": "cross-env DB_PATH=db.sqlite3 vite-node ./scripts/seed.ts", - "setup": "cross-env DB_PATH=db.sqlite3 vite-node ./scripts/setup.ts", - "notification:test": "cross-env DB_PATH=db.sqlite3 vite-node ./scripts/send-test-notification.ts", - "i18n:sync": "node scripts/collapse-single-plural-keys.ts && i18next-locales-sync -e true -p en -s da de es-ES es-US fr-CA fr-EU he it ja ko nl pl pt-BR ru zh -l locales && pnpm run biome:fix", - "knip": "knip" - }, - "dependencies": { - "@aws-sdk/client-s3": "3.1104.0", - "@aws-sdk/lib-storage": "3.1104.0", - "@date-fns/tz": "1.5.0", - "@dnd-kit/core": "6.3.1", - "@dnd-kit/modifiers": "9.0.0", - "@dnd-kit/sortable": "10.0.0", - "@dnd-kit/utilities": "3.2.2", - "@epic-web/cachified": "5.6.3", - "@faker-js/faker": "10.5.0", - "@internationalized/date": "3.12.3", - "@react-router/node": "8.3.0", - "@react-router/serve": "8.1.0", - "@techstark/opencv-js": "5.0.0-release.1", - "@tldraw/tldraw": "3.12.1", - "@zumer/snapdom": "2.23.2", - "chart.js": "4.5.1", - "clsx": "2.1.1", - "compressorjs": "1.3.0", - "date-fns": "4.4.0", - "edmonds-blossom-fixed": "1.0.1", - "fflate": "0.8.3", - "gray-matter": "4.0.3", - "i18next": "26.3.6", - "i18next-browser-languagedetector": "8.2.1", - "i18next-http-backend": "4.0.1", - "ics": "3.12.0", - "isbot": "5.2.1", - "kysely": "0.29.0", - "lucide-react": "1.28.0", - "markdown-to-jsx": "9.10.2", - "mediabunny": "1.52.3", - "nanoid": "6.0.1", - "node-cron": "4.6.0", - "nprogress": "0.2.0", - "openskill": "5.0.1", - "p-limit": "7.3.1", - "partysocket": "1.3.0", - "picocad2-web": "1.4.0-beta.1", - "qrcode.react": "4.2.0", - "react": "19.2.8", - "react-aria-components": "1.20.0", - "react-chartjs-2": "5.3.1", - "react-dom": "19.2.8", - "react-error-boundary": "6.1.2", - "react-flip-toolkit": "7.2.4", - "react-i18next": "17.0.11", - "react-router": "8.3.0", - "react-use-draggable-scroll": "0.4.7", - "remeda": "2.39.0", - "remix-auth": "4.2.0", - "remix-auth-oauth2": "3.4.1", - "remix-i18next": "8.0.0", - "slugify": "1.6.9", - "swr": "2.5.0", - "web-haptics": "0.0.6", - "web-push": "3.6.7", - "zod": "4.4.3" + "typecheck": "pnpm --filter web-react run typecheck", + "typecheck:scripts": "pnpm --filter web-react run typecheck:scripts", + "test:unit:browser": "pnpm --filter web-react run test:unit:browser", + "test:scanner": "pnpm --filter web-react run test:scanner", + "test:e2e": "pnpm --filter web-react run test:e2e", + "test:e2e:flaky-detect": "pnpm --filter web-react run test:e2e:flaky-detect", + "check-translation-jsons": "pnpm --filter web-react run check-translation-jsons", + "check-translation-jsons:no-write": "pnpm --filter web-react run check-translation-jsons:no-write", + "check-plural-collapse": "pnpm --filter web-react run check-plural-collapse", + "check-articles": "pnpm --filter web-react run check-articles", + "i18n:sync": "pnpm --filter web-react run i18n:sync", + "knip": "pnpm --filter web-react run knip", + "checks": "pnpm --filter web-react run checks", + "manifest:report": "pnpm --filter @sendou-ink/codemods run manifest:report" }, "devDependencies": { - "@babel/preset-typescript": "7.29.7", - "@biomejs/biome": "2.5.7", - "@napi-rs/canvas": "1.0.3", - "@playwright/test": "1.62.1", - "@react-router/dev": "8.3.0", - "@types/node": "26.1.2", - "@types/nprogress": "0.2.3", - "@types/react": "19.2.18", - "@types/react-dom": "19.2.4", - "@types/web-push": "3.6.4", - "@vitest/browser-playwright": "4.1.10", - "@vitest/ui": "4.1.10", - "babel-plugin-react-compiler": "19.1.0-rc.3", - "cross-env": "10.1.0", - "i18next-locales-sync": "2.1.1", - "knip": "6.32.0", - "magic-string": "1.1.0", - "sharp": "^0.35.3", - "sql-formatter": "15.8.2", - "typescript": "7.0.2", - "vite": "8.2.0", - "vite-node": "6.0.0", - "vite-plugin-babel": "1.7.3", - "vitest": "4.1.10", - "vitest-browser-react": "2.2.0" + "@biomejs/biome": "2.5.7" } } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 8b8ebe393..d74ffc411 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -12,6 +12,12 @@ patchedDependencies: importers: .: + devDependencies: + '@biomejs/biome': + specifier: 2.5.7 + version: 2.5.7 + + apps/web-react: dependencies: '@aws-sdk/client-s3': specifier: 3.1104.0 @@ -188,9 +194,6 @@ importers: '@babel/preset-typescript': specifier: 7.29.7 version: 7.29.7(@babel/core@7.29.7) - '@biomejs/biome': - specifier: 2.5.7 - version: 2.5.7 '@napi-rs/canvas': specifier: 1.0.3 version: 1.0.3 @@ -407,18 +410,10 @@ packages: resolution: {integrity: sha512-brcMGQaVzIeUb+6/bs1Av0f8YuNNjKY2JyvfRCsFuFsdKccEQ5Ges2y74D74NZ1Rz8lKJ9ksJkfqwQFJ/iNEyQ==} engines: {node: '>=6.9.0'} - '@babel/helper-string-parser@7.27.1': - resolution: {integrity: sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==} - engines: {node: '>=6.9.0'} - '@babel/helper-string-parser@7.29.7': resolution: {integrity: sha512-Pb5ijPrZ89GDH8223L4UP8i6QApWxs04RbPQJTeWDV0/keR2E36MeKnyr6LYmUUvqRRI+Iv87SuF1W6ErINzYw==} engines: {node: '>=6.9.0'} - '@babel/helper-validator-identifier@7.28.5': - resolution: {integrity: sha512-qSs4ifwzKJSV39ucNjsvc6WVHs6b7S03sOh2OcHF9UHfVPqWWALUsNUVzhSBiItjRZoLHx7nIarVjqKVusUZ1Q==} - engines: {node: '>=6.9.0'} - '@babel/helper-validator-identifier@7.29.7': resolution: {integrity: sha512-qehxGkRj55h/ff8EMaJ+cYhyaKlHIxqYDn682wQD7RNp9UujOQsHog2uS0r2vzr4pW+sXf90NeeayjcNaX3fFg==} engines: {node: '>=6.9.0'} @@ -466,10 +461,6 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/runtime@7.29.2': - resolution: {integrity: sha512-JiDShH45zKHWyGe4ZNVRrCjBz8Nh9TMmZG1kh4QTK8hCBTWBi8Da+i7s1fJw7/lYpM4ccepSNfqzZ/QvABBi5g==} - engines: {node: '>=6.9.0'} - '@babel/runtime@7.29.7': resolution: {integrity: sha512-Nq8OhGWiZIZGV6hLHoyAKLLcJihP/xFeBMGJoUrxTX2psI8dCifzLhZISFb+VWS3wFMRDmCGw5R+dOySCqPLhw==} engines: {node: '>=6.9.0'} @@ -482,10 +473,6 @@ packages: resolution: {integrity: sha512-EhlfNQtZ+NK22w5BM61ciuiq1m58ed33Wr1Xan//ZRTy6hgjnwyCffRYwzsGXdASJSUJ1guZILsErh1eQcl+zw==} engines: {node: '>=6.9.0'} - '@babel/types@7.29.0': - resolution: {integrity: sha512-LwdZHpScM4Qz8Xw2iKSzS+cfglZzJGvofQICy7W7v4caru4EaAmyUuO6BGrbyQ2mYV11W0U8j5mBhd14dd3B0A==} - engines: {node: '>=6.9.0'} - '@babel/types@7.29.7': resolution: {integrity: sha512-4zBIxpPzowiZpusoFkyGVwakdRJUyuH5PxQ/PrqghfdFWWasvnCdPfQXHrenDai+gyLARulZjZowCOj6fjT4pA==} engines: {node: '>=6.9.0'} @@ -3150,9 +3137,6 @@ packages: resolution: {integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==} engines: {node: '>= 0.4'} - es-module-lexer@2.0.0: - resolution: {integrity: sha512-5POEcUuZybH7IdmGsD8wlf0AI55wMecM9rVBTI/qEAy2c1kTOm3DjFYjrBdI2K3BaJjJYfYFeRtM0t9ssnRuxw==} - es-module-lexer@2.3.1: resolution: {integrity: sha512-shc1dbU90Yl/xq1QrC7QRtfcwURZuVRfPhZbDoldJ1cn1gzDvBaBWlv0eFolj5+0znnPJz5TXLxsN77X/12KTA==} @@ -3681,9 +3665,6 @@ packages: resolution: {integrity: sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew==} engines: {node: '>= 0.4'} - obug@2.1.1: - resolution: {integrity: sha512-uTqF9MuPraAQ+IsnPf366RG4cP9RtUi7MLO1N3KEc+wb0a6yKpeL0lmk2IB1jY5KHPAlTc6T/JRdC/YqxHNwkQ==} - obug@2.1.3: resolution: {integrity: sha512-9miFgM2OFba7hB+pRgvtV84pYTBaoTHohvmIgiRt6dRIzbwEOIaNaP+dIlGs2fNFoB0SeISs0Jz5WFVRid6Xyg==} engines: {node: '>=12.20.0'} @@ -3757,10 +3738,6 @@ packages: picocolors@1.1.1: resolution: {integrity: sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==} - picomatch@4.0.4: - resolution: {integrity: sha512-QP88BAKvMam/3NxH6vj2o21R6MjxZUAd6nlwAS/pnGvN9IVLocLHxGYIzFhg6fUQ+5th6P4dv4eW9jX3DSIj7A==} - engines: {node: '>=12'} - picomatch@4.0.5: resolution: {integrity: sha512-RvwwcruNjI1ncT5xRakeyS9Lf8lcItv34KD+aif+VH9kduAyfYBipGh12274xtenIPZ119/R9BdTBa8gAwSh0A==} engines: {node: '>=12'} @@ -3868,10 +3845,6 @@ packages: peerDependencies: react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 - qs@6.15.1: - resolution: {integrity: sha512-6YHEFRL9mfgcAvql/XhwTvf5jKcOiiupt2FiJxHkiX1z4j7WL8J/jRHYLluORvc1XxB5rV20KoeK00gVJamspg==} - engines: {node: '>=0.6'} - qs@6.15.3: resolution: {integrity: sha512-O9gl3zCl5h5blw1KGUzQKhA5oUXSl8rwUIM5o0S3nCXMliSvy5Dzx7/DJcI+SwgICv+IneSZwhBh1oSyEHA71A==} engines: {node: '>=0.6'} @@ -4123,10 +4096,6 @@ packages: resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} engines: {node: '>=8'} - side-channel-list@1.0.0: - resolution: {integrity: sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA==} - engines: {node: '>= 0.4'} - side-channel-list@1.0.1: resolution: {integrity: sha512-mjn/0bi/oUURjc5Xl7IaWi/OJJJumuoJFQJfDDyO46+hBWsfaVM65TBHq2eoZBhzl9EchxOijpkbRC8SVBQU0w==} engines: {node: '>= 0.4'} @@ -4139,10 +4108,6 @@ packages: resolution: {integrity: sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==} engines: {node: '>= 0.4'} - side-channel@1.1.0: - resolution: {integrity: sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==} - engines: {node: '>= 0.4'} - side-channel@1.1.1: resolution: {integrity: sha512-6x6dK6zJdpTzF4sQeNYxwtvBzf6Eg4GtlesS94HOvTudUeyK2WXAaIfmDgsyslYrRBeFIlsi54AYsFGUuhmvrQ==} engines: {node: '>= 0.4'} @@ -4838,12 +4803,8 @@ snapshots: transitivePeerDependencies: - supports-color - '@babel/helper-string-parser@7.27.1': {} - '@babel/helper-string-parser@7.29.7': {} - '@babel/helper-validator-identifier@7.28.5': {} - '@babel/helper-validator-identifier@7.29.7': {} '@babel/helper-validator-option@7.29.7': {} @@ -4897,8 +4858,6 @@ snapshots: transitivePeerDependencies: - supports-color - '@babel/runtime@7.29.2': {} - '@babel/runtime@7.29.7': {} '@babel/template@7.29.7': @@ -4919,11 +4878,6 @@ snapshots: transitivePeerDependencies: - supports-color - '@babel/types@7.29.0': - dependencies: - '@babel/helper-string-parser': 7.27.1 - '@babel/helper-validator-identifier': 7.28.5 - '@babel/types@7.29.7': dependencies: '@babel/helper-string-parser': 7.29.7 @@ -7267,7 +7221,7 @@ snapshots: babel-plugin-react-compiler@19.1.0-rc.3: dependencies: - '@babel/types': 7.29.0 + '@babel/types': 7.29.7 base64-js@1.5.1: {} @@ -7467,8 +7421,6 @@ snapshots: es-errors@1.3.0: {} - es-module-lexer@2.0.0: {} - es-module-lexer@2.3.1: {} es-object-atoms@1.1.1: @@ -7521,7 +7473,7 @@ snapshots: once: 1.4.0 parseurl: 1.3.3 proxy-addr: 2.0.7 - qs: 6.15.1 + qs: 6.15.3 range-parser: 1.2.1 router: 2.2.0 send: 1.2.1 @@ -7544,10 +7496,6 @@ snapshots: dependencies: walk-up-path: 4.0.0 - fdir@6.5.0(picomatch@4.0.4): - optionalDependencies: - picomatch: 4.0.4 - fdir@6.5.0(picomatch@4.0.5): optionalDependencies: picomatch: 4.0.5 @@ -7667,16 +7615,16 @@ snapshots: i18next-browser-languagedetector@8.2.1: dependencies: - '@babel/runtime': 7.29.2 + '@babel/runtime': 7.29.7 i18next-http-backend@4.0.1: {} i18next-locales-sync@2.1.1: dependencies: chalk: 4.1.2 - fdir: 6.5.0(picomatch@4.0.4) + fdir: 6.5.0(picomatch@4.0.5) fs-extra: 10.1.0 - picomatch: 4.0.4 + picomatch: 4.0.5 yargs: 17.7.2 i18next@26.3.6(typescript@7.0.2): @@ -7933,8 +7881,6 @@ snapshots: object-inspect@1.13.4: {} - obug@2.1.1: {} - obug@2.1.3: {} on-finished@2.3.0: @@ -8039,8 +7985,6 @@ snapshots: picocolors@1.1.1: {} - picomatch@4.0.4: {} - picomatch@4.0.5: {} pkg-types@2.3.1: @@ -8189,10 +8133,6 @@ snapshots: dependencies: react: 19.2.8 - qs@6.15.1: - dependencies: - side-channel: 1.1.0 - qs@6.15.3: dependencies: es-define-property: 1.0.1 @@ -8484,11 +8424,6 @@ snapshots: shebang-regex@3.0.0: {} - side-channel-list@1.0.0: - dependencies: - es-errors: 1.3.0 - object-inspect: 1.13.4 - side-channel-list@1.0.1: dependencies: es-errors: 1.3.0 @@ -8509,14 +8444,6 @@ snapshots: object-inspect: 1.13.4 side-channel-map: 1.0.1 - side-channel@1.1.0: - dependencies: - es-errors: 1.3.0 - object-inspect: 1.13.4 - side-channel-list: 1.0.0 - side-channel-map: 1.0.1 - side-channel-weakmap: 1.0.2 - side-channel@1.1.1: dependencies: es-errors: 1.3.0 @@ -8735,8 +8662,8 @@ snapshots: vite-node@6.0.0(@types/node@26.1.2)(jiti@2.7.0)(yaml@2.9.0): dependencies: cac: 7.0.0 - es-module-lexer: 2.0.0 - obug: 2.1.1 + es-module-lexer: 2.3.1 + obug: 2.1.3 pathe: 2.0.3 vite: 8.2.0(@types/node@26.1.2)(jiti@2.7.0)(yaml@2.9.0) transitivePeerDependencies: diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml index 2231b73e5..60483a16e 100644 --- a/pnpm-workspace.yaml +++ b/pnpm-workspace.yaml @@ -1,3 +1,7 @@ +packages: + - apps/* + - packages/* + - tooling/* allowBuilds: aws-sdk: false core-js: false diff --git a/svelte-big-bang.md b/svelte-big-bang.md index d141c9025..0324dd2a0 100644 --- a/svelte-big-bang.md +++ b/svelte-big-bang.md @@ -195,7 +195,7 @@ Bespoke mechanisms hand-built into the React app, each with a decided fate — s Pure refactor, zero behavior change, verified by the existing `pnpm run checks` + full e2e suite. 1. pnpm workspace; move the app → `apps/web-react` unchanged. -2. Extract `packages/tournament-engine` (and any other block whose boundary is already clean) via the `mono-split` codemod; `apps/web-react` consumes it from the workspace — proving the package is real before any Svelte exists. +2. Extract `packages/tournament-engine` (and any other block whose boundary is already clean, confirm proposed list with user) via the `mono-split` codemod; `apps/web-react` consumes it from the workspace — proving the package is real before any Svelte exists. 3. Land the manifest + codemod tooling skeleton. **Exit gate:** e2e suite green, production deploy from the new layout.