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
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.
Next.js 16 App Router, React 19, Tailwind CSS 4, next-intl, next-themes, Motion, Resend.
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.
Next.js 16 App Router, TypeScript, Tailwind CSS, Radix UI, shadcn/ui, Cloudinary (image delivery + CDN), Upstash Redis (visit analytics counter), SEO metadata + sitemap + structured data.
Built around speed and usability: quick capture, structured organization, and an interface that stays responsive while content syncs in real time. A Chrome extension is a core part of the product, making it possible to save links directly from the browser into the workspace without breaking the flow. The product leans on careful interaction design as much as the underlying data model.
Next.js 16 App Router (Turbopack), React 19, Tailwind CSS, shadcn/ui, Supabase (PostgreSQL, Auth, Realtime), Chrome Extension (Manifest V3), Optimistic UI patterns.
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.
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.
On the backend, I often use Supabase for auth, Postgres, and product infrastructure that should move fast without losing structure.
Writing