← all work
CASE STUDY2022· confidential — no public code

Fuviisocial, for food video

A TikTok-style social platform for food videos — feeds, follows, and direct-to-S3 uploads — built solo at Possier.

18 / 28
models / endpoints
4
apps shipped
2
parallel backends
80+
commits, solo

Fuvii is the consumer social platform I built solo at Possier — a place to discover restaurants through short food videos. I wrote the Express + TypeScript + Prisma backend (18 relational models, 28 REST endpoints, JWT/bcrypt auth) and designed the full social graph: likes, threaded comment replies, shares, views, ratings, and both user-follows-user and user-follows-restaurant, feeding engagement-ranked, paginated timelines.

Video upload goes straight to S3 over 60-second v4-presigned PUT URLs, keeping uploads off the app server and feeding downstream processing. I added cross-entity search over restaurants, dishes, and videos (Postgres full-text relevance with a case-insensitive fallback), shipped a parallel MongoDB/Mongoose backend alongside the Prisma/Postgres one, and built the front ends — a Next.js consumer app, an admin app, B2B portal features, and a React Native mobile app.

The hard part

An engagement-ranked feed across a real social graph

A food-video feed is only as good as its ranking. I modeled the whole social graph in Prisma — likes, threaded replies, shares, views, ratings, and two kinds of follow — then wrote ~530 lines of query logic that rank content by engagement and build a following-feed with cursor-style pagination, plus cross-entity search that blends Postgres full-text relevance with a contains fallback for partial matches.

Highlights

  • Built the backend solo in Express + TypeScript + Prisma: 18 relational models, 28 REST endpoints, JWT/bcrypt auth.
  • Designed the full social graph — likes, threaded replies, shares, views, ratings, user- and restaurant-follows — with engagement-ranked paginated feeds.
  • Shipped direct-to-S3 video upload via 60-second v4-presigned PUT URLs, decoupling upload from the app server.
  • Built cross-entity search over restaurants, dishes, and videos with Postgres full-text relevance and a case-insensitive fallback.
  • Shipped 4 surfaces — Next.js consumer app, admin app, B2B portal, and a React Native mobile app — plus a parallel MongoDB backend.

Stack

TypeScriptNext.js 12React NativeExpressPrismaPostgreSQLMongoDBAWS S3