Detects browser timezone, persists in Zustand store, and formats all
event times using explicit timezone via Intl.DateTimeFormat. Adds TZ
badge to calendar header. Affects DayView, WeekView, MonthView,
EventDetailModal, and SpatioTemporalMap.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Shows an informational popup with rich landing page content on first
visit, re-openable via a fixed info button (bottom-right corner).
Dismissible via X button, overlay click, or Escape key. Uses
localStorage to track first-visit state.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Reinforces the r-suite "your tools" philosophy across all rApp landing pages.
Also normalizes title separators to em-dash for consistency.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Reinforces the r-suite "your tools" philosophy across all rApp landing pages.
Also normalizes title separators to em-dash for consistency.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Add DayView (24h time grid with events) and WeekView (7-day columns)
- Add ViewSwitcher icon bar in header for quick Day/Week/Month/Season/Year/Decade switching
- Fix zoom to properly route each granularity to its dedicated view
- Normalize all views to consistent h-full flex-col container pattern
- Change YearView default from fullscreen portal to inline compact/glance
- Add FullscreenToggle wrapper for opt-in fullscreen on any view
- Add ~40 demo events with real coordinates (Berlin, Amsterdam, Munich, Paris, Prague, Lisbon, Barcelona, Brussels)
- Add DemoDataSeeder to pre-populate React Query cache on demo page
- Add TransitLines component drawing dashed polylines between event locations on the map
- Extend EventListItem type with latitude/longitude/coordinates fields
- Add CSS fade transition between view switches
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
rspace-online claims all rApp base domains at priority 120.
Individual apps need higher priority to serve their own content.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- AppSwitcher: rTube/rSwag → Creating, rSocials → Sharing, rData → Observing
- EcosystemFooter: updated link order to match new categories
- UserMenu: 🔑 Sign In button, 🔐 lock when logged in
- SpaceSwitcher: reads EncryptID token, sends Bearer header
- /api/spaces proxy: forwards to rspace.online (canonical spaces)
- /api/me: verifies EncryptID token for auth status
- Header.tsx: standardized bg-slate-900/85 across all apps
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Replace the minimal landing page with a full rStack-style marketing page
featuring hero with gradient text, 4-card principles grid, feature pillars,
temporal zoom visualization, four-view showcase, ecosystem integration
cards, and CTA section.
Move the calendar app to /demo route served at demo.rcal.online via
middleware subdomain routing. Add per-route layouts for Header placement
so the landing page controls its own chrome.
Also includes AppSwitcher/EcosystemFooter category reorganization
(rTube/rSwag to Creating, Social & Media split into Sharing + Observing).
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Traefik wildcard HostRegexp for <space>.r*.online subdomains
- Middleware subdomain extraction and path rewriting
- Provision endpoint with owner_did acknowledgement
- Registry enforces space ownership via EncryptID JWT
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Space links now go to <space>.<app-domain> (e.g., myspace.rfunds.online)
instead of rspace.online/<space>. Domain derived from window.location
when not explicitly provided.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Replace inline nav/Navbar with shared Header component
- Header pattern: AppSwitcher dropdown / SpaceSwitcher / actions / Sign In
- SpaceSwitcher and UserMenu work without SDK dependency
- Consistent across all r*Apps
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Part of the ridentity.online branding migration. The EncryptID auth
server is now accessible at auth.ridentity.online (with the legacy
encryptid.jeffemmett.com kept as a backward-compatible alias).
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Standardize to dark background (#0f172a / slate-900) and add emoji
data URI favicon matching the rStack ecosystem.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Adds the unified rStack app switcher with pastel badges, emoji icons,
and categorized navigation across all 17 rStack apps.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Add entrypoint.sh that fetches secrets from Infisical at container
startup. DATABASE_URL and POSTGRES_PASSWORD now come from Infisical
instead of being hardcoded in docker-compose environment.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Inject rdata.online/collect.js tracking script in layout
- Add rData link to ecosystem footer
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
User model added to Prisma. AuthProvider wraps existing Providers.
POST/PUT/DELETE routes require auth, GET routes remain open for demo access.
CalendarSource tracks createdById. Dockerfile updated for SDK copy.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Create marketing landing page at / with hero, features (spatial, zoom,
lunar), how-it-works, ecosystem section, and r-suite footer. Move full
calendar app to /calendar. Add rcal.online domain to Traefik labels.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>