Language

ONWI Paid Placement Board

ONWIFounder / product engineer2026-08

Built and launched a multilingual paid-placement board where the seat price is the rank, payment is the publishing authority, and every visibility claim stays explicit instead of posing as a quality score.

Next.js 16React 19TypeScriptTailwind CSS 4Supabase PostgresPolarnext-intlRechartsSaaS Pro Max
  • Shipped live, daily, weekly, and monthly ranking views plus category boards, search, listing pages, insights, and sponsor placements.
  • Removed account friction: a completed payment claims a seat and issues a short-lived capability for publishing its listing.
  • Enforced bid, receipt, publishing, and click-integrity rules in least-privilege Postgres functions rather than trusting the browser.

Context

ONWI is a live paid-placement board. A listing's seat price determines its position, and the interface states that relationship directly: rank is the sponsorship, never a quality or popularity score. The product is available in Korean, English, Japanese, and Chinese.

Problem

Sponsored discovery products often blur advertising and editorial rank. They also add accounts, dashboards, and opaque auction rules to a transaction that can be much simpler. ONWI needed to make the commercial mechanic obvious, keep ranking changes deterministic, and protect every money-sensitive transition without exposing database credentials to the browser.

Approach

I treated payment as the authority. The server reads the current seat price, calculates the valid next amount, creates checkout, and publishes only after a verified receipt is redeemed. A buyer does not need an account; the payment creates a short-lived capability that can name one listing without granting access to its price, publication state, or click count.

ONWI homepage showing the paid-placement proposition, current seat total, and boost flow

What Shipped

  • Live, 24-hour, 7-day, and 30-day ranking windows with TOP filters and category boards.
  • Public listing pages, a directory, search, movers, heat, newest, category desks, and an insights surface.
  • Polar checkout and webhook handling for one-time boosts and sponsor placements.
  • Korean, English, Japanese, and Chinese routes with localized metadata and disclosure copy.
  • Human and AI moderation workflows before a paid listing can become public.
  • Consent-aware analytics through SaaS Pro Max with public aggregate visitor counts.

ONWI listing page showing a paid placement, transparent seat price, live rank statistics, and the boost checkout

Results

  • ONWI is live at onwi.lol with real paid seats and no simulated marketplace listings.
  • Visitors can see exactly why a listing occupies its position and what amount would change that position.
  • The browser receives no Supabase credentials, and the application role cannot directly insert, update, or delete marketplace rows.

Technical Notes

ONWI is a Next.js 16 application with TypeScript, Tailwind CSS 4, next-intl, Recharts, and Supabase Postgres. Browser reads go through the application API, while writes are limited to vetted SECURITY DEFINER database functions that enforce whole-dollar steps, monotonic bid amounts, single-use receipts, sponsor capacity, and webhook idempotency. Clicks use salted visitor hashes and minute-level deduplication without storing raw IP addresses.

Keep going

Need this kind of product work?

I work on AI features, product interfaces, and content systems that have to ship cleanly and hold up in production.