← All projects
ProjectAug 2025

Bizboard

a marketplace built for builders

Project file · Rijul Poudel · Lawrence, Kansas

Aug 2025

Bizboard

a marketplace built for builders

Built at
CodePath Web 102, Aug 2025
Location
remote
Team
R. Poudel (solo)
Format
8-week course capstone
Stack
React · Supabase · PostgreSQL · CSS
Status
live

The story

For the CodePath final I wanted something with real complexity, not a todo app. A service marketplace forces the full set: auth, ownership, real-time interaction, filtering, and per-user dashboards.

Supabase was the right call for a solo build. PostgreSQL underneath meant proper relational modeling, with listings, users, comments, and upvotes as linked tables. Row-level security meant ownership rules are declared in SQL policy, not scattered through React components.

The dashboard was the hardest piece: aggregating upvotes, comment counts, and activity per listing in near-real-time. I used Supabase's real-time subscriptions for live comment feeds and polling for dashboard metrics, a deliberate trade between freshness and complexity.

How it's built

A React SPA communicating directly with Supabase. RLS policies in PostgreSQL enforce data ownership; real-time subscriptions power the comment feed.

React SPA
Listing creation, browsing, search, filtering, comments, and the personal activity dashboard.
PostgreSQL via Supabase
Relational schema: users, listings, comments, upvotes. Foreign keys and joins power the dashboard.
Row-Level Security
Declarative SQL policies scope every query to its owner. No auth checks in component code.
Supabase Realtime
WebSocket subscriptions on the comments table; new comments appear for all viewers without polling.

Notes

2025. RLS takes a while to click. You are writing security as database policy, not application logic. Once it does, it's elegant. · R.P.
2025. Designing for real-time from the start is far easier than retrofitting it. Adding live comments late forced a significant state refactor. · R.P.