Skip to content

Fix #281: Allow unauthenticated access to public read-only routes#320

Merged
Mosas2000 merged 1 commit intomainfrom
fix/issue-281-unauthenticated-routes
Apr 9, 2026
Merged

Fix #281: Allow unauthenticated access to public read-only routes#320
Mosas2000 merged 1 commit intomainfrom
fix/issue-281-unauthenticated-routes

Conversation

@Mosas2000
Copy link
Copy Markdown
Owner

Summary

Enables unauthenticated visitors to explore platform value immediately without requiring wallet connection, reducing onboarding friction for hackathon judging and product discovery.

Public Routes (No Authentication)

  • /feed - Real-time tips across the platform
  • /leaderboard - Top tippers and recipients ranked by volume
  • /stats - Platform-wide aggregate statistics

Protected Routes (Authentication Required)

  • /send, /batch, /token-tip - Require wallet to send tips
  • /activity, /profile, /block - User-specific features
  • /admin, /telemetry - Owner-only administrative features

Implementation Details

  • ROUTE_META updated to mark each route's authentication requirements
  • RequireAuth component displays inline wallet connection prompts for protected routes
  • App.jsx routing refactored to support mixed authenticated/unauthenticated state
  • Navigation dynamically filters items based on auth and admin status
  • Root redirect now goes to /feed for unauthenticated users (was hardcoded to /send)

Testing

  • All 1712 frontend tests passing (1 new test added)
  • All 91 contract tests passing
  • Routing tests verify both authenticated and public behaviors
  • Navigation properly hides authenticated-only items for unauthenticated users

Acceptance Criteria Met

New visitors can browse live feed, leaderboard, and platform stats without wallet
Send tip, batch tip, token tip, profile management remain protected
Public routes have clear upgrade prompts when wallet is required
Routing tests cover authenticated and unauthenticated behavior

Fixes #281

Enable visitors to explore the platform without wallet connection by
opening read-only routes to all users:

Public routes (no authentication required):
- /feed - Real-time tips across the platform
- /leaderboard - Top tippers and recipients
- /stats - Platform-wide aggregate statistics

Protected routes (authentication required):
- /send, /batch, /token-tip - Sending tips
- /activity, /profile, /block - User account features
- /admin, /telemetry - Owner-only administrative features

Changes:
- Updated ROUTE_META in routes.js to mark public vs authenticated routes
- Created RequireAuth component to show inline wallet connection prompts
- Refactored App.jsx routing to support mixed authenticated/unauthenticated
- Navigation dynamically filters items based on auth and admin status
- Root path redirects to /feed for unauthenticated users (was /send)
- Updated routes.test.js to verify public and authenticated route separation

Testing:
- All 1712 frontend tests passing (including 1 new test)
- All 91 contract tests passing
- Routing tests cover both authenticated and public behaviors

This allows first-time visitors to immediately see live activity and
platform value without friction, addressing major onboarding concerns
for hackathon judging and product discovery.
Fixes #281
@Mosas2000 Mosas2000 merged commit c4686ad into main Apr 9, 2026
4 of 7 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Open key product surfaces in read-only mode before wallet connection

1 participant