-
-
Main page of azadi with blue gradient.
-
Main page of azadi with Persian rug background.
-
Create page placeholder for future dynamic user content creation.
-
Vetted AI-generated charities (connected to short video) that address Black food sovereignty.
-
AI-generated articles (connected to short video) for learning more about the Black surgeons making history at Johns Hopkins Hospital.
💡 Inspiration
azadi (meaning "freedom") is inspired by the "Zan, Zendegi, Azadi" (Woman, Life, Freedom) movement originating in Iran. 🕊️
Today's social media blends fleeting memes with serious global crises, causing empathy fatigue and endless doom scrolling. We wanted to build a dedicated space that breaks this cycle—turning digital awareness into real-world, verifiable impact. Because, as our tagline states, knowledge is power. ✊🏽
⚙️ What it does
azadi is a grassroots organizing app that bridges the gap between learning and doing.
• 📚 Educate: Scroll a distraction-free feed of a maximum of 10 short-form videos focused on human rights and mutual aid.
• 🤝 Connect: Dive deeper through per-topic community forums and AI-curated articles.
• 🗺️ Localize: Users can pull up an interactive, free map to find the location of the place mentioned in the video.
• 🏅 Act & Verify: Earn immutable Proof-of-Action Badges. When you RSVP to a protest or engage in forums, the app mints an XLS-20 NFT directly to your XRP Ledger wallet as a verifiable credential of your civic participation.
How we built it
• 💻 Frontend: Vanilla HTML/CSS/JS for a lightning-fast, custom snap-scrolling experience, featuring Leaflet.js and OpenStreetMap for interactive mapping.
• 🧠 Backend: Node.js and Express handle user data, alongside the Gemini API for dynamically suggesting relevant articles and charities based on the video content.
• 🔗 Web3 (XRPL): Our server uses the xrpl SDK to connect to the XRPL Testnet. It programmatically mints XLS-20 NFTs and sends zero-cost token offers (NFTokenCreateOffer) directly to users' wallets.
🚧 Challenges we ran into
Seamlessly blending a smooth Web2 interface with complex Web3 infrastructure was our biggest hurdle. 🧩 Managing server-side wallets, formatting exact XRPL transaction blobs for zero-cost NFT offers, and syncing this with async backend tasks (like the Gemini API calls) required incredibly tight state management so the UI never felt sluggish.
🏆 Accomplishments that we're proud of
We built a fully functional MVP, not just a UI mockup. 🎉 Users can actually link their Testnet XRP address, RSVP to an event, and instantly receive a real on-chain asset that they can view on the Testnet explorer. We are also incredibly proud of the frontend polish, specifically the "Learn-to-Earn" progress bar and a hidden Persian rug dark-mode toggle that adds cultural depth to the app.
📖 What we learned
Building azadi exposed us to the XRP Ledger's tokenization capabilities. 🎓 We learned how to leverage the XLS-20 NFT standard and zero-cost token offers to solve a highly human problem: creating a permanent, verifiable resume of civic duty and community organizing.
🚀 What's next for azadi: knowledge is power
• 🔒 Self-Custodial Logins: Integrating Crossmark or Xaman directly so users can sign transactions natively with their own wallets.
• ✅ Verified Attendance: Connecting Eventbrite or Action Network APIs via webhooks to mint badges only after a user physically checks in to an event.
• 🤖 Enhanced AI Fact-Checking: Upgrading our Gemini API integration to include a rigorous, automated fact-checking layer. To ensure the highest standard of accuracy and combat misinformation, we plan to implement a mathematical confidence threshold.
• 🌐 User-Generated Content (Create): A dynamic 'Create' portal empowering community members to upload and amplify their own educational videos and grassroots stories.
Built With
- bcrypt
- css
- dotenv
- express.js
- google-ai
- google-gemini-openstreetmap
- html
- javascript
- jsonwebtoken
- leaflet.js
- node.js
- testnet
- xrpl
- xrpl-javascript-sdk
- xrpl-testnet-for-nfts
Log in or sign up for Devpost to join the conversation.