WorldView is a decentralized polling platform that empowers users to create and participate in transparent, community-driven polls. It spans across diverse topics like music, art, technology, and local favorites, allowing collective decision-making powered by blockchain transparency and decentralized identity.
WorldView utilizes Quadratic Voting (QV), an innovative voting mechanism that lets participants express the strength of their preferences. Unlike traditional one-person-one-vote models, QV enables users to allocate multiple votes to options they feel strongly about, reflecting the intensity of their opinions. This method reduces the dominance of single-issue voters and promotes fairer community-driven outcomes.
- Poll creation and management with real-time updates
- Secure, tamper-proof voting powered by World ID verification
- Transparent results visualization with community insights
- Decentralized identity verification through World ID
- SWIE authentication
- Expressive voting capabilities via Quadratic Voting (QV)
- Production: worldview.fyi
- Staging: staging.worldview.fyi
graph TB
User-->Frontend["Frontend"]
Frontend-->WorldcoinID["World ID verification (Orb level)"]
Frontend-->SIWE["SIWE auth"]
SIWE-->Frontend
Frontend-->API["API Gateway"]
API-->Database["Database"]
API-->VerifyMessage["Verify SIWE Message"]
VerifyMessage-->API
API-->Frontend
WorldcoinID-->Frontend
Database-->API
- Frontend: React, Next.js, TailwindCSS
- Backend: Node.js, NestJS (API endpoints)
- Blockchain Integration: Worldcoin MiniKit-JS
- State Management: React Query (Asynchronous data fetching).
- Forms Managment: React Hook Form
- Deployment: Vercel
- User interaction triggers API calls.
- Data is processed through backend services and blockchain interactions.
- Responses are rendered dynamically in the frontend views.
- Node.js >= 20.x
- npm >= 10.x
# Clone the repository
git clone https://github.com/username/worldview-fe.git
# Navigate into the project directory
cd worldview-fe
# Install dependencies
yarn install- Create a
.envfile in the root directory:
APP_ID=your_app_id
NEXT_PUBLIC_APP_ID=your_app_id
NEXT_PUBLIC_APP_URL=your_frontend_app_url
NEXT_PUBLIC_BACKEND_URL=your_backend_app_url #staging (https://backend.staging.worldview.fyi)- Development Mode:
yarn dev- Production Mode:
yarn run build && yarn start- Development: Local Docker containers
- Staging: Vercel
- Production: Vercel
-
API not responding:Verify.envvariables are correctly configured. -
User verification not proceeding
- Possible Cause: The "Verify" action has not been created or configured correctly in your Worldcoin App Dev Portal.
- Resolution:
- Navigate to your Worldcoin Dev Portal and make sure you're on the exact app.
- Go to Incognito Actions → Create Action.
- Set the following values:
- Action Name: verify
- Max Verifications per User: Unlimited
- Click Save Changes to confirm.
- After saving, try the verification process again. The action should now proceed as expected.
- Access Vercel logs for production diagnostics.
-
Reusable Icon Components: All icons should be created as reusable components under /components/icon-components. This ensures consistency across the application and improves maintainability.
-
Data Fetching and Mutations: Use React Query hooks (useQuery, useMutation) for all data fetching and mutations. This approach optimizes data synchronization, caching, and error handling.
-
Type Safety with TypeScript: Ensure all components, hooks, and services are strongly typed using TypeScript to prevent runtime errors and improve code reliability.
- Main branch:
main - Staging branch:
staging - Development branch: Feature integration branch
- Fork the repository
- Create a new feature branch
- Open a pull request for review
- Worldcoin MiniKit-JS Documentation.
- World Mini Apps Documentation.
- Next.js Official Documentation.
- Maintainers: @Meriem-BM, @RamRamez
Thanks to all contributors and the Worldcoin community for their support.