Secure, escrow-backed secondhand trading with strangers nearby.
ReSol is a mobile-first marketplace for local secondhand sales. Buyers reserve items with USDC held in a Solana escrow program, then release funds after an in-person QR/code handoff.
app/- Next.js 16 frontend with wallet connection, listings, sales flow, activity, ratings, Vercel beta deployment, and GitHub Pages demo export.anchor/- Anchor escrow program and tests.supabase/- Database migrations, storage setup, RLS policies, and seed data.
cd app
pnpm install
pnpm devCopy .env.example to app/.env.local and fill in the Supabase values from
supabase start or your hosted Supabase project.
cd app
pnpm buildVercel is the canonical host for the devnet beta. The Next config builds as a
normal Vercel app by default. GitHub Pages remains available as a static demo
when NEXT_PUBLIC_BASE_PATH=/ReSol is set by the Pages workflow.
For the hosted beta to use real data, set these Vercel environment variables:
NEXT_PUBLIC_SUPABASE_URLNEXT_PUBLIC_SUPABASE_ANON_KEYNEXT_PUBLIC_SOLANA_CLUSTER=devnetNEXT_PUBLIC_RPC_URLNEXT_PUBLIC_PROGRAM_IDNEXT_PUBLIC_USDC_MINTNEXT_PUBLIC_TREASURY
Do not set NEXT_PUBLIC_BASE_PATH on Vercel.
- Apply
supabase/migrations/*to the hosted Supabase project. - Confirm Supabase Auth allows the Vercel URL in URL Configuration.
- Confirm the
listing-photosbucket exists and is public. - Set the Vercel environment variables above for production.
- Run
pnpm lint,pnpm build,pnpm verify:devnet, andpnpm verify:supabasefromapp/. - Test the release with two devnet wallets: create listing, upload photo, reserve, cancel, reserve again, release via QR/code, and rate the trade.
pnpm buildpasses inapp/.