GitHub - oug-t/zsweep: A minimalist, keyboard-driven Minesweeper game played with Vim motions. Built with Svelte 5 (Runes) & TypeScript.

3 min read Original article ↗

Contributors Forks Stargazers Issues MIT License Hacker News


Table of Contents
  1. About The Project
  2. Getting Started
  3. Features
  4. Roadmap
  5. Contributing
  6. License
  7. Contact

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.

(back to top)

Built With

  • Svelte
  • TailwindCSS
  • Supabase
  • TypeScript

(back to top)

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

  1. Clone the repo
git clone https://github.com/oug-t/zsweep
  1. Install packages
  1. Setup Environment Rename .env.example to .env.
# If you don't have Supabase keys, the game will still run, but scores won't save.
  1. Run the server

(back to top)

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.

(back to top)

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!

(back to top)

License

Distributed under the AGPLv3 License. See LICENSE for more information.

(back to top)

Contact

Tommy Guo - tommyguo024@outlook.com

Project Link: https://github.com/oug-t/zsweep

(back to top)

Acknowledgments

  • Monkeytype for the visual inspiration and philosophy.

  • Supabase for making the backend effortless.

  • Lucide Icons for the beautiful SVG set.

(back to top)

Star History

Star History Chart

(back to top)