thePR0M3TH3ANandClaude Opus 4.8 77bfef1bbe Serve client at site root; redirect legacy /nostr/
The /nostr/ path was a leftover from when the site also hosted a Tor
client. The app is Nostr-only now, so move the client to the site root
and shorten poster URLs to https://voxvera.org/#naddr1... (drops both
/nostr/ and the ?addr= query key, for a cleaner/smaller tear-off QR).

- Move site/nostr/{nostr-client.js,css,locales.js,vendor} to site/.
- site/index.html is now the client; site/nostr/index.html is a redirect
  stub that forwards /nostr/ to / while preserving the query string and
  #naddr fragment, so older poster URLs and printed QR codes still
  resolve.
- Carry the naddr in the URL fragment (#) instead of ?addr=; the viewer
  reads query, fragment, or the full URL, so old links keep working.
- Update README, AGENTS.md, and the spec to the new paths.

Co-Authored-By: Claude Opus 4.8 <[email protected]>
2026-06-09 10:49:36 -04:00
2026-06-05 13:33:18 -04:00
2025-06-17 17:33:40 -04:00
2026-06-05 13:59:27 -04:00
2025-06-17 19:02:12 -04:00
2026-06-05 10:13:41 -04:00

VoxVera

VoxVera is now a static Nostr-powered flyer client.

The active app lives at the site root (site/). 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/index.html, site/nostr-client.js, site/nostr-client.css, site/locales.js: static editor/viewer client
  • site/vendor/: vendored browser dependencies for Nostr and QR generation
  • site/nostr/index.html: redirect stub so legacy /nostr/ poster URLs and QR codes still resolve
  • site/CNAME: custom-domain target
  • voxvera/nostr/: small Python schema/validation helpers
  • docs/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/

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 client is served from the domain root (site/index.html). site/nostr/index.html is a redirect stub that forwards the legacy /nostr/ path to the root while preserving the query/fragment, so older poster URLs and printed QR codes still resolve.

Verification

node --check site/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

S
Description
VoxVera is a static, Nostr-powered, printable flyer client.
Readme MIT
371 MiB
0 Stars 1 Watchers 0 Forks
Languages
JavaScript 82.2%
CSS 7.7%
HTML 7%
Python 3.1%