Play Minesweeper Online for Free https://mnswpr.com
Find a file
2026-04-03 03:06:51 +02:00
.github/workflows chore: update release gh action 2026-04-03 03:06:51 +02:00
.husky chore: use eslint for linting & formatting 2026-04-02 14:41:52 +02:00
.vscode chore: use eslint for linting & formatting 2026-04-02 14:41:52 +02:00
public refactore: use public dir for assets 2026-04-02 12:12:04 +02:00
scripts chore: add more stylistic rules & run formatter 2026-04-02 19:39:18 +02:00
src refactor: move mnswpr.css import into mnswpr.js 2026-04-03 02:46:52 +02:00
.gitignore initial commit 2019-12-08 16:36:29 +08:00
.nvmrc chore: update release gh action 2026-04-03 03:03:08 +02:00
eslint.config.js refactor: move mnswpr.css import into mnswpr.js 2026-04-03 02:46:52 +02:00
index.html refactor: move mnswpr.css import into mnswpr.js 2026-04-03 02:46:52 +02:00
instructions initial commit 2019-12-08 16:36:29 +08:00
LICENSE Create LICENSE 2023-03-10 09:42:58 +01:00
main.css refactor: split page & game css 2026-04-02 16:46:07 +02:00
package.json chore: release v0.4.19 2026-04-03 03:03:23 +02:00
pnpm-lock.yaml feat: initial npm package @ayo-run/mnswpr 2026-04-03 02:02:50 +02:00
pnpm-workspace.yaml feat: initial npm package @ayo-run/mnswpr 2026-04-03 02:02:50 +02:00
README.md chore: update readme w/ dev server info 2026-04-02 22:13:29 +02:00
vite.config.js feat: initial npm package @ayo-run/mnswpr 2026-04-03 02:02:50 +02:00

Play Minesweeper Online for Free

Netlify Status

Play it here: mnswpr.com. This is the classic game Minesweeper built with vanilla web technologies (i.e., no framework dependency).

Technology Stack:

  • HTML, JS, and CSS
  • Firebase for leader board store
  • Netlify for hosting

Development tooling:

Project motivation

One day, while working in my home office, I heard loud and fast mouse clicks coming from our bedroom. It's my wife, playing her favorite game (Minesweeper) on a crappy website full of advertisements.

I can't allow this, it's a security issue. 🤣

But it is also an opportunity.

I wanted to give her the same game, with a similar leader board she can dominate. And this is also a chance for me to dig deeper into vanilla JS.

Can I make a page with complex interactions (more on this later) without any library dependency?

What I have learned:

  1. JS is awesome
  2. We don't always necessarily need JS frameworks (or TS)
  3. Even subtle UI changes can improve user gameplay experience
  4. There's more ways to break you're app than you are initially aware of
  5. Competition motivates users to use your app more
  6. Hash in bundled filenames help issues in browser caching (when shipping versions fast)

Development

To start development, you need node v16 (the dev server doesn't work on v18 yet). Once you know you have this, you can do the following:

  1. Install dependencies: npm i
  2. Start the dev server: npm run dev

Live Demo

👉 The live site is here: Minesweeper