AdBoard
Next.js + Supabase · Working PoC

Community Board + Built-in Ad System

A working PoC that unifies an in-app ad system (campaigns, 5 creative formats, impression/click tracking, CTR dashboard) with a community board. Includes an admin console, an advertiser stats dashboard, and a user board (Flutter webview integration).

A 5-minute guided tour is available inside the demo.

13
Core DB tables
5
Ad creative formats
4-tier
Role-based access
Edge Fn
AI translation proxy

At a glance

Ads and community in one flow

Create ad campaign
Board activity (post·comment·poll)
Impression·click tracking
Advertiser stats (CTR)
AI translation

Requirement mapping

RFP requirements → implementation (generalized·anonymized)

4-tier roles·approval·ban
Admin/advertiser/paid/free, role-request approval, blocking abusive users
Community board
Anonymous nickname·HTML·images·scheduling·spoiler·poll·like·scrap·report·threaded comments
5 ad creative formats
Feed card·interstitial·bottom banner·bottom sheet·bottom slide + click-redirect routing
Batch-optimized tracking
Impressions·clicks batched to avoid Supabase overload, daily rollup aggregation
Advertiser CTR dashboard
Per-campaign impressions·clicks·CTR charts + CSV export
AI translation (hidden key)
Edge Functions proxy keeps the API key server-side — zero client/DB exposure, cache·retry·original
SEO
slug·OG meta·JSON-LD-ready schema

PoC vs full build

The boundary between this demo and contract deliverables

PoC (working now)
  • Login·4-tier roles demo
  • Full board (post·comment·poll·report)
  • Ad campaigns·5 creatives·click routing
  • Impression/click tracking·CTR dashboard·CSV
  • AI translation (Edge Functions)
  • ERD·schema·Edge Fn source included
Contract (expansion)
  • Flutter webview bridge
  • Advanced ad targeting
  • Expanded tracking analytics
  • Multilingual translation
  • SEO·realtime notifications
  • Full source·DB handover + manuals

Security · demo protection

Keeping a public demo safe

Token URL gate
?k= token + httpOnly cookie. No Basic Auth.
Row-level security
Schema isolation + role/ownership policies. Other schemas untouched.
Edge Functions key hiding
Translation API key stays server-side — never exposed.
Stored-XSS prevention
Conservative HTML sanitizer (allow-list tags).
Rate limit · demo reset
IP rate limiting + daily demo reset (seed preserved).
Intrusion beacon
Demo-visit tracking (inbox·Telegram).

Differentiators

Why this PoC stands out

📊 Built-in ad tracking + CTR dashboard
An in-app ad system, not an external network. Impressions/clicks are batched and CTR is provided per advertiser as charts·CSV.
🌐 Edge Functions AI translation proxy
A server proxy that never exposes the translation API key. Client-side cache·retry·original toggle all work.
📱 Flutter webview collaboration
We own the web (board front + admin + dashboard) and Supabase; we integrate with the client's Flutter app via a webview bridge.

Contract deliverables are already prepared

Design originals · frontend source · Supabase schema/Edge Functions code · operations/admin manuals.

Explore the demo now →

© 2026 AdBoard · Next.js + Supabase · built by macrobay