Privacy-first 3D globe of upcoming Nostr events. Static-exported Next.js app ready for GitHub Pages and other static hosts.
- Interactive 3D globe view of events
- Filters by date, radius, tags, keyword
- Event details with safe Markdown rendering
- Download
.icsfiles, open in Nostr clients, external links - Relay configuration persisted to
localStorage - Optional chat sidebar (client-only)
npm ci
npm run devOpen http://localhost:3000.
npm run build
npx next export
# output in ./out- This repo is configured for GitHub Pages:
next.config.tsusesoutput: "export",trailingSlash: true, andbasePath: "/nostr-globe".public/.nojekyllensures Pages serves files without Jekyll processing.- GitHub Actions workflow at
.github/workflows/deploy.ymlbuilds and deploys./outon pushes tomain.
If you fork or rename the repository, update:
next.config.tsbasePathto match your repo name.metadataBaseinapp/layout.tsxto your Pages URL.- Pages settings in GitHub: enable Pages with Source = GitHub Actions.
app/Next.js App Router UIcomponents/UI components (3D globe, filters, chat, etc.)hooks/data fetching and state hookslib/utilities: geo, time, nostr, ics, cachetypes/TypeScript types
- Dark color scheme with
prefers-color-scheme - Static assets only; images unoptimized for export mode
- No trackers; data fetched from configured Nostr relays
MIT