GiveMatch
Project Overview
GiveMatch is a Next.js application designed to help users discover nonprofits and facilitate donations. Powered by the Every.org API, the platform provides access to over one million nonprofit organizations, making it easy for donors to find causes that align with their values and contribute in the way that works best for them, including cryptocurrency.
Key Features
- Nonprofit Discovery: Search and browse over 1 million nonprofit organizations via the Every.org API, with filtering by cause area, location, and mission
- Personalized Matching: Interest-based matching that recommends nonprofits aligned with each user's preferences and giving history
- Cryptocurrency Donations: WalletConnect integration enables donors to contribute using cryptocurrency, expanding the ways people can give
- Fundraiser Creation: Tools for creating and sharing fundraisers, allowing users to rally support for causes they care about
- Donation Analytics: Impact tracking and analytics so donors can see where their contributions go and the difference they make
- Secure Authentication: NextAuth-powered authentication for secure user accounts and personalized experiences
Technical Architecture
GiveMatch is built on a modern web stack optimized for performance and developer experience:
- Frontend: Next.js with TypeScript provides server-side rendering for fast initial page loads and excellent SEO, while Chakra UI delivers a clean, accessible component library for consistent design
- API Integration: The Every.org API serves as the backbone for nonprofit data, providing comprehensive information on organizations across the country
- Caching Layer: Redis caching reduces API calls and improves response times for frequently accessed nonprofit data
- Authentication: NextAuth handles user sessions, supporting multiple auth providers for flexible sign-in options
- Web3 Integration: WalletConnect bridges the traditional web experience with cryptocurrency wallets, enabling seamless crypto donations
Design Decisions
Choosing Next.js as the framework was driven by the need for server-side rendering (important for SEO when displaying nonprofit information) and the excellent TypeScript support. Chakra UI was selected for its accessibility-first approach and seamless dark mode support.
The Redis caching layer was an important architectural choice. The Every.org API provides rich data, but caching frequently accessed nonprofit profiles and search results significantly improves the user experience and reduces API overhead.
Adding WalletConnect for cryptocurrency donations reflects the growing trend of crypto philanthropy and opens up giving to a broader audience of donors who prefer digital assets.
Back to Home