Files
VoxVera/CONTRIBUTING.md

1.3 KiB

Contributing To VoxVera

VoxVera main is a static Nostr client. Keep contributions focused on the browser editor/viewer, Nostr event validation, printable flyer rendering, and static deployment.

Frontend

  • Edit the active app under site/nostr/.
  • Keep dependencies vendored under site/nostr/vendor/; do not rely on CDNs.
  • Preserve viewer mode as a flyer-first experience.
  • Keep editor, load, print, language, and other controls hidden from print output.
  • Verify print layout after changes that affect the flyer surface.

Localization

The static client currently uses site/nostr/locales.js plus the NOSTR_UI table in site/nostr/nostr-client.js.

When adding user-facing text:

  • Add translations for every supported language.
  • Check right-to-left languages in the browser where layout may be affected.
  • Keep side-tab strings short enough for tear-off strips.

Nostr Schema

Python validation helpers live in voxvera/nostr/. Keep the schema conservative:

  • Reject raw HTML in user-supplied flyer fields.
  • Reject unsupported URL schemes.
  • Keep attachments out of V1 events unless the spec is deliberately expanded.

Verification

Run:

node --check site/nostr/nostr-client.js
pytest -q

For UI work, also run a local static server and inspect /nostr/ in a browser.