awesome-repositories.com
Blog
MCP
awesome-repositories.com

Discover the best open-source repositories with AI-powered search.

ExploreCurated searchesOpen-source alternativesSelf-hosted softwareBlogSitemap
ProjectMCP serverAboutHow we rankPress
LegalPrivacyTerms
© 2026 Bringes Technology SRL·VAT RO45896025·hello@awesome-repositories.com
chvin avatar

chvin/react-tetris

0
View on GitHub↗
8,717 stars·2,277 forks·JavaScript·9 viewschvin.github.io/react-tetris/?lan=en↗

React Tetris

This is a browser-based Tetris game built with React, using Redux and Immutable.js to manage all game state in a single immutable store. The application renders the game board, next-block preview, and score display as React components, with state transitions that are predictable and support time-travel debugging through the Redux DevTools Extension.

The game distinguishes itself through several integrated capabilities. It automatically adapts between keyboard and touch controls based on the user's input device, with configurable repeat rates for responsive gameplay. A persistence layer serialises the full Redux state tree to localStorage, restoring progress on page reload for session continuity. The game also pauses its loop when the browser tab loses focus and resumes on regaining visibility, and plays precise audio cues using the Web Audio API from a single MP3 file.

Additional capabilities include a next-block preview, score and level tracking, and the ability to toggle sound and pause at any time. The interface language can be switched by reading a URL query parameter, with translations defined in a bundled JSON file.

Features

  • Puzzle Games - Plays the classic block-stacking puzzle in a web browser with keyboard and touch controls, scoring, and increasing difficulty levels.
  • Game Implementations - A classic block-stacking puzzle game implemented as a single-page React application with keyboard and touch support.
  • Immutable Data Structures - Uses Immutable.js persistent data structures to prevent accidental mutation and simplify state comparison.
  • Game State Persistence - Saves and restores the full game state across browser sessions using localStorage to prevent progress loss.
  • LocalStorage Persistence - Serialises the full Redux state tree to localStorage, restoring progress on page reload for session continuity.
  • Game Keyboard Controls - Uses keyboard keys to rotate, move, drop, and reset blocks during gameplay.
  • Falling Block Puzzles - Controls a falling block puzzle game where players rotate and position shapes to complete horizontal lines.
  • Role-Play Gameplay Mechanics - Renders the classic block-stacking puzzle with keyboard and touch controls, scoring, and increasing speed levels.
  • Save Game Initialization - Saves the full game state to localStorage so progress is restored after a page refresh, crash, or phone call.
  • Score Tracking Systems - Tracks and displays current score, cleared lines, and level progression during gameplay.
  • Predictable State Containers - Manages all game state in a single immutable Redux store for predictable state transitions and time-travel debugging.
  • Game State Stores - Manages all game state in a single immutable Redux store with Immutable.js for predictable transitions.
  • Cross-Device Input Handlers - Switches between keyboard and touch controls automatically based on the user's input device for seamless gameplay.
  • Keyboard and Touch Adapters - Automatically switches between keyboard and touch controls based on device detection with configurable repeat rates.
  • Component-Based Rendering - Renders the game board, next-block preview, and score as React components driven by Redux state.
  • Device-Aware Input Switching - Automatically switches between keyboard and touch controls based on the user's input device.
  • Game Audio and Pause Toggles - Provides in-game buttons to mute audio and pause or resume the game at any time.
  • Browser Local Storage Saves - Saves and restores full game state to localStorage so progress persists across page reloads.
  • Web Game Audio Engines - Plays precise audio cues using the Web Audio API from a single MP3 file during gameplay.
  • Web Audio API Sound Engines - Plays precise, high-frequency audio cues using the Web Audio API for real-time game feedback.
  • Sound Effects Playback - Uses the Web Audio API to play precise, rapid audio cues from a single MP3 file during gameplay.
  • Redux Store Inspection - Exposes the entire game state to the Redux DevTools Extension for debugging and inspection.
  • Game Block Previews - Shows the upcoming block in a dedicated area so the player can plan placements ahead of time.
  • Automatic Device Detection - Switches between keyboard input on desktop and touch input on mobile automatically.

Star history

Star history chart for chvin/react-tetrisStar history chart for chvin/react-tetris

How this analysis was created: This summary and feature list were written by an AI model that read the project's README and public documentation pages. Each feature links to the documentation it came from; stars, license and language come straight from the GitHub API. The model does not read the source code, and the analysis is refreshed when the project is re-analysed. Learn more on our About page.

AI search

Explore more awesome repositories

Describe what you need in plain English — the AI ranks thousands of curated open-source projects by relevance.

Start searching with AI

Open-source alternatives to React Tetris

Similar open-source projects, ranked by how many features they share with React Tetris.
  • jynew/jynewjynew avatar

    jynew/jynew

    8,815View on GitHub↗

    jynew is a 3D RPG game engine and development framework designed for building three-dimensional role playing games. It provides a comprehensive suite of tools for scene editing, game logic scripting, and the creation of 3D environments. The project features a specialized 3D asset management pipeline for importing and aligning models and animations, including specific tools for weapon attachment and rendering. It includes a dedicated combat system editor for defining battle encounters, skill effects, and combat grids with real-time synchronization. Additionally, it provides a game modding fram

    C#game-developmentjinyongunity
    View on GitHub↗8,815
  • serversideup/amplitudejsserversideup avatar

    serversideup/amplitudejs

    4,313View on GitHub↗

    AmplitudeJS is a JavaScript library and framework for building custom HTML5 audio players. It serves as a client-side playlist manager and media controller that bridges the gap between HTML elements and the Web Audio API, allowing developers to create branded media interfaces without relying on default browser styles. The project is distinguished by its use of CSS-class-based DOM binding and data-attribute state mapping, which links HTML elements directly to playback controls and track metadata. It includes a dedicated visualization system that uses the Web Audio API to render real-time SVG w

    JavaScriptcsshtmlhtml5
    View on GitHub↗4,313
  • kotlin/kotlinx.collections.immutableKotlin avatar

    Kotlin/kotlinx.collections.immutable

    1,409View on GitHub↗

    Kotlinx.collections.immutable is a persistent data structure library for Kotlin that provides immutable lists, sets, and maps for state management. It enforces strict immutability by exposing read-only interfaces that block unauthorized modifications at compile time, while persistent structural sharing allows modified copies to efficiently reuse underlying memory storage with the original collection. Multiple insertions and removals can be batched through temporary mutable builder interfaces to instantly produce new persistent collections without intermediate allocations. Additionally, stand

    Kotlincollectionsimmutableimmutable-collections
    View on GitHub↗1,409
  • teamsirenix/odin-serializerTeamSirenix avatar

    TeamSirenix/odin-serializer

    1,884View on GitHub↗

    Odin Serializer is a framework designed for the Unity game engine to convert complex object graphs into persistent binary or JSON formats. It provides a system for saving and loading intricate class structures, including nested generics and polymorphic types, while maintaining the structural integrity of the data. The framework distinguishes itself through its support for ahead-of-time compilation, generating necessary type metadata during the build process to ensure functionality on platforms that restrict runtime reflection. It integrates directly with the Unity engine lifecycle, allowing f

    C#
    View on GitHub↗1,884
See all 30 alternatives to React Tetris→

Frequently asked questions

What does chvin/react-tetris do?

This is a browser-based Tetris game built with React, using Redux and Immutable.js to manage all game state in a single immutable store. The application renders the game board, next-block preview, and score display as React components, with state transitions that are predictable and support time-travel debugging through the Redux DevTools Extension.

What are the main features of chvin/react-tetris?

The main features of chvin/react-tetris are: Puzzle Games, Game Implementations, Immutable Data Structures, Game State Persistence, LocalStorage Persistence, Game Keyboard Controls, Falling Block Puzzles, Role-Play Gameplay Mechanics.

What are some open-source alternatives to chvin/react-tetris?

Open-source alternatives to chvin/react-tetris include: jynew/jynew — jynew is a 3D RPG game engine and development framework designed for building three-dimensional role playing games. It… serversideup/amplitudejs — AmplitudeJS is a JavaScript library and framework for building custom HTML5 audio players. It serves as a client-side… teamsirenix/odin-serializer — Odin Serializer is a framework designed for the Unity game engine to convert complex object graphs into persistent… kotlin/kotlinx.collections.immutable — Kotlinx.collections.immutable is a persistent data structure library for Kotlin that provides immutable lists, sets,… alibaba/butterfly — Butterfly is an interactive graph visualization library and SVG-based diagramming engine used to build node-based… cocos2d/cocos2d-objc — cocos2d-objc is an Objective-C 2D game engine designed for developing interactive games and applications. It serves as…