onlyn00bs-badge

OnlyN00bs: a DEF CON 34 friend-finder badge. ESP32 firmware, Web Bluetooth setup app, printable case
git clone https://git.virtualshack.io/onlyn00bs-badge.git
Log | Files | Refs | README | LICENSE

commit 5785d6d4c51c01111d282fbe785e4d33a9cb8d18
parent 401600201e502304205aa0656e32ebc2c31d0c80
Author: virtualtack <[email protected]>
Date:   Sat, 26 Sep 2026 12:40:39 -0700

Snapshot of v1.10-dc34-88-ge799fa2

Diffstat:
MSNAPSHOT.md | 2+-
Mweb/src/assets/badge.css | 4++++
Mweb/src/gallery/index.html | 2+-
Mweb/src/index.html | 4+++-
Mweb/src/sw.js | 2+-
5 files changed, 10 insertions(+), 4 deletions(-)

diff --git a/SNAPSHOT.md b/SNAPSHOT.md @@ -1,7 +1,7 @@ # About this snapshot This repository is the public release of the OnlyN00bs badge, taken from its private -development repo at `v1.10-dc34-87-g181cad5` on 2026-09-26. It holds what describes the **production unit +development repo at `v1.10-dc34-88-ge799fa2` on 2026-09-26. It holds what describes the **production unit as it is**: the firmware, the Web Bluetooth setup app, the site, the parts list, and the case. diff --git a/web/src/assets/badge.css b/web/src/assets/badge.css @@ -287,3 +287,7 @@ dialog.lightbox figcaption { font-size: 13px; color: #bdbdbd; text-align: center .lightbox .prev { left: 12px; top: 50%; transform: translateY(-50%); } .lightbox .next { right: 12px; top: 50%; transform: translateY(-50%); } .lightbox .count { position: fixed; top: 20px; left: 16px; font-size: 13px; color: #8b949e; } + +/* The gallery link at the top of the page (where the TL;DR box was): a plain accent link in + the page's lowercase `//` voice, not a second call-to-action competing with setup. */ +.top-link { margin: 20px 0 8px; } diff --git a/web/src/gallery/index.html b/web/src/gallery/index.html @@ -17,7 +17,7 @@ <meta name="twitter:card" content="summary_large_image"> <meta name="twitter:image" content="https://badge.virtualshack.io/assets/img/og-badge.jpg"> <!-- ?v= must match CACHE in ../sw.js — same rule as index.html --> -<link rel="stylesheet" href="../assets/badge.css?v=34"> +<link rel="stylesheet" href="../assets/badge.css?v=35"> <link rel="icon" type="image/svg+xml" href="../assets/icon.svg"> <link rel="manifest" href="../manifest.webmanifest"> <meta name="theme-color" content="#212121"> diff --git a/web/src/index.html b/web/src/index.html @@ -32,7 +32,7 @@ invisible to visitors for hours after a deploy. A new query = a new edge cache key = it lands immediately. Safe for offline: sw.js matches with ignoreSearch, so this still resolves to the precached bare URL. --> -<link rel="stylesheet" href="assets/badge.css?v=34"> +<link rel="stylesheet" href="assets/badge.css?v=35"> <link rel="icon" type="image/svg+xml" href="assets/icon.svg"> <link rel="manifest" href="manifest.webmanifest"> <meta name="theme-color" content="#212121"> @@ -44,6 +44,8 @@ <p class="tagline">a friend-finder badge for def con 34 · firmware v1.10</p> <p class="small muted"><a href="https://virtualshack.io/">virtualshack.io</a> / badge</p> + <p class="top-link"><a href="gallery/">// photos from the con →</a></p> + <p style="text-align:center"><a class="cta" href="provision/">Set up my badge →</a></p> <!-- Changelog. Newest first, CAPPED AT THE 3 MOST RECENT — add to the top and drop the diff --git a/web/src/sw.js b/web/src/sw.js @@ -17,7 +17,7 @@ * there is one version to remember, not two. */ -const CACHE = "onlyn00bs-v34"; +const CACHE = "onlyn00bs-v35"; // Resolved against the worker's own location, so it's right whether the site is served at // / (production) or under a path (a local preview).