aboutsummaryrefslogtreecommitdiffstats
path: root/build.js
diff options
context:
space:
mode:
authorAdam Soltys <[email protected]>2026-08-03 07:42:24 -0700
committerAdam Soltys <[email protected]>2026-08-03 07:42:24 -0700
commit161adb250e4273d0bcaa160516bc950f5f46310f (patch)
treea845b83adb75e33847f709c0d7d3e5ec3ee2ca95 /build.js
parent848958e450a5b5aac95a2fcd981fd229da1d6190 (diff)
downloadcoinosv3-161adb250e4273d0bcaa160516bc950f5f46310f.tar.gz
coinosv3-161adb250e4273d0bcaa160516bc950f5f46310f.zip
Self-host the punks; skipping avatar still publishes your punk
coinos.io serves 502 for a third of the punk set (both the numbered and hash endpoints), which is why a default avatar could come up blank. The 64 webps now ship with the app (53 salvaged, 11 gaps filled with donors) and every reference is same-origin. Skipping the avatar step publishes the deterministic punk as the kind-0 picture — your face is the same on every nostr client. Success screen: checkmark now sits below the title, bigger. Co-Authored-By: Claude Fable 5 <[email protected]> Claude-Session: https://claude.ai/code/session_01Wvj4aoeMZwA7VUGdJP9Swi
Diffstat (limited to 'build.js')
-rw-r--r--build.js3
1 files changed, 3 insertions, 0 deletions
diff --git a/build.js b/build.js
index 5efd3eb..3e42930 100644
--- a/build.js
+++ b/build.js
@@ -263,6 +263,9 @@ if (import.meta.main) {
.replace('{{NWC_WAKE_FALLBACK}}', nwcSw ? '' : SW_WAKE_ONLY);
await Bun.write('dist/sw.js', nwcSw ? swBody + '\n' + await buildSwNwc() : swBody);
for (const f of STATIC) await Bun.write('dist/' + f, Bun.file('static/' + f));
+ // default avatars, self-hosted since coinos.io's copies are half-broken
+ const { readdirSync } = await import('node:fs');
+ for (const f of readdirSync('static/punks')) await Bun.write('dist/punks/' + f, Bun.file('static/punks/' + f));
const kb = (Buffer.byteLength(html) / 1024).toFixed(0);
console.log(`✓ dist/index.html written (${kb} KB) — open it offline, no server needed`);