Collaborative real-time friend-finding navigation for events
Go to file
Jeff Emmett 1dddf16c6a fix: Navigation now uses actual current location
Pass current location from useLocationSharing hook to navigateTo
instead of using stale data from the Zustand store. This fixes the
"Enable location sharing to get directions" error when already sharing.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-29 02:46:07 +01:00
backlog fix: Improve location handling, session persistence, and mobile UI 2025-12-28 23:34:00 +01:00
public feat: Add push notifications for background friend pings 2025-12-29 02:33:08 +01:00
src fix: Navigation now uses actual current location 2025-12-29 02:46:07 +01:00
sync-server feat: Add WebSocket-based location refresh for online friends 2025-12-29 01:51:09 +01:00
.env.example feat: Add PWA push notifications for room events 2025-12-29 01:13:16 +01:00
.gitignore Initial scaffold for rMaps.online 2025-12-15 12:23:13 -05:00
Dockerfile Initial scaffold for rMaps.online 2025-12-15 12:23:13 -05:00
README.md Initial scaffold for rMaps.online 2025-12-15 12:23:13 -05:00
docker-compose.yml Simplify Traefik labels for compatibility 2025-12-15 14:33:28 -05:00
next.config.js Initial scaffold for rMaps.online 2025-12-15 12:23:13 -05:00
package-lock.json Replace Automerge with simple WebSocket sync 2025-12-15 12:59:22 -05:00
package.json Replace Automerge with simple WebSocket sync 2025-12-15 12:59:22 -05:00
postcss.config.js Initial scaffold for rMaps.online 2025-12-15 12:23:13 -05:00
tailwind.config.ts Initial scaffold for rMaps.online 2025-12-15 12:23:13 -05:00
tsconfig.json Initial scaffold for rMaps.online 2025-12-15 12:23:13 -05:00

README.md

rMaps.online

Collaborative real-time friend-finding navigation for events.

Features

  • Real-time GPS Sharing: See your friends' locations on the map
  • Privacy-First: Control who sees your location and at what precision
  • c3nav Integration: Indoor navigation for CCC events (38C3, Easterhegg, Camp)
  • Ephemeral Rooms: Create a room, share the link, meet up
  • No Account Required: Just enter your name and go

Quick Start

# Install dependencies
npm install

# Run development server
npm run dev

Open http://localhost:3000

Architecture

┌─────────────────────────────────────────────────┐
│                  rMaps.online                    │
├─────────────────────────────────────────────────┤
│  Frontend: Next.js + React + MapLibre GL        │
│  State: Zustand + Automerge (CRDT)              │
│  Maps: OpenStreetMap (outdoor) + c3nav (indoor) │
│  Sync: WebSocket / Automerge Repo               │
└─────────────────────────────────────────────────┘

Room URLs

  • Path-based: rmaps.online/room/my-crew
  • Subdomain (planned): my-crew.rmaps.online

c3nav Integration

rMaps integrates with c3nav for indoor navigation at CCC events:

  • Automatic detection when entering venue area
  • Indoor positioning via WiFi/BLE
  • Floor-aware navigation
  • Route planning to friends, events, and POIs

Development

# Type checking
npm run type-check

# Linting
npm run lint

# Build for production
npm run build

Deployment

Docker

docker compose up -d --build

Traefik Labels

The docker-compose.yml includes Traefik labels for:

  • Main domain routing (rmaps.online)
  • Wildcard subdomain routing (*.rmaps.online)

Privacy

  • No tracking: We don't store location history
  • Ephemeral rooms: Auto-delete after 7 days of inactivity
  • Precision control: Choose how accurately to share your location
  • Ghost mode: Hide your location while staying in the room

License

MIT