Inspiration
In today's digital economy, millions of freelancers and clients encounter payment trust issues. Clients fear paying upfront without receiving quality deliverables, while freelancers face delayed payments or total non-payment after completing hard work. Traditional escrow systems are often clunky, charge exorbitant fees, or lack seamless real-time communication.
We were inspired to build EscrowPayβa modern, fintech-grade freelance marketplace SaaS that automates trust using Stripe PaymentIntent vaults, real-time negotiation chat, anti-scam dispute freezes, and instant Connect split payouts with zero friction.
What It Does π
EscrowPay is a full-stack, production-ready freelance escrow platform with four core operational pillars:
- Structured Escrow Job Posting: Buyers publish jobs with transparent fixed budgets locked upfront into secure Stripe payment vaults.
- Stripe-Compliant Checkout & Dynamic Card Detection: Buyers pay using a sleek Stripe elements modal featuring real-time card brand identification (VISA, Mastercard, AMEX, Discover, JCB) and custom billing country selection.
- Facebook-Style Floating Chat Dock: Real-time buyer-freelancer negotiation chat with inline escrow triggers ("Deposit Escrow", "Submit Deliverable", "Release Funds", "Open Dispute").
- Anti-Scam Dispute Engine & Super Admin Portal: Dynamic zero-code platform controls, real-time fee toggling (0% Free Launch Promo), and dispute freeze/refund/payout mechanisms.
How We Built It π οΈ
We architected EscrowPay with a cutting-edge, resilient stack focused on performance, aesthetics, and type safety:
- Frontend & App Router: Built with Next.js 16 (React 19) using the App Router for server-side rendering, client hydration, and fluid UI transitions.
- Styling & Aesthetics: Crafted with Tailwind CSS, featuring dark mode, glassmorphism UI elements, custom interactive country dropdowns, micro-animations, and dynamic visual badges.
- Database & ORM:Powered by Prisma ORM for type-safe database access, managing User accounts (Buyers, Sellers, Admins), Jobs, Contracts, Escrow Vaults, Chat Conversations, Messages, and Disputes.
- Payment & Escrow Engine: Integrated with Stripe PaymentIntents API and Stripe Connect for automated escrow holding, platform fee calculation, and freelancer split transfers.
- Micro-Animations & Delighters: Integrated
canvas-confetticelebrations upon successful escrow deposits and fund releases.
Challenges We Ran Into π§
- Seamless In-Chat Escrow Triggers: Designing a real-time floating chat dock that synchronizes contract states (NO_CONTRACT β PENDING_PAYMENT β FUNDED_ESCROW β WORK_SUBMITTED β DISPUTED β COMPLETED) across both Buyer and Seller views without layout shifts.
- Cross-Browser Dropdown Compatibility:Overcoming browser native overlay clipping in dark mode modals by engineering a custom interactive React country dropdown component with flags and backdrop isolation.
- Mobile-First Responsive Layouts: Ensuring complex Stripe checkout grids, 3-column card input forms, and floating chat windows resize fluidly on small mobile viewports (320pxβ480px) without horizontal scrolling.
Accomplishments That We're Proud Of π
- Pixel-Perfect Stripe Checkout UI: Built a production-grade checkout modal with real-time brand detection and PCI-DSS Level 1 security badges.
- Zero-Code Dynamic Admin Configuration: Implemented a real-time admin portal that allows toggling 0% fee promotional tiers without redeploying code.
- Rich Seeded Marketplace Feed:Populated the platform with 14+ realistic tech jobs spanning Web Development, Smart Contracts, UI/UX, AI, and Mobile Development.
- End-to-End Escrow Lifecycle: Successfully tested the complete pipeline from job posting and card deposit to deliverable submission, dispute handling, and automated payout.
What We Learned π
- Advanced state machine patterns for multi-party escrow contracts.
- Deep integration of Stripe PaymentIntents with custom transfer groups.
- Designing responsive, high-converting UX components with micro-animations.
What's Next for EscrowPay
- Automated Webhook Syncing: Expanding production webhook handlers for automated Stripe payout retries. -Multi-Currency Support: Supporting multi-currency conversion (EUR, GBP, BDT) dynamically.
- AI Dispute Assistant: Integrating AI to analyze chat logs and project deliverables during dispute reviews.
Built With
- canvas-confetti
- css3
- html5
- lucide-icons
- next.js
- node.js
- postgresql
- prisma
- react
- rest-api
- sqlite
- stripe
- stripe-connect
- tailwind-css
- typescript
Log in or sign up for Devpost to join the conversation.