Writing

Articles

Tutorials and longer pieces. Some I've published on my Hashnode and dev.to, others were commissioned by clients.

Build a YouTube Live Clone with Next.js, Clerk, and TailwindCSS
dev.to · Nov 2025 · 26 min
Build a YouTube Live Clone with Next.js, Clerk, and TailwindCSS
Live streaming with chat overlay, follow flow, and a real broadcast tab, all built on Stream Video.
read
Build a Signal Clone with React Native and Stream
dev.to · Jul 2025 · 30 min
Build a Signal Clone with React Native and Stream
A React Native Signal clone with Stream Chat and Clerk. End-to-end build from auth to encrypted-feeling 1:1 messaging.
read
Building a Telegram Clone with Next.js and TailwindCSS
Hashnode · Jan 2025 · 24 min
Building a Telegram Clone with Next.js and TailwindCSS
A Telegram-style messaging app with Stream Chat, message bubbles, image preview, reactions, the works.
read
Build a Landing Page with AI and Next.js
Strapi · Nov 2024 · 18 min
Build a Landing Page with AI and Next.js
Wiring an LLM into a Next.js + Strapi stack to generate landing-page sections on demand, prompt design, streaming, and the failure cases.
read
Building a Google Meet Clone with Next.js and TailwindCSS
Hashnode · Sep 2024 · 22 min
Building a Google Meet Clone with Next.js and TailwindCSS
A walk-through of building a full meeting app with Stream Video, Clerk auth, and Next.js, multi-participant calls, screen share, the lot.
read
Building Interactive Data Visualizations with D3.js and React
Sitepoint · Aug 2024 · 22 min
Building Interactive Data Visualizations with D3.js and React
How to make D3 and React stop fighting each other. A pattern for letting React own the DOM and D3 own the math.
read
Attribute Based Access Control (ABAC): Enterprise Ready Implementation
Permify · Jul 2024 · 20 min
Attribute Based Access Control (ABAC): Enterprise Ready Implementation
A Golang implementation of ABAC, attributes, policies, evaluation, and how it differs from RBAC in practice, not just on paper.
read
Building a Slack Clone with Next.js and TailwindCSS
Hashnode · Jun 2024 · 28 min
Building a Slack Clone with Next.js and TailwindCSS
Channels, threads, emoji reactions, mentions, presence, building Slack in Next.js with Stream Chat and Clerk.
read
Implementing Role-Based Access Control in SvelteKit
Permify · May 2024 · 16 min
Implementing Role-Based Access Control in SvelteKit
Building RBAC into a SvelteKit app, roles, permissions, route guards, and the parts you'd rather not write twice.
read
OAuth vs. JWT: Ultimate Comparison
Permify · Mar 2024 · 12 min
OAuth vs. JWT: Ultimate Comparison
The actual differences between OAuth and JWT, when you want which, and why the question itself is usually a hint that something is confused.
read
Optimizing Performance in React Applications
Hashnode · Feb 2024 · 14 min
Optimizing Performance in React Applications
The patterns I reach for when a React app starts dragging, memoization, list virtualization, suspense boundaries, and when not to use them.
read