Skip to content

fanyiy/nostr-globe

Repository files navigation

Nostr Events Globe

Privacy-first 3D globe of upcoming Nostr events. Static-exported Next.js app ready for GitHub Pages and other static hosts.

Features

  • Interactive 3D globe view of events
  • Filters by date, radius, tags, keyword
  • Event details with safe Markdown rendering
  • Download .ics files, open in Nostr clients, external links
  • Relay configuration persisted to localStorage
  • Optional chat sidebar (client-only)

Local development

npm ci
npm run dev

Open http://localhost:3000.

Build and export (static)

npm run build
npx next export
# output in ./out

Deployment

  • This repo is configured for GitHub Pages:
    • next.config.ts uses output: "export", trailingSlash: true, and basePath: "/nostr-globe".
    • public/.nojekyll ensures Pages serves files without Jekyll processing.
    • GitHub Actions workflow at .github/workflows/deploy.yml builds and deploys ./out on pushes to main.

If you fork or rename the repository, update:

  • next.config.ts basePath to match your repo name.
  • metadataBase in app/layout.tsx to your Pages URL.
  • Pages settings in GitHub: enable Pages with Source = GitHub Actions.

Project structure

  • app/ Next.js App Router UI
  • components/ UI components (3D globe, filters, chat, etc.)
  • hooks/ data fetching and state hooks
  • lib/ utilities: geo, time, nostr, ics, cache
  • types/ TypeScript types

Accessibility and performance

  • Dark color scheme with prefers-color-scheme
  • Static assets only; images unoptimized for export mode
  • No trackers; data fetched from configured Nostr relays

License

MIT

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published