Next.js + Supabase · Working PoCA 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.
Edge Fn
AI translation proxy
Ads and community in one flow
Create ad campaign→
Board activity (post·comment·poll)→
Impression·click tracking→
Advertiser stats (CTR)→
AI translation
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
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
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).
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.
Design originals · frontend source · Supabase schema/Edge Functions code · operations/admin manuals.
Explore the demo now →© 2026 AdBoard · Next.js + Supabase · built by macrobay