Skip to content
A personal proof-of-concept by Dexter Adams — under active development.About this projectGitHubEmail
Personal proof-of-concept · in active development

About this project

A production-minded, full-stack product-review platform — think a blend of Product Hunt, Wirecutter, and Letterboxd — built solo as a portfolio piece to exercise a modern headless architecture end to end.

How it’s built

A headless design with a hard security boundary: the browser only ever talks to the frontend, which talks to WordPress server-to-server.

Layer 1
WordPress + WPGraphQL

Content model, auth, and business logic in a custom plugin. API only — no theme.

Layer 2
Next.js BFF + UI

Server proxies every call, holds the tokens, renders the app. The security boundary.

Layer 3
Web · PWA · iOS

One codebase; a Capacitor shell wraps the live site into a native App Store build.

Tech stack

Backend

WordPress (headless)
WPGraphQL
Custom plugin — PHP 8.1+, SOLID
17 custom MySQL tables
JWT auth

Frontend

Next.js 15 (App Router)
React 19
TypeScript (strict)
Tailwind + shadcn/ui
TanStack Query

Mobile

Capacitor 8
Native iOS (WKWebView shell)
APNs push
PWA / installable

Infra & quality

Vercel + WP Engine
Strict nonce CSP
Playwright e2e
GitHub Actions CI
Adversarial AI code review

What it demonstrates

Headless architecture, end to end

WordPress is an API only — no themes, no PHP-rendered pages. The browser never talks to it directly; a Next.js Backend-for-Frontend proxies every request server-to-server, so there is no CORS surface and no token ever reaches the client.

Security by construction

Auth is JWT behind HttpOnly, Secure, SameSite cookies with silent refresh. The GraphQL proxy AST-parses every query to block token exfiltration, enforces a same-origin CSRF guard, and ships a strict per-request-nonce Content-Security-Policy.

A real algorithm, made transparent

"TrustRank" scores products with a weighted, Bayesian-smoothed blend of verified reviews, community engagement, and editorial signal — with category-relative percentiles and a personalized two-stage recommender feed, each with a human-readable "why you're seeing this."

Trust & safety, the unglamorous 80%

In-app account deletion, a curated review-tag vocabulary, report/block with server-side content hiding, a moderator queue with one-action takedown + suspension, and community product suggestions behind pre-moderated approval.

One codebase, three surfaces

The same Next.js app is a responsive website, an installable PWA, and a native iOS app (a Capacitor shell over the live origin) — with a native-scoped CSP, offline fallback, haptics, native share, and push notifications.

Tested and reviewed like production

A Playwright suite drives the real stack (public, authenticated, and mobile flows) against production; every feature ships through a build → verify → adversarial multi-agent review → fix loop before it lands.

Built by Dexter Adams

This is a work in progress — features and content are still being added. Happy to walk through the architecture, trade-offs, or code.

About this project · Bestof-Everything