Raw School is a crypto-humanities reading project initiated by the Uncommons community, dedicated to providing a decentralized knowledge exploration platform for learners and researchers. The website features two core functions:
- BookClub – Logs reading club events and book lists while offering a review aggregation dashboard, allowing users to publish and browse reading notes.
- AmbiNet Project – A decentralized academic glossary that empowers community members to define and expand terminology, collaboratively building an open knowledge system.
The website integrates Web3 functionalities, enabling users to connect their crypto wallets and contribute book reviews and wiki entries based on their wallet address identity. All data is stored on Arweave, ensuring decentralization and long-term persistence.
- Web3 Wallet Authentication: Connect with crypto wallets for secure authentication
- Book Club System: Browse, review, and interact with book club content
- Wiki Component: View and manage wiki entries with detailed content
- AmbiNet Card System: Create and share AmbiNet cards
- Profile Management: Manage user profiles with wallet integration
- Real-time Clock: Interactive clock component
- Frontend: Next.js 15, React 19, TypeScript
- UI: Tailwind CSS, Shadcn UI
- Web3: RainbowKit, Wagmi, Viem, Ethers.js, Arweave
- Backend: Supabase (PostgreSQL)
- Animation: P5.js, Matter.js
- Node.js (latest LTS version)
- npm or yarn
- Supabase account
- Create a Supabase project
- Set up the database tables by running the SQL script in
supabase_setup.sql
Create a .env.local
file in the root directory with the following variables:
NEXT_PUBLIC_SUPABASE_URL=https://your-project-url.supabase.co
NEXT_PUBLIC_SUPABASE_ANON_KEY=your-anon-key
# Install dependencies
npm install
# Run development server
npm run dev
The app will be available at http://localhost:3000
# Build the application
npm run build
# Start the production server
npm start
/app
: Next.js app directory with page components/components
: Reusable UI components/auth
: Authentication components with Web3 integration/bookclub
: Book club related components/header
: Navigation and header components/join
: User onboarding components/profile
: User profile components/ui
: Shadcn UI components/wiki
: Wiki system components
/lib
: Utility functions and shared logic/supabase
: Supabase configuration and client/types
: TypeScript type definitions
The application uses a PostgreSQL database with the following main tables:
users
: Stores user information including wallet addressessessions
: Manages authentication sessionsbookclub_reviews
: Stores book reviews submitted by usersambinet_cards
: Stores ambinet card content created by users
- User connects their Web3 wallet
- Backend generates a nonce for the user to sign
- User signs the nonce with their wallet
- Backend verifies the signature and creates a session
- User receives an authentication token
This project is licensed under the MIT License.
To learn more about Next.js, take a look at the following resources:
- Next.js Documentation - learn about Next.js features and API.
- Learn Next.js - an interactive Next.js tutorial.
You can check out the Next.js GitHub repository - your feedback and contributions are welcome!
The easiest way to deploy your Next.js app is to use the Vercel Platform from the creators of Next.js.
Check out our Next.js deployment documentation for more details.