Inspiration
- Around the world, millions of men, women, and children live without access to basic opportunities due to humanitarian crises and environmental shifts. We set out to create something that turns compassion into action. By promoting volunteer tourism, we help individuals reach communities that need support the most.
What it does
IMCharitable is a platform that connects volunteers to local/global organisations, making it easier for charities to find willing members to support them in their initiatives.
Users start at a high-performance 3D globe, where they can visually browse humanitarian needs and opportunities mapped across the planet. An admin user can move the globe and select countries, with all changes synced in real time to other users in the same room. Instead of searching alone, users can create or join “Rooms,” either by starting their own or joining one created by an admin. These rooms include live participants and real-time syncing with all group members, allowing people such as friends to talk together, discuss destination countries for volunteering, vote on opportunities, and decide their travel together.
When a country is selected on the globe, all users in the room can view a list of charity opportunities available in that country. Users can also communicate through a sidebar chat. Using Gemini, IMCharitable analyses room chat context to recommend and auto-re-rank the most relevant opportunities based on what the conversation is leaning toward. It doesn’t just show “opportunities”; it ranks them based on the group’s profile and current humanitarian cause interests chosen at signup.
For accessibility, voice commands allow users to navigate the globe and explore opportunities hands-free.
How we built it
We focussed on speed and low latency.
We built the frontend with React.js, utilising Globe.gl for the 3D globe and FullCalendar for calendar availability. We used Supabase to handle the real time synchronisation in the planning rooms. We did this by providing PostgreSQL for data, "Realtime" for the chat and room flows, and "Storage" for hosting volunteer resumes. We used FastAPI as the framework for our backend. In IMCharitable, we utilised Google’s AI SDK to use Gemini to auto-rank the opportunities in the room based on chat and user information. Moreover, we used ElevenLabs to create accessibility features such as voice commands.
Challenges we ran into
Volunteering is often incredibly personal and heartfelt, it was important that we didn’t abstract away the volunteer-charity matching process behind algorithms which placed a huge demand on creating a real-time platform with social media capabilities. Resolving the volunteer-charity relationship was difficult to ensure both parties find it as easy as possible to fulfil their needs. From a system design perspective, this required us to think and discuss a lot about how volunteers can collaborate with each other in real time to express their interest in charities around the globe and how charities can learn about their potential volunteers.
Additionally, syncing the 3D Globe state with the Supabase Realtime database was a challenge. Ensuring that when a Room Admin selects a country, every participant's globe rotates to that exact coordinate simultaneously required a deep dive into state management and Three.js event listeners. This also presented a cool engineering challenge of integrating models by ElevenLabs and Gemini to support voice and AI-assisted charity suggestions and improved accessibility.
Accomplishments that we're proud of
We are incredibly proud of the agentic AI ranking charity opportunities based on the volunteers chatting amongst each other. The globe view also included a flight route visualiser that calculates the curvature of the Earth for its map lines, conversion of charity building addresses to longitute/latitude for accurate map plotting, and ability for volunteers to express their interest in multiple charities at at time - making the volunteer experience as easy and accessible as possible.
We are also proud to have made the charity experience equally easy to launch and use. With one simple landing page to post to the volunteers’ social media feed, manage enquiries from potential volunteers, and keep track of dashboard analytics, the charity experience is kept simple and powerful for charity workers of all ability and experience to find intuitive.
What we learned
- We walked away with a much deeper understanding of headless browser automation and the nuances of prompt engineering for structured JSON output. Most importantly, we learned the value of a "Unified Backend." By using Supabase for both our Auth and our Real-time data, we were able to iterate much faster than if we had tried to roll our own WebSockets solution.
What's next for IMCharitable
Despite IMCharitable having all the features we initially planned, there are many further features that could be added:
Integrating a travel API to move from "route visualisation" to booking flights in one click would be highly beneficial for users. It would allow faster booking, and incentivise people to book the tickets as friction is minimised. Volunteers will be able to search, compare, and book flights directly within the platform, with routes automatically chosen based on their preferences. This significantly removes the need to switch between platforms.
To ensure transparency, IMCharitable will aim to introduce a verified badge system for charities. Verification will be based on clear criteria such as legal registration and publicly available impact reporting. This helps volunteers identify credible organisations and protects against fraud.
For volunteers already registered, IMCharitable will aim to offer a mobile experience designed for easier access (lower bandwidth and quicker access). This will allow volunteers to view schedules and stay connected on the go.

Log in or sign up for Devpost to join the conversation.