1) Inspiration
Thousands and if not millions of families get utility shutoff notices every winter over small balances, sometimes just fifty or sixty dollars to keep the heat running until the next paycheck. Existing crowdfunding platforms are bad at handling this scale. A sixty dollar electric bill on GoFundMe wont be as visible as the six figure medical campaigns. Even when someone chips in ten dollars, platform will take fees of 8 to 15 percent, and the payout takes weeks to clear escrow while the power company shuts off the meter.
I wanted build something that is meant to be for common working class who finds it difficult to make his/her/their ends meet , thats why I built this platform for people who require a few ten or hundred dollars.
2) What it does
givi onboards working class people like you and me. If you want to be philanthropic but don't have wealth like Warren Buffet or Ratan Tata, you can still be a micro-philanthropist by chipping in a few dollars to help the community. At the same time, givi onboards people in need so they can ask for donations, and everyday micro-philanthropists like you and me are right there to come to their rescue.
To make it exciting, I took the approach of gamifying donations. Just like swiping on Tinder or Bumble where you set filters for what you want in a partner, on givi you filter for the causes you care about. Swiping right triggers a $5 micro-donation (which you can customize to any amount you like), and swiping up executes a "Super Swipe" to pay off the entire bill.
Donors preload an allowance (e.g., $50) once via PayPal Checkout. Swiping right and up debits the allowance in real time, no modal popups, no redirects, no interrupted momentum and direct transfer of funds to the ones in need!
3) How we built it
I built givi solo using Next.js 15 (App Router), React 19, and TypeScript. The technical setup centers on how money moves, how documents get verified, and how the feed stays responsive:
i) To handle transactions with zero platform cuts, I separated the PayPal integration into two rails. For money coming in, donors preload a giving allowance (like $50) using the PayPal Orders API v2, which gets checkout popups out of the way upfront. For money going out, each $5 right-swipe or full-bill Super Swipe calls the PayPal Payouts API v1, sending funds directly to the recipient's PayPal account in seconds. To prevent accidental double-charges from fast double-swiping, every payout request carries a unique PayPal-Request-Id hash header.
ii) I also built an auto capping engine for partially funded bills. If an electric bill only needs $2.40 to close and a donor swipes $5.00, the backend caps the charge to min(swipeAmount, remainingGoal). It settles the bill, logs the $2.40 payout, and leaves the remaining $2.60 in the donor's balance.
iii) For verification, Gemini 2.5 Flash reads uploaded bill photos to extract vendor names, statement dates, and balances, computing a 0 to 100 percent trust score. It also detects coordinates for sensitive data like meter IDs, account numbers, and street addresses so the backend can blur them on canvas before anything is published. Once a payout clears, Gemini generates a real-time impact toast, like "You kept the power on for Marcus in Detroit! ⚡".
iv) The swipe feed runs on react-tinder-card with Framer Motion spring physics, supporting $5 right-swipes, skips, and upward Super Swipes with a 1-tap confirmation drawer. For transparency, I used AG Grid Community v33 to build a searchable public audit ledger showing all 46+ payouts with live PayPal batch IDs and a 1-click CSV export for tax receipts. I also added a floating Judge Demo Kit () directly in the layout, letting evaluators toggle between a pre-funded $50 donor and a verified sandbox receiver to test the full payment cycle instantly.
4) Challenges we ran into
Building givi meant solving two distinct sets of problems: product logic around how micro-donations should behave, and technical bottlenecks in the payment and vision pipelines.
Product & Logical Challenges
i) The Micro-Donation Paradox: Traditional payment gateways are designed for e-commerce carts with redirects and verification popups. If donors have to approve a PayPal login modal every time they swipe $5, they get tired after two cards. I had to rethink the interaction: donors authorize an upfront giving allowance (like $50) once, letting individual swipes execute instantly against that balance without interrupting the deck's momentum.
ii) The Partial Balance Auto-Capping Rule: When an electric bill only needs $2.40 to close and someone makes a standard $5 swipe, standard platforms either fail or over-charge. I built an auto-capping rule where the backend computes min(swipeAmount, remainingBalance). It deducts only the $2.40 needed to settle the bill, and leaves the remaining $2.60 in the donor's wallet.
iii) Balancing Proof with Human Dignity: Donors need to know an overdue bill is authentic, but struggling families shouldn't have to broadcast their home address, utility account number, or meter serial to the entire internet. The intake pipeline had to verify real bills while keeping personal details completely private.
Technical & Engineering Challenges
iv) Dual-Rail PayPal Orchestration: PayPal doesn't have an off-the-shelf "Tinder for giving" API. I had to architect two separate payment rails into one atomic backend flow: PayPal Orders API v2 to capture allowance preloads, and PayPal Payouts API v1 to disburse funds directly to the recipient's email with zero platform fees.
v) Concurrency & Idempotency under Rapid Swiping: When users swipe quickly or experience network lag, multiple payout requests can fire in parallel for the same bill. I implemented server-side mutex locks on active cause IDs and generated deterministic PayPal-Request-Id hash headers (hash(donorId, causeId, timestamp)) so PayPal rejects duplicate payout executions at the network edge.
vi) Dynamic Bounding Box PII Redaction: Utility statements from providers like PG&E, DTE, and Duke Energy have completely different layouts. Getting Gemini 2.5 Flash to reliably return normalized bounding boxes for sensitive account numbers across crumpled photos and low-light scans, and then blurring those exact canvas coordinates before storage, took rigorous prompt constraints and image-buffer math.
vii) Zero-Friction Judge Environment Isolation: In a hackathon demo, you cannot ask evaluators to create fresh PayPal merchant accounts or link real credit cards. I built the kit with isolated in-memory test wallets and 1-click sandbox credential injection, ensuring judges can test real money movement without state collisions or external blockers.
5) Accomplishments that we're proud of
i) Real closed-loop payouts with zero platform fees: As a solo developer, I didn't stop at building clickable mockups or fake database counters. Money actually moves: a real PayPal Orders capture funds the allowance, and real calls to the PayPal Payouts API deliver funds to the recipient's sandbox account in seconds, with zero platform cuts.
ii) The "Super Swipe" gesture: Swiping up to clear someone's entire remaining $38 heating bill in one clean motion turns an overdue notice that has been stressing out a family into an instant, resolved problem.
iii) The floating Judge Demo Kit (): I eliminated judging friction completely. Evaluators don't need to configure test merchant accounts or paste dummy credit card numbers. One click toggles between a pre-funded $50 donor and a verified beneficiary, keeping session states isolated so anyone can test the payment loop in seconds.
iv) A working autonomous giving agent: Instead of tacking on a conversational chatbot, I built an actual agentic commerce runner at /agent. Donors set their policy boundaries (budget, per-family cap, categories, and Gemini trust score), and the agent scans for matching bills and executes batch payouts automatically.
v) Public transparency via AG Grid: The /transparency ledger displays every settled micro-transaction using AG Grid Community v33, showing live PayPal settlement batch hashes, Gemini verification scores, and an instant client-side CSV export for tax deductions.
vi) Shipping the entire ecosystem solo: Over the course of the hackathon, I designed, built, and tested the swipe feed, the dignified 4-step intake, Gemini multimodal OCR with canvas PII masking, dual PayPal rails, the leaderboard, and the donor analytics dashboard from scratch.
6) What I learned
i) Orchestrating asynchronous PayPal payouts with idempotency: Integrating both the PayPal Orders API v2 and Payouts API v1 showed me how differently synchronous captures and asynchronous payout batches behave in production. I learned to structure server-side OAuth2 token caching and attach deterministic PayPal-Request-Id hash headers (hash(donorId, causeId, salt)) so rapid, high-frequency micro-payouts are completely protected from double-charges.
ii) Multimodal AI spatial coordinates and canvas blurring: Gemini 2.5 Flash taught me how to prompt multimodal models for strict JSON schemas with normalized bounding box arrays ([ymin, xmin, ymax, xmax] on a 0 to 1000 scale). The engineering challenge was mapping those normalized floats back onto irregular, high-resolution phone photos in an HTML5 canvas buffer to blur account numbers without distorting the document's aspect ratio.
iii) Optimistic client state versus server mutex locks: In a swipe-based card deck, UI gestures have to feel instantaneous, but financial state cannot have race conditions. I learned how to pair React 19 optimistic updates on the client with atomic in-memory mutexes on the backend, ensuring that chargeAmount = min(swipeAmount, remainingGoal) runs safely even if two donors swipe on the same urgent bill at the same millisecond.
iv) Handling hydration and virtualization in Next.js 15 with AG Grid: Rendering an enterprise data grid with AG Grid Community v33 inside the Next.js 15 App Router meant managing client-side hydration boundaries carefully. Memoizing column definitions, virtualizing row rendering across dozens of transactions, and generating client-side CSV blobs for IRS tax exports taught me how to keep an audit interface blazing fast.
v) Micro-philanthropy is fundamentally an engineering problem: People readily give $5 to help a neighbor when it takes one gesture, but abandon immediately when forced through shopping carts and redirected checkouts. Preloading an allowance once and decoupling money inflow from direct payout execution is what makes micro-giving viable.
7) What's next for givi
i) From an app to an open relief protocol: I want to expose givi's core clearinghouse as an open API at /developers. Any mutual aid network, food bank, community center, or neighborhood group should be able to submit verified emergency statements directly into givi's global liquidity pool, letting hyper-local needs tap into a nationwide base of donors without building their own fundraising tools.
ii) Automated medical debt liquidation with non-profit hospitals: Under IRS Section 501(r), non-profit hospitals in the US are legally required to provide financial assistance to low-income patients, but billions in eligible aid go unclaimed because the paperwork is Byzantine. I plan to use Gemini Vision to cross-reference uploaded medical bills against hospital charity care policies, automatically claiming institutional forgiveness first and using givi micro-donations to wipe out only the remaining copay.
iii) Geo-fenced emergency flash relief for climate disasters: When a winter freeze, flash flood, or hurricane knocks out a region's power grid, FEMA and traditional NGOs take weeks to set up intake centers. givi can geo-fence affected ZIP codes in real time, letting displaced families upload photos of temporary hotel receipts, generator fuel, or emergency repair bills so donors across the country can clear them within hours.
iv) Agentic syndicates and corporate matching: The future of giving is programmatic. Instead of asking donors to manually swipe through cards every day, autonomous giving agents backed by individual budgets, corporate CSR programs, and foundations can form giving syndicates. Thousands of agents can coordinate in the background to automatically liquidate entire tranches of past-due winter utility debt across an entire city before shutoff deadlines arrive.
v) Direct payroll and institutional settlement integrations: Partnering directly with municipal utility clearinghouses and payroll providers like Gusto or Workday would allow employees to allocate an optional $5 or $10 from their monthly paycheck straight into their local city's givi deck, while disbursements settle directly against the account number on the bill, completely eliminating human withdrawal steps.
vi) Cross-border micro-remittances via PayPal global rails: Millions of families in developing economies face acute crises over sums that look tiny in the West, such as a $15 school exam fee in Kenya or a $30 irrigation repair for a farmer in India. By leveraging PayPal's international payout infrastructure through Hyperwallet and Xoom, givi can expand into cross-border micro-relief with localized multimodal OCR and instant currency conversion.
vii) Preventative philanthropy via predictive energy modeling: Shifting from reactive debt clearing to preventative community resilience. By pairing seasonal weather forecasts with historical utility rate spikes, givi can flag households likely to face winter shutoffs and pre-fund energy reserves before penalty fees and late interest compound the crisis.
viii) Direct wholesale physical aid via Channel3 supply chains: Cash is not always the right solution; families often need urgent physical items like space heaters, infant formula, or medical supplies. Expanding our Channel3 API integration allows donors to swipe for exact physical products sourced at wholesale prices from over 25,000 merchants and shipped straight to a local pickup locker, preventing price-gouging and ensuring zero cash leakage.
ix) Municipal matching pools for civic dollar-for-dollar grants: City governments frequently have millions in unspent emergency relief funds trapped behind six-month paper application queues. Cities could deposit municipal relief grants directly into givi's liquidity pools, automatically matching community micro-donations dollar-for-dollar for residents within their municipal boundaries.
Built With
- ag-grid
- canvas-confetti
- clerk
- cobe
- framer-motion
- google-gemini
- gsap
- lucide-react
- next.js
- node.js
- paypal
- radix-ui
- react
- react-spring
- render
- supabase
- tailwind-css
- typescript