A practical guide to using Next.js rewrites for first-party Umami analytics, with better signal quality and no move back to invasive tracking.
Mohamed Gamal
Frontend Developer
About
I build frontend systems with React and Next.js, with close attention to structure, interface quality, and execution.
My work sits at the intersection of engineering and design: strong planning, clean visual decisions, and implementation that stays careful all the way through. I care about products that feel considered, not improvised.
Reach me on X, connect on LinkedIn, or check out my GitHub.
Based in Cairo, Egypt.
Projects
Click to expand
Built for an agency that delivers digital systems, whether full stack products or more focused web work. The site is intentionally lean, with clear structure, bilingual routing, full RTL support, and strong SEO fundamentals. The frontend keeps heavier behavior away from the critical path while still supporting theming and polished interactions.
Stack: Next.js 16 App Router · React 19 · Tailwind CSS 4 · next-intl
Designed as a clean product-browsing experience for a showroom business, with full RTL support, structured navigation, and image-led discovery across multiple categories. The build focuses on clarity, search visibility, and a catalog structure that can scale as inventory and content grow.
Stack: Next.js 16 App Router · TypeScript · Tailwind CSS · Radix UI
Built as a managed frontend system for a travel agency rather than a static brochure. The site supports multilingual routing, curated travel content, inquiry flows, and dashboard-controlled updates for destinations, packages, and other commercial content. The emphasis was on giving the business a reliable publishing and communication layer without overcomplicating the public experience.
Stack: Next.js 15.5.5 App Router · TypeScript · Tailwind CSS 4 · shadcn/ui
Built as the active Rootly v2 application with a performance-focused dashboard architecture and extension-powered capture workflows. The product combines Q&A and freeform notes, topic-aware course tracking, daily study logs, and review sessions, then layers in query-backed instant navigation, cache-tagged server reads/mutations, extension-to-dashboard live updates, and a lightweight Web Audio interaction system for a faster, more responsive study experience.
Stack: Next.js 16 App Router (Turbopack, Cache Components) · React 19 · TypeScript · Tailwind CSS 4
Approach
I work mostly with React and Next.js. I use React with Vite for focused client-side products, and Next.js when the product needs a stronger foundation for routing, content, SEO, or backend work, usually with Supabase and Postgres.
For UI, I usually reach for shadcn/ui or coss ui. I prefer Base UI when I want control over the primitives, and Radix UI when the ecosystem fit is better.
Writing