Inspiration

Football unites billions, but fans in emerging markets face a critical problem: expensive data plans and unreliable streaming make following live matches nearly impossible. During the 2022 World Cup, I watched friends in Africa rely on delayed text updates because video streams consumed too much bandwidth. MatchPulse was born from a simple question: What if we could deliver real-time match data with minimal bandwidth while still offering premium insights for superfans willing to pay?

What it does

MatchPulse is a mobile-first, freemium B2C web app that delivers: Free tier: Live scores, match schedules, group standings, and knockout brackets for the 2026 World Cup Premium tier ($2.99/mo): Deep match statistics (possession, xG, shots on target), event timelines, and full match highlight videos The app serves 100+ matches across all tournament stages with sub-200ms response times, even on 3G connections.

How we built it

Frontend: Next.js 16 App Router with TypeScript and Tailwind CSS. We used v0 by Vercel to rapidly prototype the UI, then manually refined every component for mobile-first performance. Backend: Serverless API routes handle data fetching and caching. A cron job syncs match data from a sports API every 5 minutes, but the frontend queries our database directly for blazing-fast reads. Database: Amazon Aurora PostgreSQL (Serverless v2) stores all match data, team information, and user preferences. We use the AWS RDS Data API for secure, connectionless queries from Vercel Edge Functions—no open database ports, no connection pooling headaches.

Challenges we ran into

Database connection in serverless: Traditional PostgreSQL drivers maintain persistent connections, which don't work in serverless environments. We solved this by using AWS RDS Data API, which provides HTTP-based queries without connection overhead. Real-time updates without WebSockets: Instead of expensive WebSocket infrastructure, we implemented intelligent polling (30s intervals) with edge caching. The UI feels instant while keeping costs near zero. TypeScript + Raw SQL: Without an ORM like Prisma, we had to manually map Aurora's response format to TypeScript types. This was tedious but gave us full control over query optimization. Hackathon time pressure: With only 48 hours, we prioritized shippability over perfection. The freemium paywall, bracket visualization, and group standings all came together in the final hours.

Accomplishments that we're proud of

What we learned

Serverless databases are the future: Aurora Serverless + RDS Data API eliminated 90% of our infrastructure complexity. No connection pools, no cold starts, no scaling worries. Edge caching is magic: By caching API responses at Vercel's edge, we achieved global performance without a CDN configuration. Monetization drives design: Building a freemium app forced us to think critically about user value. What's free? What's premium? This clarity made every UI decision easier.

What's next for Matchpulse

Push notifications: Alert users when their favorite teams score Social features: Let users create private leagues and compete with friends Multi-sport: Expand to NBA, NFL, and cricket using the same architecture Native mobile: Wrap the PWA in React Native for app store distribution

Built With

  • cron-jobs)-cloud-services:-aws-(rds-data-api
  • iam-authentication)-databases:-amazon-aurora-postgresql-(serverless-v2)-apis:-football-data.org-(sports-data)
  • languages:-typescript
  • lucide
  • react
  • react-18
  • serverless-apis
  • sql-frameworks:-next.js-16-(app-router)
  • tailwind-css-platforms:-vercel-(edge-functions
  • v0-by-vercel-(ui-generation)-ui-components:-shadcn/ui
Share this project:

Updates