Frontend: NextJS Example
DeSo Frontend Starter for NextJS and React apps
Last updated
Was this helpful?
DeSo Frontend Starter for NextJS and React apps
Last updated
Was this helpful?
Primary Contributor & Maintainer:
A modern frontend web application built using Next.js App Router and designed to integrate with the โ a decentralized social blockchain platform.
๐ฆ Repository:
This starter includes:
DeSo authentication via Identity service
Profile selector and alternate identity switching
Advanced commenting system with optimistic updates
Network-resilient data fetching and caching
Clean UI component system (Buttons, Inputs, Dropdowns, Select, etc.)
Support for Floating UI dropdowns and portals
Dark/light theming via CSS variables
Storybook for component exploration
๐ DeSo Auth: Log in using DeSo Identity
๐ฅ Alt Profile Switcher: Switch between multiple public keys
๐ Search Profiles: Find users by public key or username
๐ Post Support: Read and create posts on the DeSo blockchain
๐ฌ Advanced Comments: Inline replies with optimistic updates and smart caching
๐ Network Resilient: Handles offline/online transitions gracefully
๐ป Profileless Accounts: Fully functional even without a user profile
๐จ Component Library: Custom Select, MenuItem, Avatar, and Dropdown components
๐ Responsive UI: Built with modular CSS and theme tokens
๐ฆ Floating UI: Precise positioning via @floating-ui/react
๐งฑ Scalable Structure: Clean folder structure for extending easily
โ Core Benefits:
Smart caching and deduplication of network requests
Declarative useQuery
/ useMutation
hooks
Built-in error/loading states
React Query Devtools support (optional)
โ Network Resilience Features:
Wake-from-sleep protection - No more "failed to fetch" errors when laptop wakes up
Smart retry logic - Won't retry when offline or for client errors
Progressive retry delays - Intelligent backoff (1s, 2s, 4s, 8s, max 15s)
Offline awareness - Graceful handling of network transitions
Centralized configuration - Consistent behavior across all pages
The commenting system features sophisticated state management and user experience optimizations:
โ Real-time Features:
Optimistic updates - Comments appear instantly while syncing to blockchain
Local/remote merging - Seamlessly combines user's new comments with server data
Infinite pagination - Load more comments on demand
Smart deduplication - Prevents duplicate comments across page loads
โ User Experience:
Inline replies - Reply directly from any post without page navigation
Expand/collapse - Show/hide comment threads with state persistence
Comment promotion - Local comments become permanent after server sync
Visual feedback - Clear loading states and error handling
Usage examples include:
Fetching user profiles by public key or username
Fetching posts and comments with infinite scroll
Creating replies with optimistic UI updates
Managing complex UI state like comment visibility
Handling username โ public key resolution for notifications and feeds
Query keys are centralized in /queries/queryKeys.js
, UI keys in /queries/uiKeys.js
, and network configuration in /queries/queryClientConfig.js
for consistency and maintainability.
๐ง Profile editing and mutations use
invalidateQueries()
for cache synchronization and support optimistic updates.
Visit http://localhost:3000
to view the app.
Run Storybook to browse UI components in isolation:
Opens at: http://localhost:6006
UI Logic: React 19 + CSS Modules
State Management: React Context (Auth, User) + React Query for UI state
DeSo Identity: Authentication via DeSo Identity service
Theming: CSS variable-based dark/light support
The app features a sophisticated React Query setup optimized for reliability:
API queries: 2-minute stale time, 10-minute cache time
Search queries: 30-second stale time for fresh results
Comments: Infinite stale time for persistent threading
UI state: Cached for consistent user experience
This project is open-sourced under the MIT License.
Pull requests are welcome! Open issues or suggestions any time.
During development, several minor issues were identified with the DeSo backend API:
If you encounter additional issues, please report them via the appropriate GitHub repository.
This starter uses for efficient, declarative data fetching and caching with enterprise-grade reliability.
Framework: (v15.2.4)
Data Fetching & Caching: with network-aware configuration
Floating Dropdowns:
Built using the โ the decentralized social blockchain.
Unresolved: See for details on an issue that remains open.
Fixed: A previously reported bug has been addressed. Refer to for more information.