diff --git a/GOTCHAS.md b/GOTCHAS.md index 50db1cf..4c01b6a 100644 --- a/GOTCHAS.md +++ b/GOTCHAS.md @@ -1,6 +1,6 @@ # site/ — gotchas -Hand-authored static tree for **silentmode.st**. No build step. Served by nginx +Hand-authored static tree for **silentmode.st**. No build step. Served by Angie (nginx fork) from `/opt/silent-mode/site/` on the VPS (ssh alias `silentmode`), and mirrored to Sia (`s3://bns/silentmode/` → `silentmode.bch`) by the `silentmode-sia-sync.timer` on the VPS every 5 minutes. Anything that lands in @@ -38,7 +38,7 @@ it is skipped the 48 GB disk climbs ~245 MB per release. ## Bump `shared.css?v=` whenever shared.css changes -nginx sends no `Cache-Control` for `.css`, so browsers cache `shared.css` +Angie sends no `Cache-Control` for `.css`, so browsers cache `shared.css` heuristically (10% of its age since `Last-Modified`; it sat unchanged for weeks, so returning visitors kept the old copy for days). When the logo rule was added on 2026-09-07 every page except Hephaestus (inline nav CSS) showed @@ -49,7 +49,7 @@ each time the file changes. Same applies to the Sia mirror via the gateway. ## URLs have no trailing slash; links are site-root-relative Since 2026-09-20 the canonical URL of every silentmode.st page is `/tools`, -`/sirius`, `/choose/free` — nginx 301s `/tools/` → `/tools` and serves +`/sirius`, `/choose/free` — Angie 301s `/tools/` → `/tools` and serves `/tools/index.html` from it. Consequences for authors: - A page at `/x/index.html` is viewed at `/x`, so the browser's directory is `/`. @@ -66,8 +66,8 @@ Since 2026-09-20 the canonical URL of every silentmode.st page is `/tools`, **Sub-sites deployed from other repos keep their trailing-slash URLs** because their asset paths are relative: `deviant/`, `sirius-x/`, `theseus-x/`, -`hephaestus.x/`, `fly.x/`, `code/`. The list lives in the nginx vhost -(`location ~ ^/(deviant|sirius-x|theseus-x|…)`) and in `serve-site.mjs`; add +`hephaestus.x/`, `fly.x/`, `code/`. The list lives in the Angie vhost +(`location ~ ^/(deviant|sirius-x|theseus-x|…)` in `VPS/SilentMode/silentmode-st.angie.conf`) and in `serve-site.mjs`; add any new foreign mirror to both. ## `/theseus` vs `/theseus-x/` (and `/sirius` vs `/sirius-x/`) @@ -95,7 +95,7 @@ Theseus (origin `bns://`). Without CORS the browser refuses to load the module and every wallet/register/mint flow silently breaks — the launcher click does nothing. -The nginx block on VPS (`/etc/nginx/sites-enabled/silentmode-st`) MUST carry: +The vhost on the VPS is **Angie** at `/etc/angie/http.d/silentmode-st.conf` (nginx is installed but dead there; `/etc/nginx/sites-enabled/silentmode-st` is ignored). It is tracked at `VPS/SilentMode/silentmode-st.angie.conf`; deploy with scp + `angie -t && systemctl reload angie`. It MUST carry: ``` location ~ ^/js/.*\.js$ { @@ -106,6 +106,6 @@ location ~ ^/js/.*\.js$ { ``` Added 2026-09-08 after Theseus reported "CORS blocked" from origin -`bns://sirius.x`. If a future nginx-config rebuild drops the `add_header +`bns://sirius.x`. If a future vhost rebuild drops the `add_header Access-Control-*` lines, every non-silentmode.st page that imports the bundle starts failing again with "No 'Access-Control-Allow-Origin' header". diff --git a/brand/icon/favicon-32.png b/brand/icon/favicon-32.png new file mode 100644 index 0000000..dbba8f5 Binary files /dev/null and b/brand/icon/favicon-32.png differ diff --git a/brand/icon/favicon-64.png b/brand/icon/favicon-64.png new file mode 100644 index 0000000..7bd84c4 Binary files /dev/null and b/brand/icon/favicon-64.png differ diff --git a/brand/icon/icon-192.png b/brand/icon/icon-192.png new file mode 100644 index 0000000..e131d9a Binary files /dev/null and b/brand/icon/icon-192.png differ diff --git a/brand/icon/icon-512.png b/brand/icon/icon-512.png new file mode 100644 index 0000000..235b0e8 Binary files /dev/null and b/brand/icon/icon-512.png differ diff --git a/brand/index.html b/brand/index.html index 346f3d4..3f96bd9 100644 --- a/brand/index.html +++ b/brand/index.html @@ -65,8 +65,8 @@

Silent Mode — brand

Two interlocking chain links, one acid green — the family mark for every Silent Mode product. Kit below: logo, wordmark, avatar, banner, palette, - usage. Every asset is a scalable SVG; raster it to whatever platform demands - a PNG.

+ usage. Every asset is a scalable SVG, and the social section + has PNGs at every platform size.

@@ -150,6 +150,70 @@ + +
+

Social media and icons

+

Ready-made PNGs at the sizes each platform wants. Same mark, same + palette, rendered from the SVGs above; nothing here needs editing before upload. + X, GitHub, Discord, LinkedIn, Instagram and Facebook all refuse SVG for avatars + and headers, so use these.

+ +
+
Silent Mode header banner, 1500 by 500
+
+

Headers and banners

+

Mark, wordmark, one-line description and the two addresses. The layout keeps + the left 60% clear of platform overlays; the avatar sits over the bottom-left + on X without covering text.

+
PNG · flattened on the dark ground
+ +
+
+ +
+
Silent Mode post card, 1200 by 675
+
+

Post and link cards

+

For tweets, announcements and anywhere a 16:9 image is embedded. The 1200×630 + version is what every silentmode.st page advertises as its Open Graph image, + so shared links already show it.

+
PNG · 16:9 and 1.91:1
+ +
+
+ +
+
Silent Mode avatar, 400 by 400
+
+

Avatars and app icons

+

Avatar: mark over the wordmark on the dark ground, safe inside a circle crop. + Icons: the mark alone on flat #0b0e14 for + favicons, PWA manifests and store listings.

+
PNG · square
+ +
+
+ +

Regenerate the whole set + after a palette or mark change with node scripts/brand-assets.mjs + in the repo; it renders every size from one template.

+
+

Palette

Small palette on purpose — one accent, one text tone, three greys, diff --git a/brand/og.png b/brand/og.png index e7dc229..9dd88dc 100644 Binary files a/brand/og.png and b/brand/og.png differ diff --git a/brand/social/avatar-1024.png b/brand/social/avatar-1024.png new file mode 100644 index 0000000..2de5b8b Binary files /dev/null and b/brand/social/avatar-1024.png differ diff --git a/brand/social/avatar-400.png b/brand/social/avatar-400.png new file mode 100644 index 0000000..19a4b9f Binary files /dev/null and b/brand/social/avatar-400.png differ diff --git a/brand/social/facebook-cover-820x312.png b/brand/social/facebook-cover-820x312.png new file mode 100644 index 0000000..452e985 Binary files /dev/null and b/brand/social/facebook-cover-820x312.png differ diff --git a/brand/social/instagram-square-1080x1080.png b/brand/social/instagram-square-1080x1080.png new file mode 100644 index 0000000..a6fc38e Binary files /dev/null and b/brand/social/instagram-square-1080x1080.png differ diff --git a/brand/social/linkedin-banner-1584x396.png b/brand/social/linkedin-banner-1584x396.png new file mode 100644 index 0000000..c7a87d0 Binary files /dev/null and b/brand/social/linkedin-banner-1584x396.png differ diff --git a/brand/social/x-header-1500x500.png b/brand/social/x-header-1500x500.png new file mode 100644 index 0000000..f669758 Binary files /dev/null and b/brand/social/x-header-1500x500.png differ diff --git a/brand/social/x-post-1200x675.png b/brand/social/x-post-1200x675.png new file mode 100644 index 0000000..884867b Binary files /dev/null and b/brand/social/x-post-1200x675.png differ