* Bumped Next.js to 15.
* Bumped React to 19.
* Bumped GraphQL to 16.
* Bumped styled-components to 6.
* Bumped Radix components to latest version.
* Migrated Framer Motion to new package.
* Migrated react-query to new package.
* Lots of TypeScript fixes.
* Removed FontAwesome Pro icons.
* Started fading out SWR.
* Dev Server now uses Turbopack.
* Reformated all files with Prettier.
* Updated GraphQL codegen.
* Updated ESLint (including rule config).
* Updated TypeScript.
* Eliminated most ESLint warnings (especially usage of the `any` type).
* Rewrote parts of the API resolver logic to be more type-safe.
* Added IP forwarding for API requests.
* Added watch list actions to theme menu.
* Restructured theme and video menus.
* Changed some icons.
* Improved frontend performance of the playlist page.
* Added "Share" and "Add to Playlist" buttons to video player overlay.
* Added options to sort playlists in reverse order.
* Added handle for dragging playlist items.
* Added consistent import sorting (with ESLint).
* Removed barrel files.
* Added volume control to video player.
* Added playlist edit dialog.
* Added slider component.
* Optimized video player for mobile devices.
* Double-clicking the mini player now maximizes the video player.
* Fixed back-to-top button overlapping with video player bar.
* Fixed focus styles appearing on click.
* Fixed multi cover image showing the same image multiple times.
* Fixed progress bar showing 0:60 instead of 1:00.
* Fixed right click on video toggling pause/play.
* Fixed scroll bar being visible while in full screen mode.
* Added theme entry menu to video player.
* Added overlay to video player.
* Improved video player styles for mobile.
* Fixed button focus ring showing on click.
* Fixed z-index issue with multi cover image.
* Fixed global search.
* Fixed various watch list issues.
* Replaced all Reach UI components with Radix UI.
* Improved UX of playlist "Play All".
* Highlight current playing watch list item.
* Added support for hash ids.
* Added menu options for "Play Next" and "Add to Watch List".
* Made "Play Previous" button functional.
* Player buttons now have hover/focus feedback.
* Removed default controls from video element.
* Clicking the video element now toggles the playing state.
* Made the video element bigger, especially on high-res displays.
* Added "Other Entries" to new video player.
* Added support for browser media metadata to new video player.
* Switching between audio and video mode now retains the playback position.
* Removed GraphQL endpoint.
* Disabled custom scroll bar styling for touch devices.
* Redesigned the navigation.
* Removed the mobile navigation toggle.
* Made the background transparent when page is not scrolled.
* Made buttons collapse to icons on mobile.
* Made the logo smaller.
* Added track count to playlist summary card.
* Fixed playlist page only displaying 15 tracks.
* Added option to remember login.
* Added "Most Viewed" section to home page.
* Added playlist page.
* Added playlist summary card.
* Added video summary card.
* Added playlist and login/register sections to profile page.
* Changed profile page to SSR mode.
* Added playlist actions to theme menu.
* Removed local playlist actions from theme menu and video page.
* Added dialog component.
* Added dialogs for playlist actions (add playlist, add track to playlist, remove track from playlist).
* Added login dialog.
* Added register dialog.
* Added toasts for playlist actions.
* Added busy component to show in-progress state.
* Added login gate component to protect section from unauthorized access.
* Added focus style to button and listbox.
* Improved hover style for primary button.
* Added warning button variant.
* Added switch (checkbox) component.
* Split transparency page into multiple pages (to allow for links to lead to specific months).
* Fixed table spacing on Markdown pages.
* Removed suffix from embed titles.
* Experimental: Added new implementation of listbox based on Radix.
* Replaced announcement toast with MDX component on the home page.
* Added special anime award announcement button.
* Fixed size of corner icons.
* Removed design page.
* Added GraphQL endpoint.
* Experimental: Recently added themes are now fetched via the GraphQL endpoint.
* Optimized build time of bracket pages.
* Fixed circular dependency.
* Fixed some type warnings.
* Framer Motion is now lazy loaded.
* FontAwesome is now a custom component removing all the bloat we don't need.
* Imports and exports for types now use the proper syntax to get excluded by bundlers.
* Added bracket chart.
* Added border radius to all sides of cards.
* Added skeletons to home page.
* Added support for system color theme.
* Added code-splitting for GraphQL.
* Added config constants.
* Added warning banner on staging.
* Added URL caching to API resolver (only for non-page request for now).
* Made featured theme load by default.
* Changed static path fetching to only fetch paths if not on staging (except for bracket pages).
* Changed default color theme to system.
* Moved color theme toggle from navigation to profile page.
* Replaced sketchy local storage implementation with external package.
* Fixed wrong fallback for featured theme on devices which don't support our codecs.
* Fixed wrong links in footer.
* Fixed code-splitting of Prism package.
* Fixed "/" character not working in search input.
* Fixed glitching multi cover image on playlist page.
* Updated README.md.
* Added theme table to theme summary card.
* Added hotkey to go directly to the search.
* Added artist table to theme summary cards in search context.
* Added global error boundary.
* Added alternative labels for "Add to Playlist" button on mobile.
* Improved performance of filtering on anime pages.
* Improved performance of the mobile navigation.
* Improved performance and stability of search.
* Extracted theme table into its own component.
* Disabled manual re-ordering of local playlist entries when sorting.
* Fixed duplicate toasts.
* Fixed issue with z-index on the video player.
* Fixed sorting of artists on multiple pages.
* Fixed multiple issues when sorting the local playlist.
* Fixed several console warnings.
* Updated Next.js to 12.1.6.
* Improved stability and performance of the search input.
* Changed display of character voices.
* Changed display of title line on video pages.
* Limited number of artists displayed in song titles.
* Fixed video player growing higher than the viewport.
* Added number of API requests used to build a page to dev info.
* Changed default order of themes on artist pages to be by anime.
* Added support for the "as" attribute of external resources.
* Added warning notice to local playlist page.
* Removed use-debounce as we now use the debounce function from lodash.
- All data is now fetched from the API instead of the database.
- Added staging mode.
- Fixed cover images still showing old images when switching pages.
- Fixed first letter filter not working.
* Fixed "FAQ" and "Donate" links in footer.
* Fixed bottom margin of code blocks.
* Invalid language for syntax highlighting now yields a warning instead of crashing the page build.
* ThemeSummaryCard now includes the theme group (if available).
* ThemeDetailCard no longer includes the theme group in the slug.
* FeaturedTheme now falls back to cover if video fails to load.
* Added new multi cover image component.
* Added more generic input component.
* Added back-end code for MAL and AniList integration.
* Added "Also Used As" section to video page.
* Added "Related Themes" section to video page.
* Re-organized video page.
* Re-implemented sort by filter component.
* Fixed bug where list boxes crashed the site on mobile.
* Fixed bug where switcher links would not work.
* Fixed styled-components SSR in development.
* Started incremental implementation of GraphQL fragments.
* Removed use-media as a dependency.
* Use CSS Variables and styled-components composition instead.
* Added Solid component for automatic recognition if a component is on a solid surface.
* Rewrote Button component.
* Extracted animation keyframes for repeated use.
* Rewrote Listbox and Menu (both are now based on ReachUI).
* Listbox and Menu now have an improved API based on compound components.
* Replaced hardcoded breakpoints with constants.
* Extracted featured theme into its own component.
* Added setting to turn featured theme preview off or in cover-only mode.
* Extracted MultiCoverImage into its own component to reduce repeated logic.
* Rewrote Switcher with better API and fixed invalid motion transitions.
* Added ToastHub which can hold multiple toasts at the same time.
* Added PlaylistAddToast which notifies that a theme was added to the local playlist.
* HeightTransition now longer clips shadows.
* Improved the overlay of the background video player.
* The list of years is now generated statically.
* Fixed motion transitions on /r/anime awards page.
* Settings were moved from the /dev to the /profile page.
* Updated /design page.
* Rearranged buttons on the home page (mobile only).
* Fixed spacing of buttons on the home page.
* Removed headlessui as a dependency.
* Upgraded Next.js to version 12.1.0.
* Added hover text to summary card titles.
* Added event overview page.
* Added "Events" and "My Profile" buttons to home page.
* Moved event pages to new namespace.
* "My Profile" button in navigation now collapses to icon on smaller viewports.
* Sidebar container now switches to one column layout at a wider viewport.
* Fixed switcher animation.
* Replaced lodash with lodash-es for smaller bundle size.
* Bumped some dependencies.
* Added headless-ui as dependency to allow for easier integration of context menus.
* Added generic context menu component.
* Added theme context menus to theme summary and detail cards.
* Added missing pages to /dev and adjusted "NEW" tags.
* Improved stability of local playlist and watch history.
* Improved alt text and titles for cover images.
* Improved summary card images by having a fallback image on load errors.
* Fixed sidebar links not working on anime page.
* Fixed current season always being the latest instead of the actual current one (it also no longer requires an API request).
* Fixed some links needing a double tab to work on iOS devices.
* Fixed maximizing mini player always navigating to base theme instead of correct entry.
* Fixed links on index pages taking up the full width.
* Updated Framer Motion to version 5 release.
* Removed PWA functionality.
* Removed LazyMotion, because we now need the full Framer Motion kit.
* Removed global transition CSS declarations.
* Rewrote data layer to work on-demand.
* Added several favicon formats.
* Added image for SEO page previews.
* Disabled GitHub pages as it no longer works.
* Several other adjustments.
* All buttons now have "aria-label" and title attributes.
* Errors while searching now get caught and displayed.
* External links now have "rel=noopener" set.
* Big images now have small images as fallback to reduce LCP time.
* Font is now preloaded and optional to reduce CLS.
* Removed moment.js from dependencies to reduce bundle size.
* Added series and studio index links to the search switcher.
* Added placeholder image to series and studio summary card.
* Random themes can no longer contain spoilers.
* Rewrote listbox with Reach UI to fix various issues (it's also more accessible now).
* Fixed issues with horizontal scroll.
* Fixed a bug where links on video pages were sometimes invalid.
* Technical: Use react-query for fetch requests and removed SWR.
* Technical: Splitted search page in seperate rendered pages.
* This means no more .htaccess workarounds are necessary.
* Rewrote API source plugin to prepare for incremental builds.
* Changed the font to Nunito.
* Improved display of artist names.
* Fixed cover images not taking up the available space leading to too much whitespace.
* Fixed several margins.
* Added various page links to the home page.
* Added theme color to support window theming in Chrome for Android.
* Simplified the background player for mobile devices.
* Submitting a quick search on mobile now closes the navigation overlay.
* Removed nested anchors.
* Removed device icons from home page since all pages are now compatible with all devices.
* Developer Experience:
* Started using styled-system to keep styling less verbose.
* Resolved various console errors and warnings.
* Added gatsby-plugin-extract-schema.
* Added custom ESLint configuration
* Made text components inherit color if not otherwise specified
* Also small changes to search result card descriptions