fuzzyworld

word-waltz / commit

Deploy to apps.fuzzyworld.net with fuzzyworld-tools

5a9bfdda07518421c57352532a84a714321a34ad · Pavel Safronov · 2026-10-26 18:37:39 -0700 · parents a1d37b6edc98

Deploy to apps.fuzzyworld.net with fuzzyworld-tools

Adds the fuzzyworld package.json section, a deploy script (fw deploy) and the fuzzyworld-tools dependency, and points gitlab.io / gitlab.com links at apps.fuzzyworld.net and code.fuzzyworld.net.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
 README.md         |  2 +-
 cspell.json       |  3 ++-
 package-lock.json | 13 +++++++++++++
 package.json      | 11 +++++++++--
 src/index.html    |  4 ++--
 vite.config.ts    |  6 +++---
 6 files changed, 30 insertions(+), 9 deletions(-)

diff --git a/README.md b/README.md
index 8e6bd29..299de71 100644
--- a/README.md
+++ b/README.md
@@ -2,7 +2,7 @@
 
 A two-player, asynchronous Wordle duel. You challenge your opponent with a secret 5-letter word; they play Wordle against it and score based on how many guesses it takes. Then the tables turn — back and forth, indefinitely, keeping a running tally.
 
-[Play now!](https://pavelsafronov.gitlab.io/word-waltz/)
+[Play now!](https://apps.fuzzyworld.net/word-waltz/)
 
 ## How it works
 
diff --git a/cspell.json b/cspell.json
index a803a48..05f0b60 100644
--- a/cspell.json
+++ b/cspell.json
@@ -26,7 +26,8 @@
         "vapid",
         "VAPID",
         "webpush",
-        "Wordle"
+        "Wordle",
+        "fuzzyworld"
     ],
     "ignorePaths": [
         "node_modules",
diff --git a/package-lock.json b/package-lock.json
index 3768f09..35ae2ce 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -15,6 +15,7 @@
         "@types/qrcode": "^1.5.6",
         "cspell": "^9.7.0",
         "firebase-admin": "^12.1.0",
+        "fuzzyworld-tools": "git+https://code.fuzzyworld.net/fuzzyworld-tools.git#semver:^1.0.0",
         "sharp": "^0.34.5",
         "tsx": "^4.21.0",
         "typescript": "^6.0.2",
@@ -3800,6 +3801,18 @@
       "license": "MIT",
       "optional": true
     },
+    "node_modules/fuzzyworld-tools": {
+      "version": "1.0.2",
+      "resolved": "git+https://code.fuzzyworld.net/fuzzyworld-tools.git#de3a84832ad148e50d1d4d94f0cef3ad395a1575",
+      "dev": true,
+      "license": "MIT",
+      "bin": {
+        "fw": "bin/fw"
+      },
+      "engines": {
+        "node": ">=18"
+      }
+    },
     "node_modules/gaxios": {
       "version": "6.7.1",
       "resolved": "https://registry.npmjs.org/gaxios/-/gaxios-6.7.1.tgz",
diff --git a/package.json b/package.json
index e49eada..e487176 100644
--- a/package.json
+++ b/package.json
@@ -14,7 +14,8 @@
     "typecheck": "tsc --noEmit",
     "spell": "cspell \"**\" --no-progress",
     "setup-push": "node scripts/setup-push.js",
-    "deploy-functions": "cd functions && npm install && cd .. && npx --package=firebase-tools firebase --project word-waltz deploy --only functions"
+    "deploy-functions": "cd functions && npm install && cd .. && npx --package=firebase-tools firebase --project word-waltz deploy --only functions",
+    "deploy": "fw deploy"
   },
   "dependencies": {
     "firebase": "^10.12.0",
@@ -24,10 +25,16 @@
     "@types/qrcode": "^1.5.6",
     "cspell": "^9.7.0",
     "firebase-admin": "^12.1.0",
+    "fuzzyworld-tools": "git+https://code.fuzzyworld.net/fuzzyworld-tools.git#semver:^1.0.0",
     "sharp": "^0.34.5",
     "tsx": "^4.21.0",
     "typescript": "^6.0.2",
     "vite": "^5.2.0",
     "word-list": "^4.1.0"
+  },
+  "fuzzyworld": {
+    "app": "word-waltz",
+    "title": "Word Waltz",
+    "checks": []
   }
-}
\ No newline at end of file
+}
diff --git a/src/index.html b/src/index.html
index 807df7a..2a2bb9c 100644
--- a/src/index.html
+++ b/src/index.html
@@ -25,8 +25,8 @@
                 title="Enable notifications"></button>
             <a href="https://www.flaticon.com/search?author_id=296&style_id=1001&type=standard" target="_blank"
                 rel="noopener" title="Icons by Freepik on Flaticon">Icons</a>
-            <a href="https://gitlab.com/PavelSafronov/word-waltz" target="_blank" rel="noopener"
-                title="Source code on GitLab">GitLab</a>
+            <a href="https://code.fuzzyworld.net/word-waltz/" target="_blank" rel="noopener"
+                title="Source code">Source</a>
         </nav>
     </header>
     <div id="app"></div>
diff --git a/vite.config.ts b/vite.config.ts
index db2e9bf..faff1fa 100644
--- a/vite.config.ts
+++ b/vite.config.ts
@@ -1,11 +1,11 @@
 import { defineConfig } from 'vite';
+import fuzzyworld from 'fuzzyworld-tools/vite';
 
 export default defineConfig({
+  // fuzzyworld() sets base to /word-waltz/ for builds; the dev server keeps '/'.
+  plugins: [fuzzyworld()],
   // src/index.html is the entry point; Vite resolves assets relative to it
   root: 'src',
-  // GitLab project Pages are served at /<project-name>/.
-  // Use '/' locally (dev server) and the project sub-path in CI.
-  base: process.env.CI ? '/word-waltz/' : '/',
   build: {
     outDir: '../dist',
     emptyOutDir: true,