## Inspiration

Charitable giving is broken in a way that's hard to articulate but easy to
feel. You donate to a cause and get a tax receipt. You volunteer and get a
generic thank-you email. The people who actually needed help? You'll never
know if they got it.

We kept coming back to the same question: what if the act of giving was as
satisfying as receiving? What if every dollar you donated came back to you — not as money, but as proof? A photo. A name. A story. Someone's door, a hot
meal, a handwritten letter, a tree in the ground.

We also noticed something broken about the volunteer economy specifically.
People who give their time get nothing back — not financially, not socially, not even in terms of reputation. There's no credit system for kindness.
GoFundMe lets money vanish. VolunteerMatch sends you an email. Neither closes the loop.

Hopemaxx started from the belief that the closed-loop economy — where doers
become donors, and every verified act of good seeds the next one — could make generosity self-sustaining. Not dependent on guilt. Not dependent on altruism. Just a system that makes doing good feel as rewarding as it actually is.


## What it does

Hopemaxx is a quest-based platform for verified, paid acts of kindness — built around a closed-loop economy where money stays in the ecosystem.

Donors post quests: specific, local, real acts of good, from delivering a hot meal to a senior in Trenton to tutoring a student in SAT Math at the Princeton Public Library. They set a bounty, lock it in escrow, and wait.

Doers browse the quest board, claim what fits their skills and schedule, and
go do the thing. When they're done, they submit dual-camera proof — BeReal-style: the action, and their face in the moment. Claude AI verifies the photo against the quest requirements. If it passes, escrow releases automatically. The doer earns credits.

Then the nudge: reinvest your earnings. Fund a new quest. Keep the flywheel
spinning.

The platform tracks two reputation tracks per user — donor and doer —
separately, with named levels (Seedling → Beacon) and an Aura score that accumulates from community reactions to completed quests. Story cards are
auto-generated after every verified completion: a shareable, screenshot-worthy record of the act, the doer, the donor, and the impact. These populate an impact feed that works like BeReal — reverse-chronological, dual-camera, reaction-driven.

Every piece of the system is designed to make the closed-loop visible and
emotionally rewarding — from the animated flywheel on the landing page to the Aura leaderboard to the "keep it spinning" nudge on the wallet page.


## How we built it

The full stack is client-side React — no backend required for the demo, which let us move fast and focus entirely on the product experience.

  • React 18 + Vite for the app shell, with React Router v6 for routing and
    React Context + useReducer for all global state
  • Tailwind CSS 3 with a custom design system built on CSS variables — dark
    mode by default, warm maximalist aesthetic with Bricolage Grotesque, DM Sans, and Space Mono
  • Framer Motion for page transitions, quest claim animations, and the XP
    progress bars
  • Leaflet.js + OpenStreetMap for quest location maps — no API key, no cost
  • Recharts for the earnings area chart on the dashboard
  • Anthropic Claude API (claude-sonnet-4-20250514) for AI proof verification — the system prompt calibrates the evidence bar by quest type, so litter pickup has a low bar and person-to-person delivery requires clearer evidence
  • Mock backend in localStorage + in-memory state, structured so a real
    Firebase or Supabase backend can drop in later

The verification flow was particularly fun to build: five sequential steps
animate on screen (uploading → analyzing → matching requirements → fraud scan → report), the whole sequence takes about 4 seconds, and it falls back
gracefully to a realistic mock response if the API key isn't present.

All seed data is anchored in real Princeton / Mercer County locations — actual organizations, real addresses, plausible quests that someone could go do tomorrow.


## Challenges we ran into

The escrow UX. Locking someone's money before they see results is a hard sell. We went through several iterations of the escrow confirmation UI before
landing on the current design: a transparent breakdown showing exactly what gets locked, what the fee is, and what the doer receives — shown at every
relevant touchpoint, not buried in fine print. Trust is a design problem as much as an engineering one.

Calibrating the AI verifier. Getting Claude to be "generous but not gullible" took real prompt iteration. Too strict and good-faith doers get rejected. Too lenient and the system is trivially gameable. The solution was making the
evidence bar explicit in the system prompt — low-risk quests get a low bar, high-stakes quests require clearer evidence — and giving Claude specific language about what "good faith effort" means in this context.

Dual reputation without confusion. Showing two separate tracks (doer and
donor) on the same profile without making it feel cluttered or confusing was harder than expected. We went through multiple layouts before landing on the
current side-by-side visualization. The key insight was that the two tracks need distinct color identities — green for doer, gold for donor — that carry consistently through every touchpoint.

The BeReal-style dual-camera flow. Making the dual-camera submission feel like BeReal (both photos linked, time-stamped, human) while also serving as legal-grade-enough proof for escrow release required balancing the emotional
storytelling and the functional verification in the same UI. The postedAtLabel field ("2 min after prompt") was a small detail that ended up doing a lot of work.

Making the economics feel real without a real backend. Every transaction had
to feel consequential — bounties locking, fees deducting, balances updating — in a mock data layer. We structured the transaction log and state mutations
carefully so the flywheel is actually visible in your wallet history, not just a narrative claim.


## Accomplishments that we're proud of

The flywheel visualization. It was the hardest single component to get right — an animated circular economy diagram that actually conveys the concept in one glance — and it's the first thing judges see on the landing page. When it clicked, it clicked hard.

The end-to-end quest lifecycle actually works. You can post a quest, lock
funds in escrow, claim it, submit dual-camera proof, watch Claude verify it live, receive credits to your wallet, and see your story card appear in the
impact feed — in a single session, on a demo. That full loop, unbroken, is something we're genuinely proud of.

The dual reputation system. Building two fully independent progression tracks (doer and doer) with separate XP curves, level names, and visual identities — and surfacing them intuitively throughout the app — required real design
discipline. We think it's the right model for a platform that serves both sides of the transaction.

The story cards. Auto-generated after every verified completion, designed to
be screenshot-worthy, populated with the AI's own analysis of the act. They're the emotional payoff of the whole system, and they look good.


## What we learned

Friction is a feature, sometimes. The escrow lock, the AI verification step, the dual-camera submission — all of these add friction. We learned to be
deliberate about which friction is trust-building and which is just annoying. The verification animation isn't just filler: watching Claude analyze the
photo before funds release makes the approval feel earned, not arbitrary.

The social layer is what makes the economics legible. Without the impact feed, the aura score, and the story cards, the closed-loop economy is just a concept. The social layer is what makes the flywheel visible — you can see
money moving, you can see who did what, you can react to it. Social proof and financial proof turn out to reinforce each other.

AI calibration is a product decision, not just a prompt. The choice of where
to set the verification bar — how much proof is enough for which quest — is fundamentally a product decision about trust, fraud, and user experience. The prompt is the implementation. We spent more time thinking about those thresholds than we expected.

Local anchoring matters more than we thought. Seeding the quest board with
real Princeton / Mercer County locations — actual organizations, real addresses, plausible missions — made the whole thing feel credible in a way
that generic placeholder data never would. The specificity is the point.


## What's next for Hopemaxx

Real backend. The code is already structured for it — swapping in Firebase or Supabase is a configuration change, not a rewrite. The next step is user auth, persistent state, and a real escrow integration.

Formal quest chains. Right now, chain quests are a soft nudge. The next
version makes them structural: completing a chain quest unlocks a follow-on quest specifically designed to reinvest the earnings. The flywheel becomes
explicit, not just encouraged.

Group quests. High-value quests — running a community event, organizing a food drive — require more than one person. Group quests let multiple doers collaborate toward a single verified completion and split the bounty.

Verified organization accounts. Nonprofits, mutual aid orgs, and community
groups should be able to post quests with a trust badge that signals to doers they're working with a real, vetted organization. This unlocks the
institutional side of the market.

Real AI verification. The Claude integration already works — the UX is built, the prompt is calibrated. The next step is connecting it to real photo uploads with geolocation metadata, building the human review queue for flagged
submissions, and closing the loop with pattern detection for bad actors.

Launch in Princeton. The quests are already real. The locations are already
real. The next step is putting the app in the hands of the Princeton community and watching the flywheel spin for the first time with real money, real
doers, and real acts of good.

Built With

Share this project:

Updates