fuzzyworld

herd / commit

Deploy to apps.fuzzyworld.net with fuzzyworld-tools

5a542e960d3d30e30171dce5d5323b2d64838fad · Pavel Safronov · 2026-10-26 18:24:43 -0700 · parents 3ccad7d4edc1

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         |  4 ++--
 index.html        |  2 +-
 package-lock.json | 13 +++++++++++++
 package.json      |  8 +++++++-
 vite.config.ts    |  3 ++-
 5 files changed, 25 insertions(+), 5 deletions(-)

diff --git a/README.md b/README.md
index 7d0d280..104d4c0 100644
--- a/README.md
+++ b/README.md
@@ -2,7 +2,7 @@
 
 A browser game about herding sheep. Tap the field to move your border collie and guide the flock into the pen before time runs out.
 
-**[Play it →](https://pavelsafronov.gitlab.io/herd/)**
+**[Play it →](https://apps.fuzzyworld.net/herd/)**
 
 ---
 
@@ -41,7 +41,7 @@ No game engine — physics, flocking AI, and rendering are all hand-rolled.
 ### Setup
 
 ```bash
-git clone https://gitlab.com/PavelSafronov/herd.git
+git clone https://code.fuzzyworld.net/herd.git
 cd herd
 npm install
 ```
diff --git a/index.html b/index.html
index eb15a58..c8462f5 100644
--- a/index.html
+++ b/index.html
@@ -146,7 +146,7 @@
         <p class="tagline">Tap a level to begin</p>
         <div id="level-grid"></div>
         <footer id="level-select-footer">
-          <a href="https://gitlab.com/PavelSafronov/herd" target="_blank" rel="noopener">gitlab.com/PavelSafronov/herd</a>
+          <a href="https://code.fuzzyworld.net/herd/" target="_blank" rel="noopener">code.fuzzyworld.net/herd</a>
           <a href="https://www.flaticon.com/authors/icongeek26/outline?author_id=296&type=standard" target="_blank" rel="noopener" style="font-size:10px;opacity:0.6">Icon by Icongeek26 via Flaticon</a>
         </footer>
       </div>
diff --git a/package-lock.json b/package-lock.json
index 10db54e..913b2f6 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -8,6 +8,7 @@
       "name": "herd",
       "version": "0.1.0",
       "devDependencies": {
+        "fuzzyworld-tools": "git+https://code.fuzzyworld.net/fuzzyworld-tools.git#semver:^1.0.0",
         "typescript": "~6.0.2",
         "vite": "^8.0.12"
       }
@@ -393,6 +394,18 @@
         "node": "^8.16.0 || ^10.6.0 || >=11.0.0"
       }
     },
+    "node_modules/fuzzyworld-tools": {
+      "version": "1.0.1",
+      "resolved": "git+https://code.fuzzyworld.net/fuzzyworld-tools.git#45b1fe3805ad7ec86b864e4604b7ad89a0e25a78",
+      "dev": true,
+      "license": "MIT",
+      "bin": {
+        "fw": "bin/fw"
+      },
+      "engines": {
+        "node": ">=18"
+      }
+    },
     "node_modules/lightningcss": {
       "version": "1.32.0",
       "resolved": "https://registry.npmjs.org/lightningcss/-/lightningcss-1.32.0.tgz",
diff --git a/package.json b/package.json
index 70235cd..412d6c9 100644
--- a/package.json
+++ b/package.json
@@ -6,10 +6,16 @@
   "scripts": {
     "dev": "vite",
     "build": "tsc && vite build",
-    "preview": "vite preview"
+    "preview": "vite preview",
+    "deploy": "fw deploy"
   },
   "devDependencies": {
+    "fuzzyworld-tools": "git+https://code.fuzzyworld.net/fuzzyworld-tools.git#semver:^1.0.0",
     "typescript": "~6.0.2",
     "vite": "^8.0.12"
+  },
+  "fuzzyworld": {
+    "app": "herd",
+    "title": "Herd"
   }
 }
diff --git a/vite.config.ts b/vite.config.ts
index 2ef59dc..b3679ea 100644
--- a/vite.config.ts
+++ b/vite.config.ts
@@ -1,5 +1,6 @@
 import { defineConfig } from 'vite'
+import fuzzyworld from 'fuzzyworld-tools/vite'
 
 export default defineConfig({
-  base: '/herd/',
+  plugins: [fuzzyworld()],
 })