A skill-exchange platform where people connect to learn from each other. Users build a profile around their skills, discover others through swipe-based matching and AI-scored recommendations, chat in real time, and schedule appointments. The backend runs on Convex (realtime database, full-text search, file storage), the frontend on Next.js 16 with React 19.
- Profile onboarding: specialization, skill selection, skill attribution
- Discovery with swipe-based matching (mutual matches) and AI-scored match recommendations with reasons
- Realtime one-on-one chat with read receipts, file attachments, and in-chat appointment scheduling
- Notifications for matches and activity
- Full-text skill search backed by Convex search indexes
- Gamified profile growth (seed to sprout to sapling to tree)
- Animated onboarding guide with swipeable slides
- Authentication via Better Auth integrated with Convex
- Next.js 16 (App Router, Turbopack) + React 19, TypeScript
- Convex: realtime database, queries/mutations/actions, search indexes, storage
- Better Auth (
@convex-dev/better-auth) for authentication - OpenAI / AI SDK for skill classification and match scoring
- shadcn/ui (Radix UI primitives), Tailwind CSS 4, GSAP + Framer Motion
- TanStack Query + TanStack Form
- Monorepo layout (
packages/shared,packages/db-local,packages/eslint-config)
npm install
npm run convex:setup # set SITE_URL and BETTER_AUTH_SECRET for Convex
npm run dev # runs Convex and Next.js concurrentlynpm run seed:skills— populate the skill catalog fromconvex/data/skills.jsonnpm run reset:skills— clear seeded skillsnpm run build/npm start— production build and serve
University course project built by a team of 15 students — development lead and DevOps (deployments, repository management).