Table of Contents
About The Project
zsweep is a modern reimagining of Minesweeper, inspired by the "Monkeytype" aesthetic. It strips away the clutter of traditional Windows-95 clones to focus purely on speed, accuracy, and flow state.
zsweep_demo.mp4
Most Minesweeper clones are old-fashioned, click-heavy, and lack detailed stats. zsweep fixes this by providing:
- Keyboard-first navigation (Tab to restart, Esc for commands).
- Advanced metrics like 3BV/s (Bechtel's Board Benchmark per second).
- A "Time Mode" that challenges you to solve as many grids as possible in 15/30/60 seconds.
Whether you are a competitive sweeper or just looking for a zen break, zsweep is designed to feel "just right.
Built With
Getting Started
To get a local copy up and running for development or contribution, follow these steps.
Prerequisites
npm
npm install npm@latest -g
Installation
- Clone the repo
git clone https://github.com/oug-t/zsweep
- Install packages
- Setup Environment Rename .env.example to .env.
# If you don't have Supabase keys, the game will still run, but scores won't save.- Run the server
Features
🎮 Game Modes
-
Time Mode: Clear as many grids as possible within a set time limit (15s, 30s, 60s).
-
Standard Mode: Classic Minesweeper pacing and rules (9x9, 16x16, 30x16).
📊 Stats & Progression
-
3BV/s Tracking: Measures the theoretical difficulty of a board divided by time.
-
Heatmap: Visualizes your activity over the last year (GitHub style).
-
Estimated Mines Swept: Tracks your total career "damage."
🎨 Theming
-
Built-in Command Palette (Cmd+K or Esc) to switch themes instantly.
-
"Explosion" particle effects on game over.
Contribution
-
We are actively looking for contributors!
-
Contributions are what make the open source community such an amazing place to learn, inspire, and create. Whether you are fixing a typo, optimizing the 3BV algorithm, or adding a new theme, your help is greatly appreciated.
-
🏆 Contributor Perk: All contributors who have a PR merged will be listed on the "About" page as a gratidude.
-
If you have a suggestion that would make this better:
Fork the Project
-
Create your Feature Branch (git checkout -b feature/AmazingFeature)
-
Commit your Changes (git commit -m 'Add some AmazingFeature')
-
Push to the Branch (git push origin feature/AmazingFeature)
-
Open a Pull Request
-
Good First Issues: Check out the Issues tab for tickets labeled good first issue if you are new to the codebase!
License
Distributed under the AGPLv3 License.
See LICENSE for more information.
Contact
Tommy Guo - tommyguo024@outlook.com
Project Link: https://github.com/oug-t/zsweep
Acknowledgments
-
Monkeytype for the visual inspiration and philosophy.
-
Supabase for making the backend effortless.
-
Lucide Icons for the beautiful SVG set.