- Tear-off tabs: single hyperlinked statement (no printed URL), with "Share and reprint." on its own line; localize "Click to open this poster." across all 14 languages. - Show the full event ID, bottom-anchored on each tab, split into two 32-char lines at max readable monospace size. - Shorten the poster URL by encoding the naddr with a single relay hint instead of the full relay list (~233 -> ~171 chars) for an easier-to- scan QR; still a standard naddr, older URLs resolve unchanged. - Add per-script letter-spacing policy (ls-full/ls-cjk/ls-none) to fit more text per line where safe, and turn tracking off for Arabic, Persian, and Hindi (fixes broken cursive joins / combining marks). - Move the "field too long" warning inline under the offending field instead of a single bottom status line. Co-Authored-By: Claude Opus 4.8 <[email protected]>
VoxVera
VoxVera is now a static Nostr-powered flyer client.
The active app lives at site/nostr/. It lets a user author flyer content, publish it as a public Nostr event, and render the flyer later from an event ID or Nostr address. The frontend is intentionally self-contained: relays store the content, and any static host can serve the client.
The previous Tor/OnionShare CLI version is preserved on the legacy-tor branch.
What Is In main
site/nostr/: static editor/viewer clientsite/nostr/vendor/: vendored browser dependencies for Nostr and QR generationsite/CNAME: custom-domain targetvoxvera/nostr/: small Python schema/validation helpersdocs/nostr-static-client-spec.md: design notes and development plan
Local Development
Run the static site from the repo root:
python3 -m http.server 8768 --directory site
Then open:
http://127.0.0.1:8768/nostr/
No build command is required for the frontend.
Vercel
Point Vercel at this repository on main.
- Framework preset: Other
- Root directory: repo root
- Build command: leave empty
- Output directory:
site
The root site/index.html redirects to /nostr/, so the domain can serve the current client without preserving the legacy Tor page.
Verification
node --check site/nostr/nostr-client.js
pytest -q
The Python tests only cover the Nostr source schema. The frontend is static and should be checked in-browser for layout and print behavior after UI changes.
License
MIT (c) 2026 thePR0M3TH3AN