How this site was built — and why each decision matters. The site itself is the portfolio: its architecture demonstrates the engineering capabilities being marketed.
Auth.js v5 was in extended beta; Lucia deprecated March 2025. Better Auth ships admin plugin for account creation, magicLink plugin for passwordless login, and built-in ABAC via createAccessControl().
SQL-close query builder gives direct control over complex permission JOINs (user → access → projects). No Rust binary engine. TypeScript-native schemas with a native Better Auth adapter.
Per-recruiter access control via a userProjectAccess junction table. Recruiter A sees projects X and Y, Recruiter B sees Y and Z — not possible with simple role-based access.
LinkedIn’s API is effectively closed for this use case. Instead, I manually curate posts and Claude Haiku auto-tags each with 3–7 semantic tags stored as PostgreSQL TEXT[] with a GIN index.
Short build log entries and curated feed items stay fresh with 2–4 hours per month. Traditional blogging demands 8–32 hours per post — unsustainable alongside a full-time role.
Next.js 16
App Router, RSC
TypeScript
Strict mode
PostgreSQL
Railway managed
Drizzle
SQL-close query builder
Better Auth
admin + magicLink plugins
shadcn/ui
Radix + Tailwind
Tailwind CSS v4
CSS-based config
React Hook Form
+ Zod validation
Framer Motion
Viewport-triggered
Resend
HTTP API, no SMTP
MDX
@next/mdx
Railway
Standalone output
Brandon Grotesque for headings, Brandon Text for body copy, and JetBrains Mono as a monospace accent for tech labels, metadata, and code snippets.
Dark-first design with near-black background, off-white text, and emerald green as the growth-signal accent.
Framer Motion with all durations under 500ms. Staggered fade-in on scroll, subtle hover micro-interactions, and animated number counters. Respects prefers-reduced-motion.
All database queries are centralized in a Data Access Layer (DAL). Authorization checks live inside DAL functions — not scattered across route handlers or components. This means permission logic is defined once and enforced everywhere.
This site is open source. Explore the code, fork it, or use the architecture patterns in your own projects.
GitHub Repository