Readme Clubs is a progressive web app (PWA) for book enthusiasts, integrating Web3 functionality to enable seamless interactions with blockchain-based books and communities. Built with React, Vite, Tailwind CSS, and Wagmi, this app allows users to browse books, view details, and interact with Web3 features like wallet connections and token balances.
- Browse Books: Explore a curated list of books with details like title, author, cover image, and description.
- Web3 Integration: Connect your wallet (MetaMask, Coinbase Wallet, or Keplr) to view your ETH and $PAGE balances.
- Progressive Web App (PWA): Install the app on your device for offline access and a native app-like experience.
- Responsive Design: Optimized for desktop, tablet, and mobile devices.
- Real-time Discussions: Thread-based conversations with live updates
- Web3 Integration: Wallet-verified posting and reputation system
- Categories: Organized discussions by book genres and topics
- Search & Discovery: Find relevant discussions and community members
- Performance Optimized:
- Lazy-loaded thread content
- Optimistic updates for instant feedback
- Cached responses for frequently accessed content
- Frontend: React, Vite, Tailwind CSS
- Web3: Wagmi, RainbowKit, Viem
- Deployment: Netlify
- PWA: Vite Plugin PWA
- Thread-based data structure
- Real-time updates using WebSocket connections
- Caching layer for frequently accessed content
- Pagination and infinite scroll support
- Web3 signature verification for posts
- Dynamic imports for forum components
- Debounced search operations
- Memoized component rendering
- IndexedDB for offline data persistence
- Service Worker strategies for static assets
Follow these steps to set up the project locally.
- Node.js (v18 or higher)
- npm (v9 or higher)
-
Clone the repository: git clone https://github.com/pagedao/readme-clubs.git cd readme-clubs
-
Install dependencies: npm install
-
Start the development server: npm run dev
-
Open the app in your browser: http://localhost:5173
To build the app for production, run: npm run build
The production-ready files will be generated in the dist
directory.
This app is deployed on Netlify. To deploy your own instance:
- Push your code to a GitHub repository.
- Go to Netlify and create a new site from Git.
- Configure the build settings:
- Build command:
npm run build
- Publish directory:
dist
- Build command:
- Deploy the site.
src/ ├── components/ # Reusable UI components ├── features/ # Feature-specific components (e.g., books, profile) ├── hooks/ # Custom React hooks ├── lib/ # Utility functions and API clients ├── pages/ # Route components ├── types/ # TypeScript interfaces and types ├── App.tsx # Main application component ├── main.tsx # Entry point
We welcome contributions! Here’s how you can help:
- Fork the repository.
- Create a new branch for your feature or bugfix: git checkout -b feature/your-feature-name
- Commit your changes: git commit -m "Add your feature"
- Push to the branch: git push origin feature/your-feature-name
- Open a pull request and describe your changes.
This project is licensed under the MIT License. See the LICENSE file for details.
- Vite for the blazing-fast build tool.
- Tailwind CSS for the utility-first CSS framework.
- Wagmi for Web3 integration.
- RainbowKit for wallet connection UI.
Made with ❤️ by PageDAO