Discover with context
Editorial catalog browsing, establishment details, reviews, and map-aware location information make recommendations easier to evaluate.
Community product
A warm, community-driven food discovery product built around trustworthy local recommendations.
Frontend engineering, Supabase/Postgres design, authorization, moderation workflows, testing, and protected deployment.
React · Vite · Supabase · PostgreSQL · Row Level Security · Vercel

The brief
Local food discovery is richer when recommendations, places, and community context are approachable and responsibly curated.
Product experience
Editorial catalog browsing, establishment details, reviews, and map-aware location information make recommendations easier to evaluate.
Verified users can propose catalog and location changes, vote on candidates, and see typed revision information instead of opaque records.
Administrators and helpers have focused moderation responsibilities, while read-only demo roles make the product easier to explore safely.

Screenshot 1 / 2 Editorial food discovery
Engineering notes
Problem
Hiding UI controls does not protect reviews, proposals, roles, or stored media from direct requests.
Approach
PostgreSQL functions and Row Level Security enforce ownership, moderation, lifecycle, and storage permissions at the data boundary.
Problem
Community content needs correction and review while retaining accountable decisions and revisions.
Approach
Proposal threads, decision reasons, typed field revisions, and controlled visibility preserve useful history for moderators and contributors.
Problem
Places need flexible community input without immediately turning every suggestion into the official location.
Approach
Candidate suggestions, voting, and moderator selection separate community signal from the official pin.
Architecture
Visitors & contributors
React product interface
Supabase Auth & Edge Functions
PostgreSQL RLS & storage
Embedding depends on the project host's security policy. The external site remains the reliable preview.
Live preview unavailable in embedded mode.
Open live application